87 lines
1.7 KiB
C
87 lines
1.7 KiB
C
|
/*++
|
|||
|
|
|||
|
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
|
|||
|
);
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
NTAPI
|
|||
|
RxLowIoSubmit(
|
|||
|
PRX_CONTEXT RxContext,
|
|||
|
PLOWIO_COMPLETION_ROUTINE CompletionRoutine
|
|||
|
);
|
|||
|
|
|||
|
NTSTATUS
|
|||
|
NTAPI
|
|||
|
RxLowIoCompletion(
|
|||
|
PRX_CONTEXT RxContext
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
NTAPI
|
|||
|
RxInitializeLowIoContext(
|
|||
|
PLOWIO_CONTEXT LowIoContext,
|
|||
|
ULONG Operation
|
|||
|
);
|
|||
|
|
|||
|
VOID
|
|||
|
RxInitializeLowIoPerFcbInfo(
|
|||
|
PLOWIO_PER_FCB_INFO LowIoPerFcbInfo
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
#endif // _RXLOWIO_
|
|||
|
|