6 extern FAST_MUTEX RxLowIoPagingIoSyncMutex
;
8 #define RxLowIoIsMdlLocked(MDL) (RxMdlIsLocked((MDL)) || RxMdlSourceIsNonPaged((MDL)))
10 #define RxLowIoIsBufferLocked(LowIoContext) \
11 (((LowIoContext)->Operation > LOWIO_OP_WRITE) || \
12 ((LowIoContext)->ParamsFor.ReadWrite.Buffer == NULL) || \
13 (((LowIoContext)->ParamsFor.ReadWrite.Buffer != NULL) && \
14 RxLowIoIsMdlLocked(((LowIoContext)->ParamsFor.ReadWrite.Buffer))))
17 typedef struct _LOWIO_PER_FCB_INFO
19 LIST_ENTRY PagingIoReadsOutstanding
;
20 LIST_ENTRY PagingIoWritesOutstanding
;
21 } LOWIO_PER_FCB_INFO
, *PLOWIO_PER_FCB_INFO
;
23 #if (_WIN32_WINNT >= 0x0600)
26 RxLowIoPopulateFsctlInfo(
27 _In_ PRX_CONTEXT RxContext
,
32 RxLowIoPopulateFsctlInfo(
33 _In_ PRX_CONTEXT RxContext
);
36 #if (_WIN32_WINNT >= 0x0600)
40 _In_ PRX_CONTEXT RxContext
,
43 _In_ PLOWIO_COMPLETION_ROUTINE CompletionRoutine
);
48 _In_ PRX_CONTEXT RxContext
,
49 _In_ PLOWIO_COMPLETION_ROUTINE CompletionRoutine
);
55 _In_ PRX_CONTEXT RxContext
);
57 #if (_WIN32_WINNT >= 0x0600)
60 RxInitializeLowIoContext(
61 _In_ PRX_CONTEXT RxContext
,
63 _Out_ PLOWIO_CONTEXT LowIoContext
);
67 RxInitializeLowIoContext(
68 _Out_ PLOWIO_CONTEXT LowIoContext
,
69 _In_ ULONG Operation
);
73 RxInitializeLowIoPerFcbInfo(
74 _Inout_ PLOWIO_PER_FCB_INFO LowIoPerFcbInfo
);