4 #define RxSetIoStatusStatus(R, S) (R)->CurrentIrp->IoStatus.Status = (S) 5 #define RxSetIoStatusInfo(R, I) (R)->CurrentIrp->IoStatus.Information = (I) 7 #define RxShouldPostCompletion() ((KeGetCurrentIrql() >= DISPATCH_LEVEL)) 9 #define RX_REGISTERMINI_FLAG_DONT_PROVIDE_UNCS 0x00000001 10 #define RX_REGISTERMINI_FLAG_DONT_PROVIDE_MAILSLOTS 0x00000002 11 #define RX_REGISTERMINI_FLAG_DONT_INIT_DRIVER_DISPATCH 0x00000004 12 #define RX_REGISTERMINI_FLAG_DONT_INIT_PREFIX_N_SCAVENGER 0x00000008 81 #define StableCondition(X) ((X) >= Condition_Good) 320 #define LOWIO_CONTEXT_FLAG_SYNCCALL 0x01 321 #define LOWIO_CONTEXT_FLAG_SAVEUNLOCKS 0x2 322 #define LOWIO_CONTEXT_FLAG_LOUDOPS 0x04 323 #define LOWIO_CONTEXT_FLAG_CAN_COMPLETE_AT_DPC_LEVEL 0x08 325 #define LOWIO_READWRITEFLAG_PAGING_IO 0x01 326 #define LOWIO_READWRITEFLAG_EXTENDING_FILESIZE 0x02 327 #define LOWIO_READWRITEFLAG_EXTENDING_VDL 0x04 329 #define RDBSS_MANAGE_SRV_CALL_EXTENSION 0x01 330 #define RDBSS_MANAGE_NET_ROOT_EXTENSION 0x02 331 #define RDBSS_MANAGE_V_NET_ROOT_EXTENSION 0x04 332 #define RDBSS_MANAGE_FCB_EXTENSION 0x08 333 #define RDBSS_MANAGE_SRV_OPEN_EXTENSION 0x10 334 #define RDBSS_MANAGE_FOBX_EXTENSION 0x20 335 #define RDBSS_NO_DEFERRED_CACHE_READAHEAD 0x1000 struct _LOWIO_CONTEXT LOWIO_CONTEXT
PMRX_CALLDOWN MRxQueryVolumeInfo
NTSTATUS(NTAPI * PMRX_FINALIZE_V_NET_ROOT_CALLDOWN)(_Inout_ PMRX_V_NET_ROOT VirtualNetRoot, _In_ PBOOLEAN Force)
PMRX_COMPUTE_NEW_BUFFERING_STATE MRxComputeNewBufferingState
PMRX_CALLDOWN MRxCloseSrvOpen
ULONG_PTR ERESOURCE_THREAD
_In_ ULONG _In_ ULONG _In_ ULONG Length
struct _MRX_SRVCALL_CALLBACK_CONTEXT * PMRX_SRVCALL_CALLBACK_CONTEXT
XXCTL_LOWIO_COMPONENT FsCtl
PNON_PAGED_FCB NonPagedFcb
ULONG NotificationBufferLength
ULONG BestFinisherOrdinal
PMRX_SRVCALL_CALLBACK CallBack
PMRX_CALLDOWN MRxSetFileInfo
PMRX_CALLDOWN MRxDevFcbXXXControlFile
PMRX_CHANGE_BUFFERING_STATE_CALLDOWN MRxCompleteBufferingStateChangeRequest
BOOLEAN CalldownCancelled
VOID(NTAPI * PMRX_SRVCALL_CALLBACK)(_Inout_ PMRX_SRVCALL_CALLBACK_CONTEXT Context)
NTSTATUS(NTAPI * PMRX_CALLDOWN_CTX)(_Inout_ PRX_CONTEXT RxContext, _Inout_ PRDBSS_DEVICE_OBJECT RxDeviceObject)
PMRX_CREATE_SRVCALL MRxCreateSrvCall
PMRX_EXTRACT_NETROOT_NAME MRxExtractNetRootName
PMRX_NETROOT_CALLBACK Callback
PMRX_FORCECLOSED_CALLDOWN MRxForceClosed
PMRX_CALLDOWN MRxQueryEaInfo
PMRX_CALLDOWN MRxTruncate
PVOID pNotificationBuffer
struct _MRX_CREATENETROOT_CONTEXT MRX_CREATENETROOT_CONTEXT
PMRX_CREATE_SRVCALL MRxCancelCreateSrvCall
NTSTATUS(NTAPI * PMRX_CHKDIR_CALLDOWN)(_Inout_ PRX_CONTEXT RxContext, _In_ PUNICODE_STRING DirectoryName)
PMRX_CALLDOWN MRxShouldTryToCollapseThisOpen
NTSTATUS(NTAPI * PMRX_PREPARSE_NAME)(_Inout_ PRX_CONTEXT RxContext, _In_ PUNICODE_STRING Name)
RX_WORK_QUEUE_ITEM WorkQueueItem
PMRX_CALLDOWN MRxEnumeratePrintQueue
NTSTATUS(NTAPI * PMRX_IS_LOCK_REALIZABLE)(_Inout_ PMRX_FCB Fcb, _In_ PLARGE_INTEGER ByteOffset, _In_ PLARGE_INTEGER Length, _In_ ULONG LowIoLockFlags)
PMRX_CALLDOWN_CTX MRxStart
PMRX_SRVCALL_WINNER_NOTIFY MRxSrvCallWinnerNotify
PMRX_CALLDOWN MRxSetVolumeInfo
enum _LOWIO_OPS LOWIO_OPS
PMRX_CALLDOWN_CTX MRxStop
ULONG CallbackContextOrdinal
PMRX_CALLDOWN MRxSetQuotaInfo
NTSTATUS(NTAPI * PMRX_UPDATE_NETROOT_STATE)(_Inout_ PMRX_NET_ROOT NetRoot)
NTSTATUS(NTAPI * PMRX_CREATE_V_NET_ROOT)(_Inout_ PMRX_CREATENETROOT_CONTEXT Context)
_In_ PDEVICE_OBJECT DeviceObject
struct _MINIRDR_DISPATCH * PMINIRDR_DISPATCH
NTSTATUS VirtualNetRootStatus
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
PMRX_CALLDOWN MRxQueryQuotaInfo
PMRX_CALLDOWN MRxSetFileInfoAtCleanup
NTSTATUS NTAPI RxRegisterMinirdr(_Out_ PRDBSS_DEVICE_OBJECT *DeviceObject, _Inout_ PDRIVER_OBJECT DriverObject, _In_ PMINIRDR_DISPATCH MrdrDispatch, _In_ ULONG Controls, _In_ PUNICODE_STRING DeviceName, _In_ ULONG DeviceExtensionSize, _In_ DEVICE_TYPE DeviceType, _In_ ULONG DeviceCharacteristics)
VOID NTAPI RxpUnregisterMinirdr(_In_ PRDBSS_DEVICE_OBJECT RxDeviceObject)
PMRX_SRVCALLDOWN_STRUCTURE SrvCalldownStructure
PRDBSS_DEVICE_OBJECT BestFinisher
_In_ WDFDEVICE _In_ ULONG DeviceCharacteristics
PMRX_CALLDOWN MRxSetSdInfo
PMRX_CALLDOWN MRxClosePrintFile
struct _LOWIO_LOCK_LIST LOWIO_LOCK_LIST
PRDBSS_DEVICE_OBJECT RxDeviceObject
PMRX_CALLDOWN MRxOpenPrintFile
PMRX_DEALLOCATE_FOR_FOBX MRxDeallocateForFobx
PMRX_CALLDOWN MRxClosedFcbTimeOut
PMRX_GET_CONNECTION_ID MRxGetConnectionId
enum _RX_BLOCK_CONDITION * PRX_BLOCK_CONDITION
PMRX_CALLDOWN MRxZeroExtend
PMRX_CALLDOWN MRxSetEaInfo
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
struct _MRX_SRVCALLDOWN_STRUCTURE * PMRX_SRVCALLDOWN_STRUCTURE
struct _LOWIO_LOCK_LIST * Next
PMRX_FINALIZE_NET_ROOT_CALLDOWN MRxFinalizeNetRoot
PMRX_EXTENDFILE_CALLDOWN MRxExtendForNonCache
NTSTATUS(NTAPI * PLOWIO_COMPLETION_ROUTINE)(_In_ PRX_CONTEXT RxContext)
NODE_TYPE_CODE NodeTypeCode
NTSTATUS(NTAPI * PMRX_FINALIZE_NET_ROOT_CALLDOWN)(_Inout_ PMRX_NET_ROOT NetRoot, _In_ PBOOLEAN Force)
struct _MRX_SRVCALLDOWN_STRUCTURE MRX_SRVCALLDOWN_STRUCTURE
NTSTATUS(NTAPI * PMRX_DEALLOCATE_FOR_FOBX)(_Inout_ PMRX_FOBX Fobx)
MRX_SRVCALL_CALLBACK_CONTEXT CallbackContexts[1]
PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_MAXIMUM+1]
struct _LOWIO_CONTEXT::@2023::@2025 Locks
ERESOURCE_THREAD ResourceThreadId
PMRX_CALLDOWN MRxQueryDirectory
NTSTATUS(NTAPI * PMRX_CHKFCB_CALLDOWN)(_In_ PFCB Fcb1, _In_ PFCB Fcb2)
NTSTATUS NTAPI RxStopMinirdr(_In_ PRX_CONTEXT RxContext, _Out_ PBOOLEAN PostToFsp)
struct _MRX_CREATENETROOT_CONTEXT * PMRX_CREATENETROOT_CONTEXT
struct _LOWIO_CONTEXT::@2023::@2026 NotifyChangeDirectory
LIST_ENTRY SrvCalldownList
PMRX_CALLDOWN MRxQuerySdInfo
struct _LOWIO_CONTEXT::@2023::@2024 ReadWrite
NTSTATUS(NTAPI * PMRX_COMPUTE_NEW_BUFFERING_STATE)(_Inout_ PMRX_SRV_OPEN SrvOpen, _In_ PVOID MRxContext, _Out_ PULONG NewBufferingState)
_In_opt_ PLARGE_INTEGER NewFileSize
struct _MRX_SRVCALL_CALLBACK_CONTEXT MRX_SRVCALL_CALLBACK_CONTEXT
struct _MINIRDR_DISPATCH MINIRDR_DISPATCH
PMRX_UPDATE_NETROOT_STATE MRxUpdateNetRootState
PLOWIO_COMPLETION_ROUTINE CompletionRoutine
NTSTATUS(NTAPI * PMRX_FORCECLOSED_CALLDOWN)(_Inout_ PMRX_SRV_OPEN SrvOpen)
struct _XXCTL_LOWIO_COMPONENT XXCTL_LOWIO_COMPONENT
PMRX_CALLDOWN MRxCleanupFobx
NTSTATUS NTAPI RxStartMinirdr(_In_ PRX_CONTEXT RxContext, _Out_ PBOOLEAN PostToFsp)
ULONG(NTAPI * PMRX_EXTENDFILE_CALLDOWN)(_Inout_ PRX_CONTEXT RxContext, _Inout_ PLARGE_INTEGER NewFileSize, _Out_ PLARGE_INTEGER NewAllocationSize)
NODE_BYTE_SIZE NodeByteSize
NTSTATUS(NTAPI * PMRX_SRVCALL_WINNER_NOTIFY)(_Inout_ PMRX_SRV_CALL SrvCall, _In_ BOOLEAN ThisMinirdrIsTheWinner, _Inout_ PVOID RecommunicateContext)
PLOWIO_LOCK_LIST LockList
XXCTL_LOWIO_COMPONENT IoCtl
PMRX_FINALIZE_V_NET_ROOT_CALLDOWN MRxFinalizeVNetRoot
NTSTATUS(NTAPI * PMRX_CALLDOWN)(_Inout_ PRX_CONTEXT RxContext)
NTSTATUS(NTAPI * PMRX_FINALIZE_SRVCALL_CALLDOWN)(_Inout_ PMRX_SRV_CALL SrvCall, _In_ BOOLEAN Force)
PMRX_EXTENDFILE_CALLDOWN MRxExtendForCache
struct _LOWIO_LOCK_LIST * PLOWIO_LOCK_LIST
PMRX_CALLDOWN MRxQueryFileInfo
VOID(NTAPI * PMRX_NETROOT_CALLBACK)(_Inout_ PMRX_CREATENETROOT_CONTEXT CreateContext)
NTSTATUS(NTAPI * PMRX_CHANGE_BUFFERING_STATE_CALLDOWN)(_Inout_ PRX_CONTEXT RxContext, _Inout_ PMRX_SRV_OPEN SrvOpen, _In_ PVOID MRxContext)
NTSTATUS(NTAPI * PMRX_CREATE_SRVCALL)(_Inout_ PMRX_SRV_CALL SrvCall, _Inout_ PMRX_SRVCALL_CALLBACK_CONTEXT SrvCallCallBackContext)
struct tagContext Context
enum _RX_BLOCK_CONDITION RX_BLOCK_CONDITION
NTSTATUS(NTAPI * PMRX_GET_CONNECTION_ID)(_Inout_ PRX_CONTEXT RxContext, _Inout_ PRX_CONNECTION_ID UniqueId)
PMRX_CALLDOWN MRxCollapseOpen
PVOID RecommunicateContext
PMRX_PREPARSE_NAME MRxPreparseName
PMRX_DEALLOCATE_FOR_FCB MRxDeallocateForFcb
VOID(NTAPI * PMRX_EXTRACT_NETROOT_NAME)(_In_ PUNICODE_STRING FilePathName, _In_ PMRX_SRV_CALL SrvCall, _Out_ PUNICODE_STRING NetRootName, _Out_opt_ PUNICODE_STRING RestOfName)
int CreateContext(PSOCKET_INFORMATION Socket)
PMRX_CREATE_V_NET_ROOT MRxCreateVNetRoot
union _LOWIO_CONTEXT::@2023 ParamsFor
PMRX_FINALIZE_SRVCALL_CALLDOWN MRxFinalizeSrvCall
PMRX_IS_LOCK_REALIZABLE MRxIsLockRealizable
NTSTATUS NTAPI RxFsdDispatch(_In_ PRDBSS_DEVICE_OBJECT RxDeviceObject, _In_ PIRP Irp)
IN PDCB IN PCCB IN VBO IN OUT PULONG OUT PDIRENT OUT PBCB OUT PVBO ByteOffset
NTSTATUS(NTAPI * PMRX_DEALLOCATE_FOR_FCB)(_Inout_ PMRX_FCB Fcb)
PMRX_CHKFCB_CALLDOWN MRxAreFilesAliased
PMRX_CALLDOWN MRxClosedSrvOpenTimeOut
_Inout_ PVCB _In_ BOOLEAN Force
PMRX_CHKDIR_CALLDOWN MRxIsValidDirectory
PMRX_CALLDOWN MRxWritePrintFile