mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 00:32:58 +00:00
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
This commit is contained in:
parent
b94e2d8ca0
commit
c2c66aff7d
24198 changed files with 0 additions and 37285 deletions
403
sdk/include/ddk/mrx.h
Normal file
403
sdk/include/ddk/mrx.h
Normal file
|
@ -0,0 +1,403 @@
|
|||
#ifndef _RXMINIRDR_
|
||||
#define _RXMINIRDR_
|
||||
|
||||
#define RxSetIoStatusStatus(R, S) (R)->CurrentIrp->IoStatus.Status = (S)
|
||||
#define RxSetIoStatusInfo(R, I) (R)->CurrentIrp->IoStatus.Information = (I)
|
||||
|
||||
#define RxShouldPostCompletion() ((KeGetCurrentIrql() >= DISPATCH_LEVEL))
|
||||
|
||||
#define RX_REGISTERMINI_FLAG_DONT_PROVIDE_UNCS 0x00000001
|
||||
#define RX_REGISTERMINI_FLAG_DONT_PROVIDE_MAILSLOTS 0x00000002
|
||||
#define RX_REGISTERMINI_FLAG_DONT_INIT_DRIVER_DISPATCH 0x00000004
|
||||
#define RX_REGISTERMINI_FLAG_DONT_INIT_PREFIX_N_SCAVENGER 0x00000008
|
||||
|
||||
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);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RxStartMinirdr(
|
||||
_In_ PRX_CONTEXT RxContext,
|
||||
_Out_ PBOOLEAN PostToFsp);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RxStopMinirdr(
|
||||
_In_ PRX_CONTEXT RxContext,
|
||||
_Out_ PBOOLEAN PostToFsp);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
RxFsdDispatch(
|
||||
_In_ PRDBSS_DEVICE_OBJECT RxDeviceObject,
|
||||
_In_ PIRP Irp);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_CALLDOWN) (
|
||||
_Inout_ PRX_CONTEXT RxContext);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_CALLDOWN_CTX) (
|
||||
_Inout_ PRX_CONTEXT RxContext,
|
||||
_Inout_ PRDBSS_DEVICE_OBJECT RxDeviceObject);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_CHKDIR_CALLDOWN) (
|
||||
_Inout_ PRX_CONTEXT RxContext,
|
||||
_In_ PUNICODE_STRING DirectoryName);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_CHKFCB_CALLDOWN) (
|
||||
_In_ PFCB Fcb1,
|
||||
_In_ PFCB Fcb2);
|
||||
|
||||
typedef enum _RX_BLOCK_CONDITION {
|
||||
Condition_Uninitialized = 0,
|
||||
Condition_InTransition,
|
||||
Condition_Closing,
|
||||
Condition_Good,
|
||||
Condition_Bad,
|
||||
Condition_Closed
|
||||
} RX_BLOCK_CONDITION, *PRX_BLOCK_CONDITION;
|
||||
|
||||
#define StableCondition(X) ((X) >= Condition_Good)
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(NTAPI *PMRX_NETROOT_CALLBACK) (
|
||||
_Inout_ PMRX_CREATENETROOT_CONTEXT CreateContext);
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(NTAPI *PMRX_EXTRACT_NETROOT_NAME) (
|
||||
_In_ PUNICODE_STRING FilePathName,
|
||||
_In_ PMRX_SRV_CALL SrvCall,
|
||||
_Out_ PUNICODE_STRING NetRootName,
|
||||
_Out_opt_ PUNICODE_STRING RestOfName);
|
||||
|
||||
typedef struct _MRX_CREATENETROOT_CONTEXT
|
||||
{
|
||||
PRX_CONTEXT RxContext;
|
||||
PV_NET_ROOT pVNetRoot;
|
||||
KEVENT FinishEvent;
|
||||
NTSTATUS VirtualNetRootStatus;
|
||||
NTSTATUS NetRootStatus;
|
||||
RX_WORK_QUEUE_ITEM WorkQueueItem;
|
||||
PMRX_NETROOT_CALLBACK Callback;
|
||||
} MRX_CREATENETROOT_CONTEXT, *PMRX_CREATENETROOT_CONTEXT;
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_CREATE_V_NET_ROOT) (
|
||||
_Inout_ PMRX_CREATENETROOT_CONTEXT Context);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_UPDATE_NETROOT_STATE) (
|
||||
_Inout_ PMRX_NET_ROOT NetRoot);
|
||||
|
||||
typedef struct _MRX_SRVCALL_CALLBACK_CONTEXT
|
||||
{
|
||||
PMRX_SRVCALLDOWN_STRUCTURE SrvCalldownStructure;
|
||||
ULONG CallbackContextOrdinal;
|
||||
PRDBSS_DEVICE_OBJECT RxDeviceObject;
|
||||
NTSTATUS Status;
|
||||
PVOID RecommunicateContext;
|
||||
} MRX_SRVCALL_CALLBACK_CONTEXT, *PMRX_SRVCALL_CALLBACK_CONTEXT;
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(NTAPI *PMRX_SRVCALL_CALLBACK) (
|
||||
_Inout_ PMRX_SRVCALL_CALLBACK_CONTEXT Context);
|
||||
|
||||
typedef struct _MRX_SRVCALLDOWN_STRUCTURE
|
||||
{
|
||||
KEVENT FinishEvent;
|
||||
LIST_ENTRY SrvCalldownList;
|
||||
PRX_CONTEXT RxContext;
|
||||
PMRX_SRV_CALL SrvCall;
|
||||
PMRX_SRVCALL_CALLBACK CallBack;
|
||||
BOOLEAN CalldownCancelled;
|
||||
ULONG NumberRemaining;
|
||||
ULONG NumberToWait;
|
||||
ULONG BestFinisherOrdinal;
|
||||
PRDBSS_DEVICE_OBJECT BestFinisher;
|
||||
MRX_SRVCALL_CALLBACK_CONTEXT CallbackContexts[1];
|
||||
} MRX_SRVCALLDOWN_STRUCTURE, *PMRX_SRVCALLDOWN_STRUCTURE;
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_CREATE_SRVCALL) (
|
||||
_Inout_ PMRX_SRV_CALL SrvCall,
|
||||
_Inout_ PMRX_SRVCALL_CALLBACK_CONTEXT SrvCallCallBackContext);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_SRVCALL_WINNER_NOTIFY)(
|
||||
_Inout_ PMRX_SRV_CALL SrvCall,
|
||||
_In_ BOOLEAN ThisMinirdrIsTheWinner,
|
||||
_Inout_ PVOID RecommunicateContext);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_DEALLOCATE_FOR_FCB) (
|
||||
_Inout_ PMRX_FCB Fcb);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_DEALLOCATE_FOR_FOBX) (
|
||||
_Inout_ PMRX_FOBX Fobx);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_IS_LOCK_REALIZABLE) (
|
||||
_Inout_ PMRX_FCB Fcb,
|
||||
_In_ PLARGE_INTEGER ByteOffset,
|
||||
_In_ PLARGE_INTEGER Length,
|
||||
_In_ ULONG LowIoLockFlags);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_FORCECLOSED_CALLDOWN) (
|
||||
_Inout_ PMRX_SRV_OPEN SrvOpen);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_FINALIZE_SRVCALL_CALLDOWN) (
|
||||
_Inout_ PMRX_SRV_CALL SrvCall,
|
||||
_In_ BOOLEAN Force);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_FINALIZE_V_NET_ROOT_CALLDOWN) (
|
||||
_Inout_ PMRX_V_NET_ROOT VirtualNetRoot,
|
||||
_In_ PBOOLEAN Force);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_FINALIZE_NET_ROOT_CALLDOWN) (
|
||||
_Inout_ PMRX_NET_ROOT NetRoot,
|
||||
_In_ PBOOLEAN Force);
|
||||
|
||||
typedef
|
||||
ULONG
|
||||
(NTAPI *PMRX_EXTENDFILE_CALLDOWN) (
|
||||
_Inout_ PRX_CONTEXT RxContext,
|
||||
_Inout_ PLARGE_INTEGER NewFileSize,
|
||||
_Out_ PLARGE_INTEGER NewAllocationSize);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_CHANGE_BUFFERING_STATE_CALLDOWN) (
|
||||
_Inout_ PRX_CONTEXT RxContext,
|
||||
_Inout_ PMRX_SRV_OPEN SrvOpen,
|
||||
_In_ PVOID MRxContext);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_PREPARSE_NAME) (
|
||||
_Inout_ PRX_CONTEXT RxContext,
|
||||
_In_ PUNICODE_STRING Name);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_GET_CONNECTION_ID) (
|
||||
_Inout_ PRX_CONTEXT RxContext,
|
||||
_Inout_ PRX_CONNECTION_ID UniqueId);
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PMRX_COMPUTE_NEW_BUFFERING_STATE) (
|
||||
_Inout_ PMRX_SRV_OPEN SrvOpen,
|
||||
_In_ PVOID MRxContext,
|
||||
_Out_ PULONG NewBufferingState);
|
||||
|
||||
typedef enum _LOWIO_OPS {
|
||||
LOWIO_OP_READ = 0,
|
||||
LOWIO_OP_WRITE,
|
||||
LOWIO_OP_SHAREDLOCK,
|
||||
LOWIO_OP_EXCLUSIVELOCK,
|
||||
LOWIO_OP_UNLOCK,
|
||||
LOWIO_OP_UNLOCK_MULTIPLE,
|
||||
LOWIO_OP_FSCTL,
|
||||
LOWIO_OP_IOCTL,
|
||||
LOWIO_OP_NOTIFY_CHANGE_DIRECTORY,
|
||||
LOWIO_OP_CLEAROUT,
|
||||
LOWIO_OP_MAXIMUM
|
||||
} LOWIO_OPS;
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI *PLOWIO_COMPLETION_ROUTINE) (
|
||||
_In_ PRX_CONTEXT RxContext);
|
||||
|
||||
typedef LONGLONG RXVBO;
|
||||
|
||||
typedef struct _LOWIO_LOCK_LIST
|
||||
{
|
||||
struct _LOWIO_LOCK_LIST * Next;
|
||||
ULONG LockNumber;
|
||||
RXVBO ByteOffset;
|
||||
LONGLONG Length;
|
||||
BOOLEAN ExclusiveLock;
|
||||
ULONG Key;
|
||||
} LOWIO_LOCK_LIST, *PLOWIO_LOCK_LIST;
|
||||
|
||||
typedef struct _XXCTL_LOWIO_COMPONENT
|
||||
{
|
||||
ULONG Flags;
|
||||
union
|
||||
{
|
||||
ULONG FsControlCode;
|
||||
ULONG IoControlCode;
|
||||
};
|
||||
ULONG InputBufferLength;
|
||||
PVOID pInputBuffer;
|
||||
ULONG OutputBufferLength;
|
||||
PVOID pOutputBuffer;
|
||||
UCHAR MinorFunction;
|
||||
} XXCTL_LOWIO_COMPONENT;
|
||||
|
||||
typedef struct _LOWIO_CONTEXT
|
||||
{
|
||||
USHORT Operation;
|
||||
USHORT Flags;
|
||||
PLOWIO_COMPLETION_ROUTINE CompletionRoutine;
|
||||
PERESOURCE Resource;
|
||||
ERESOURCE_THREAD ResourceThreadId;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
ULONG Flags;
|
||||
PMDL Buffer;
|
||||
RXVBO ByteOffset;
|
||||
ULONG ByteCount;
|
||||
ULONG Key;
|
||||
PNON_PAGED_FCB NonPagedFcb;
|
||||
} ReadWrite;
|
||||
struct
|
||||
{
|
||||
union
|
||||
{
|
||||
PLOWIO_LOCK_LIST LockList;
|
||||
LONGLONG Length;
|
||||
};
|
||||
ULONG Flags;
|
||||
RXVBO ByteOffset;
|
||||
ULONG Key;
|
||||
} Locks;
|
||||
XXCTL_LOWIO_COMPONENT FsCtl;
|
||||
XXCTL_LOWIO_COMPONENT IoCtl;
|
||||
struct
|
||||
{
|
||||
BOOLEAN WatchTree;
|
||||
ULONG CompletionFilter;
|
||||
ULONG NotificationBufferLength;
|
||||
PVOID pNotificationBuffer;
|
||||
} NotifyChangeDirectory;
|
||||
} ParamsFor;
|
||||
} LOWIO_CONTEXT;
|
||||
|
||||
#define LOWIO_CONTEXT_FLAG_SYNCCALL 0x01
|
||||
#define LOWIO_CONTEXT_FLAG_SAVEUNLOCKS 0x2
|
||||
#define LOWIO_CONTEXT_FLAG_LOUDOPS 0x04
|
||||
#define LOWIO_CONTEXT_FLAG_CAN_COMPLETE_AT_DPC_LEVEL 0x08
|
||||
|
||||
#define LOWIO_READWRITEFLAG_PAGING_IO 0x01
|
||||
#define LOWIO_READWRITEFLAG_EXTENDING_FILESIZE 0x02
|
||||
#define LOWIO_READWRITEFLAG_EXTENDING_VDL 0x04
|
||||
|
||||
#define RDBSS_MANAGE_SRV_CALL_EXTENSION 0x01
|
||||
#define RDBSS_MANAGE_NET_ROOT_EXTENSION 0x02
|
||||
#define RDBSS_MANAGE_V_NET_ROOT_EXTENSION 0x04
|
||||
#define RDBSS_MANAGE_FCB_EXTENSION 0x08
|
||||
#define RDBSS_MANAGE_SRV_OPEN_EXTENSION 0x10
|
||||
#define RDBSS_MANAGE_FOBX_EXTENSION 0x20
|
||||
#define RDBSS_NO_DEFERRED_CACHE_READAHEAD 0x1000
|
||||
|
||||
typedef struct _MINIRDR_DISPATCH
|
||||
{
|
||||
NODE_TYPE_CODE NodeTypeCode;
|
||||
NODE_BYTE_SIZE NodeByteSize;
|
||||
ULONG MRxFlags;
|
||||
ULONG MRxSrvCallSize;
|
||||
ULONG MRxNetRootSize;
|
||||
ULONG MRxVNetRootSize;
|
||||
ULONG MRxFcbSize;
|
||||
ULONG MRxSrvOpenSize;
|
||||
ULONG MRxFobxSize;
|
||||
PMRX_CALLDOWN_CTX MRxStart;
|
||||
PMRX_CALLDOWN_CTX MRxStop;
|
||||
PMRX_CALLDOWN MRxCancel;
|
||||
PMRX_CALLDOWN MRxCreate;
|
||||
PMRX_CALLDOWN MRxCollapseOpen;
|
||||
PMRX_CALLDOWN MRxShouldTryToCollapseThisOpen;
|
||||
PMRX_CALLDOWN MRxFlush;
|
||||
PMRX_CALLDOWN MRxZeroExtend;
|
||||
PMRX_CALLDOWN MRxTruncate;
|
||||
PMRX_CALLDOWN MRxCleanupFobx;
|
||||
PMRX_CALLDOWN MRxCloseSrvOpen;
|
||||
PMRX_DEALLOCATE_FOR_FCB MRxDeallocateForFcb;
|
||||
PMRX_DEALLOCATE_FOR_FOBX MRxDeallocateForFobx;
|
||||
PMRX_IS_LOCK_REALIZABLE MRxIsLockRealizable;
|
||||
PMRX_FORCECLOSED_CALLDOWN MRxForceClosed;
|
||||
PMRX_CHKFCB_CALLDOWN MRxAreFilesAliased;
|
||||
PMRX_CALLDOWN MRxOpenPrintFile;
|
||||
PMRX_CALLDOWN MRxClosePrintFile;
|
||||
PMRX_CALLDOWN MRxWritePrintFile;
|
||||
PMRX_CALLDOWN MRxEnumeratePrintQueue;
|
||||
PMRX_CALLDOWN MRxClosedSrvOpenTimeOut;
|
||||
PMRX_CALLDOWN MRxClosedFcbTimeOut;
|
||||
PMRX_CALLDOWN MRxQueryDirectory;
|
||||
PMRX_CALLDOWN MRxQueryFileInfo;
|
||||
PMRX_CALLDOWN MRxSetFileInfo;
|
||||
PMRX_CALLDOWN MRxSetFileInfoAtCleanup;
|
||||
PMRX_CALLDOWN MRxQueryEaInfo;
|
||||
PMRX_CALLDOWN MRxSetEaInfo;
|
||||
PMRX_CALLDOWN MRxQuerySdInfo;
|
||||
PMRX_CALLDOWN MRxSetSdInfo;
|
||||
PMRX_CALLDOWN MRxQueryQuotaInfo;
|
||||
PMRX_CALLDOWN MRxSetQuotaInfo;
|
||||
PMRX_CALLDOWN MRxQueryVolumeInfo;
|
||||
PMRX_CALLDOWN MRxSetVolumeInfo;
|
||||
PMRX_CHKDIR_CALLDOWN MRxIsValidDirectory;
|
||||
PMRX_COMPUTE_NEW_BUFFERING_STATE MRxComputeNewBufferingState;
|
||||
PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_MAXIMUM+1];
|
||||
PMRX_EXTENDFILE_CALLDOWN MRxExtendForCache;
|
||||
PMRX_EXTENDFILE_CALLDOWN MRxExtendForNonCache;
|
||||
PMRX_CHANGE_BUFFERING_STATE_CALLDOWN MRxCompleteBufferingStateChangeRequest;
|
||||
PMRX_CREATE_V_NET_ROOT MRxCreateVNetRoot;
|
||||
PMRX_FINALIZE_V_NET_ROOT_CALLDOWN MRxFinalizeVNetRoot;
|
||||
PMRX_FINALIZE_NET_ROOT_CALLDOWN MRxFinalizeNetRoot;
|
||||
PMRX_UPDATE_NETROOT_STATE MRxUpdateNetRootState;
|
||||
PMRX_EXTRACT_NETROOT_NAME MRxExtractNetRootName;
|
||||
PMRX_CREATE_SRVCALL MRxCreateSrvCall;
|
||||
PMRX_CREATE_SRVCALL MRxCancelCreateSrvCall;
|
||||
PMRX_SRVCALL_WINNER_NOTIFY MRxSrvCallWinnerNotify;
|
||||
PMRX_FINALIZE_SRVCALL_CALLDOWN MRxFinalizeSrvCall;
|
||||
PMRX_CALLDOWN MRxDevFcbXXXControlFile;
|
||||
PMRX_PREPARSE_NAME MRxPreparseName;
|
||||
PMRX_GET_CONNECTION_ID MRxGetConnectionId;
|
||||
ULONG ScavengerTimeout;
|
||||
} MINIRDR_DISPATCH, *PMINIRDR_DISPATCH;
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue