Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

91 lines
1.9 KiB

/*++
Copyright (c) 1989 Microsoft Corporation
Module Name:
lowio.h
Abstract:
This module defines all of the structures and prototypes for Low IO.
Author:
Joe Linn (JoeLinn) 8-17-94
Revision History:
--*/
#ifndef _RXLOWIO_
#define _RXLOWIO_
#include "mrx.h" // mini redirector related definitions ....
#ifndef WIN9X
extern FAST_MUTEX RxLowIoPagingIoSyncMutex;
#endif
#define RxLowIoIsMdlLocked(MDL) ( \
RxMdlIsLocked((MDL)) || RxMdlSourceIsNonPaged((MDL)) \
)
#define RxLowIoIsBufferLocked(LOWIOCONTEXT) \
( ((LOWIOCONTEXT)->Operation > LOWIO_OP_WRITE ) || \
((LOWIOCONTEXT)->ParamsFor.ReadWrite.Buffer == NULL) || \
( \
((LOWIOCONTEXT)->ParamsFor.ReadWrite.Buffer != NULL) && \
RxLowIoIsMdlLocked(((LOWIOCONTEXT)->ParamsFor.ReadWrite.Buffer)) \
) \
)
typedef struct _LOWIO_PER_FCB_INFO {
LIST_ENTRY PagingIoReadsOutstanding;
LIST_ENTRY PagingIoWritesOutstanding;
} LOWIO_PER_FCB_INFO, *PLOWIO_PER_FCB_INFO;
PVOID
NTAPI
RxLowIoGetBufferAddress (
IN PRX_CONTEXT RxContext
);
NTSTATUS
NTAPI
RxLowIoPopulateFsctlInfo (
IN PRX_CONTEXT RxContext,
IN PIRP Irp
);
NTSTATUS
NTAPI
RxLowIoSubmit (
IN PRX_CONTEXT RxContext,
IN PIRP Irp,
IN PFCB Fcb,
IN PLOWIO_COMPLETION_ROUTINE CompletionRoutine
);
NTSTATUS
NTAPI
RxLowIoCompletion (
PRX_CONTEXT RxContext
);
VOID
NTAPI
RxInitializeLowIoContext (
IN PRX_CONTEXT RxContext,
IN ULONG Operation,
OUT PLOWIO_CONTEXT LowIoContext
);
VOID
RxInitializeLowIoPerFcbInfo (
PLOWIO_PER_FCB_INFO LowIoPerFcbInfo
);
#endif // _RXLOWIO_