6 #include <pseh/pseh2.h>
7 #include <ndk/muptypes.h>
10 #define INIT_SECTION __attribute__((section ("INIT")))
12 #define INIT_SECTION /* Done via alloc_text for MSC */
15 #define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
16 #define IO_METHOD_FROM_CTL_CODE(C) (C & 0x00000003)
18 #define TAG_MUP ' puM'
20 #define FILE_SIMPLE_RIGHTS_MASK (FILE_ALL_ACCESS & ~STANDARD_RIGHTS_REQUIRED &~ SYNCHRONIZE)
22 #define DFS_OPEN_CONTEXT 0xFF444653
23 #define DFS_DOWNLEVEL_OPEN_CONTEXT 0x11444653
24 #define DFS_CSCAGENT_NAME_CONTEXT 0xAAAAAAAA
25 #define DFS_USER_NAME_CONTEXT 0xBBBBBBBB
27 #define NODE_TYPE_VCB 0x1
28 #define NODE_TYPE_UNC 0x2
29 #define NODE_TYPE_PFX 0x3
30 #define NODE_TYPE_FCB 0x4
31 #define NODE_TYPE_CCB 0x5
32 #define NODE_TYPE_MIC 0x6
33 #define NODE_TYPE_MQC 0x8
35 #define NODE_STATUS_HEALTHY 0x1
36 #define NODE_STATUS_CLEANUP 0x2
38 typedef struct _MUP_VCB
44 SHARE_ACCESS ShareAccess
;
47 typedef struct _MUP_FCB
53 PFILE_OBJECT FileObject
;
57 typedef struct _MUP_CCB
64 LIST_ENTRY CcbListEntry
;
65 PDEVICE_OBJECT DeviceObject
;
66 PFILE_OBJECT FileObject
;
69 typedef struct _MUP_MIC
81 typedef struct _MUP_UNC
87 LIST_ENTRY ProviderListEntry
;
88 UNICODE_STRING DeviceName
;
90 PDEVICE_OBJECT DeviceObject
;
91 PFILE_OBJECT FileObject
;
93 BOOLEAN MailslotsSupported
;
97 typedef struct _MUP_PFX
103 UNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry
;
104 UNICODE_STRING AcceptedPrefix
;
106 LARGE_INTEGER ValidityTimeout
;
107 PMUP_UNC UncProvider
;
108 BOOLEAN ExternalAlloc
;
110 BOOLEAN KeepExtraRef
;
112 LIST_ENTRY PrefixListEntry
;
113 } MUP_PFX
, *PMUP_PFX
;
115 typedef struct _MUP_MQC
122 PFILE_OBJECT FileObject
;
123 PMUP_UNC LatestProvider
;
124 ERESOURCE QueryPathListLock
;
126 NTSTATUS LatestStatus
;
127 LIST_ENTRY QueryPathList
;
128 LIST_ENTRY MQCListEntry
;
129 } MUP_MQC
, *PMUP_MQC
;
131 typedef struct _FORWARDED_IO_CONTEXT
134 PMUP_MIC MasterIoContext
;
135 WORK_QUEUE_ITEM WorkQueueItem
;
136 PDEVICE_OBJECT DeviceObject
;
138 } FORWARDED_IO_CONTEXT
, *PFORWARDED_IO_CONTEXT
;
140 typedef struct _QUERY_PATH_CONTEXT
142 PMUP_MQC MasterQueryContext
;
143 PMUP_UNC UncProvider
;
144 PQUERY_PATH_REQUEST QueryPathRequest
;
145 LIST_ENTRY QueryPathListEntry
;
147 } QUERY_PATH_CONTEXT
, *PQUERY_PATH_CONTEXT
;
149 #endif /* _MUP_PCH_ */