ReactOS  0.4.15-dev-506-ga3ec01c
rxcontx.h
Go to the documentation of this file.
1 #ifndef _RX_CONTEXT_STRUCT_DEFINED_
2 #define _RX_CONTEXT_STRUCT_DEFINED_
3 
4 #define RX_TOPLEVELIRP_CONTEXT_SIGNATURE 'LTxR'
5 
6 typedef struct _RX_TOPLEVELIRP_CONTEXT
7 {
8  union
9  {
10 #ifndef __cplusplus
12 #endif
14  };
23 
24 BOOLEAN
26  _Inout_ PRX_TOPLEVELIRP_CONTEXT TopLevelContext,
27  _In_ PIRP Irp,
28  _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject,
29  _In_ BOOLEAN ForceTopLevel);
30 
31 VOID
33  _Inout_ PRX_TOPLEVELIRP_CONTEXT TopLevelContext,
34  _In_ PIRP Irp,
35  _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject,
36  _In_ ULONG Flags);
37 
38 #define RxInitializeTopLevelIrpContext(a,b,c) __RxInitializeTopLevelIrpContext(a,b,c,0)
39 
40 PIRP
42  VOID);
43 
46  VOID);
47 
48 VOID
50  _Inout_ PRX_TOPLEVELIRP_CONTEXT TopLevelContext);
51 
52 BOOLEAN
54  _In_ PIRP Irp);
55 
56 #ifdef RDBSS_TRACKER
57 typedef struct _RX_FCBTRACKER_CALLINFO
58 {
59  ULONG AcquireRelease;
60  USHORT SavedTrackerValue;
62  PSZ FileName;
63  ULONG Flags;
64 } RX_FCBTRACKER_CALLINFO, *PRX_FCBTRACKER_CALLINFO;
65 #define RDBSS_TRACKER_HISTORY_SIZE 32
66 #endif
67 
68 #define MRX_CONTEXT_FIELD_COUNT 4
69 
70 #if (_WIN32_WINNT >= 0x0600)
71 typedef
74  _In_ PRX_CONTEXT RxContext,
75  _In_ PIRP Irp);
76 #else
77 typedef
80  _In_ PRX_CONTEXT RxContext);
81 #endif
82 
84 
85 typedef struct _NT_CREATE_PARAMETERS
86 {
98 
99 typedef struct _RX_CONTEXT
100 {
128  union
129  {
130  struct
131  {
132  union
133  {
136  };
138  };
140  };
141  union
142  {
145  };
155  union
156  {
157  struct
158  {
159  union
160  {
163  };
165  union
166  {
169  };
172  } Info;
173  struct
174  {
178  } PrefixClaim;
179  };
180  union
181  {
182  struct
183  {
209  } Create;
210  struct
211  {
217  } QueryDirectory;
218  struct
219  {
222  struct
223  {
230  } QueryEa;
231  struct
232  {
235  } QuerySecurity;
236  struct
237  {
240  } SetSecurity;
241  struct
242  {
243  ULONG Length;
250  } QueryQuota;
251  struct
252  {
253  ULONG Length;
254  } SetQuota;
255  struct
256  {
261  struct {
264  };
266  };
269 #ifdef RDBSS_TRACKER
270  volatile LONG AcquireReleaseFcbTrackerX;
271  volatile ULONG TrackerHistoryPointer;
272  RX_FCBTRACKER_CALLINFO TrackerHistory[RDBSS_TRACKER_HISTORY_SIZE];
273 #endif
274 #if DBG
275  ULONG ShadowCritOwner;
276 #endif
278 
279 typedef enum
280 {
282  RX_CONTEXT_FLAG_WAIT = 0x00000002,
313 
314 #define RX_CONTEXT_PRESERVED_FLAGS (RX_CONTEXT_FLAG_FROM_POOL | \
315  RX_CONTEXT_FLAG_MUST_SUCCEED_ALLOCATED | \
316  RX_CONTEXT_FLAG_IN_FSP)
317 
318 #define RX_CONTEXT_INITIALIZATION_FLAGS (RX_CONTEXT_FLAG_WAIT | \
319  RX_CONTEXT_FLAG_MUST_SUCCEED | \
320  RX_CONTEXT_FLAG_MUST_SUCCEED_NONBLOCKING)
321 
322 typedef enum
323 {
330 
331 typedef enum {
343 
344 #if DBG
345 #define RxSaveAndSetExceptionNoBreakpointFlag(R, F) \
346 { \
347  F = FlagOn(R->Flags, RX_CONTEXT_FLAG_NO_EXCEPTION_BREAKPOINT); \
348  SetFlag(R->Flags, RX_CONTEXT_FLAG_NO_EXCEPTION_BREAKPOINT); \
349 }
350 
351 #define RxRestoreExceptionNoBreakpointFlag(R, F) \
352 { \
353  ClearFlag(R->Flags, RX_CONTEXT_FLAG_NO_EXCEPTION_BREAKPOINT); \
354  SetFlag(R->Flags, F); \
355 }
356 #else
357 #define RxSaveAndSetExceptionNoBreakpointFlag(R, F)
358 #define RxRestoreExceptionNoBreakpointFlag(R, F)
359 #endif
360 
361 #if DBG
362 VOID
364  _In_ PRX_CONTEXT RxContext,
365  _In_ ULONG CapturedRxContextSerialNumber,
366  _In_ ULONG Line,
367  _In_ PCSTR File);
368 #define RxItsTheSameContext() { __RxItsTheSameContext(RxContext, CapturedRxContextSerialNumber, __LINE__, __FILE__); }
369 #else
370 #define RxItsTheSameContext() { NOTHING; }
371 #endif
372 
374 
375 #define MINIRDR_CALL_THROUGH(STATUS, DISPATCH, FUNC, ARGLIST) \
376 { \
377  ASSERT(DISPATCH); \
378  ASSERT(NodeType(DISPATCH) == RDBSS_NTC_MINIRDR_DISPATCH); \
379  if (DISPATCH->FUNC == NULL) \
380  { \
381  STATUS = STATUS_NOT_IMPLEMENTED; \
382  } \
383  else \
384  { \
385  STATUS = DISPATCH->FUNC ARGLIST; \
386  } \
387 }
388 
389 #define MINIRDR_CALL(STATUS, CONTEXT, DISPATCH, FUNC, ARGLIST) \
390 { \
391  ASSERT(DISPATCH); \
392  ASSERT(NodeType(DISPATCH) == RDBSS_NTC_MINIRDR_DISPATCH); \
393  if (DISPATCH->FUNC == NULL) \
394  { \
395  STATUS = STATUS_NOT_IMPLEMENTED; \
396  } \
397  else \
398  { \
399  if (!BooleanFlagOn((CONTEXT)->Flags, RX_CONTEXT_FLAG_CANCELLED)) \
400  { \
401  RtlZeroMemory(&((CONTEXT)->MRxContext[0]), \
402  sizeof((CONTEXT)->MRxContext)); \
403  STATUS = DISPATCH->FUNC ARGLIST; \
404  } \
405  else \
406  { \
407  STATUS = STATUS_CANCELLED; \
408  } \
409  } \
410 }
411 
412 #define RxWaitSync(RxContext) \
413  (RxContext)->Flags |= RX_CONTEXT_FLAG_SYNC_EVENT_WAITERS; \
414  KeWaitForSingleObject(&(RxContext)->SyncEvent, \
415  Executive, KernelMode, FALSE, NULL)
416 
417 #define RxSignalSynchronousWaiter(RxContext) \
418  (RxContext)->Flags &= ~RX_CONTEXT_FLAG_SYNC_EVENT_WAITERS; \
419  KeSetEvent(&(RxContext)->SyncEvent, 0, FALSE)
420 
421 #define RxInsertContextInSerializationQueue(SerializationQueue, RxContext) \
422  (RxContext)->Flags |= RX_CONTEXT_FLAG_IN_SERIALIZATION_QUEUE; \
423  InsertTailList(SerializationQueue, &((RxContext)->RxContextSerializationQLinks))
424 
428  PLIST_ENTRY SerializationQueue)
429 {
430  if (IsListEmpty(SerializationQueue))
431  {
432  return NULL;
433  }
434  else
435  {
436  PRX_CONTEXT Context = CONTAINING_RECORD(SerializationQueue->Flink,
437  RX_CONTEXT,
438  RxContextSerializationQLinks);
439 
440  RemoveEntryList(SerializationQueue->Flink);
441 
442  Context->RxContextSerializationQLinks.Flink = NULL;
443  Context->RxContextSerializationQLinks.Blink = NULL;
444 
445  return Context;
446  }
447 }
448 
449 #define RxTransferList(Destination, Source) \
450  if (IsListEmpty((Source))) \
451  InitializeListHead((Destination)); \
452  else \
453  { \
454  *(Destination) = *(Source); \
455  (Destination)->Flink->Blink = (Destination); \
456  (Destination)->Blink->Flink = (Destination); \
457  InitializeListHead((Source)); \
458  }
459 
460 #define RxTransferListWithMutex(Destination, Source, Mutex) \
461  { \
462  ExAcquireFastMutex(Mutex); \
463  RxTransferList(Destination, Source); \
464  ExReleaseFastMutex(Mutex); \
465  }
466 
467 NTSTATUS
469  PV_NET_ROOT VNetRoot,
470  BOOLEAN ForceFilesClosed);
471 
472 VOID
474  PFOBX Fobx
475  );
476 
477 VOID
478 NTAPI
480  _In_ PIRP Irp,
481  _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject,
482  _In_ ULONG InitialContextFlags,
483  _Inout_ PRX_CONTEXT RxContext);
484 
486 NTAPI
488  _In_ PIRP Irp,
489  _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject,
490  _In_ ULONG InitialContextFlags);
491 
492 VOID
493 NTAPI
495  _Inout_ PRX_CONTEXT RxContext);
496 
497 VOID
498 NTAPI
500  _In_ PRX_CONTEXT RxContext);
501 
502 VOID
503 NTAPI
505  _Inout_ PRX_CONTEXT RxContext);
506 
507 #if DBG
508 #define RxDereferenceAndDeleteRxContext(RXCONTEXT) \
509 { \
510  RxDereferenceAndDeleteRxContext_Real((RXCONTEXT)); \
511  (RXCONTEXT) = NULL; \
512 }
513 #else
514 #define RxDereferenceAndDeleteRxContext(RXCONTEXT) \
515 { \
516  RxDereferenceAndDeleteRxContext_Real((RXCONTEXT)); \
517 }
518 #endif
519 
521 
522 VOID
523 NTAPI
525  _Inout_ PRX_CONTEXT RxContext,
526  _Inout_ PLIST_ENTRY BlockingIoQ);
527 
528 VOID
530  _Inout_ PRX_CONTEXT RxContext);
531 
532 #if (_WIN32_WINNT >= 0x0600)
533 VOID
535  _Inout_ PRX_CONTEXT RxContext,
536  _In_ PIRP Irp);
537 #else
538 VOID
540  _Inout_ PRX_CONTEXT RxContext);
541 #endif
542 
543 VOID
545  _Inout_ PRX_CONTEXT RxContext);
546 
547 #endif
PRDBSS_DEVICE_OBJECT RxGetTopDeviceObjectIfRdbssIrp(VOID)
Definition: rdbss.c:6826
LONG LengthRemaining
Definition: rxcontx.h:168
VOID NTAPI RxResumeBlockedOperations_Serially(_Inout_ PRX_CONTEXT RxContext, _Inout_ PLIST_ENTRY BlockingIoQ)
RX_WORK_QUEUE_ITEM WorkQueueItem
Definition: rxcontx.h:149
ULONG UserEaListLength
Definition: rxcontx.h:225
NT_CREATE_PARAMETERS NtCreateParameters
Definition: rxcontx.h:184
struct _RX_CONTEXT RX_CONTEXT
VOID NTAPI RxInitializeContext(_In_ PIRP Irp, _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject, _In_ ULONG InitialContextFlags, _Inout_ PRX_CONTEXT RxContext)
ULONG SidListLength
Definition: rxcontx.h:246
UCHAR MinorFunction
Definition: rxcontx.h:106
BOOLEAN FcbPagingIoResourceAcquired
Definition: rxcontx.h:126
BOOLEAN TryForScavengingOnSharingViolation
Definition: rxcontx.h:201
NTSTATUS RxCancelNotifyChangeDirectoryRequestsForVNetRoot(PV_NET_ROOT VNetRoot, BOOLEAN ForceFilesClosed)
Definition: rdbss.c:1040
FILE_INFORMATION_CLASS FileInformationClass
Definition: rxcontx.h:162
PVOID EaBuffer
Definition: rxcontx.h:191
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST
LARGE_INTEGER AllocationSize
Definition: rxcontx.h:88
PWCH AlsoCanonicalNameBuffer
Definition: rxcontx.h:267
LIST_ENTRY RxContextSerializationQLinks
Definition: rxcontx.h:154
struct _RX_CONTEXT::@2107::@2115 Info
BOOLEAN ReturnSingleEntry
Definition: rxcontx.h:214
VOID NTAPI RxPrepareContextForReuse(_Inout_ PRX_CONTEXT RxContext)
UNICODE_STRING UserDomainName
Definition: rxcontx.h:208
VOID RxCancelBlockingOperation(_Inout_ PRX_CONTEXT RxContext)
_In_ PIRP Irp
Definition: csq.h:116
NET_ROOT_TYPE Type
Definition: rxcontx.h:198
PMRX_FCB pFcb
Definition: rxcontx.h:112
struct _RX_CONTEXT::@2109::@2129 DosVolumeFunction
UCHAR NET_ROOT_TYPE
Definition: mrxfcb.h:36
LIST_ENTRY OverflowListEntry
Definition: rxcontx.h:150
unsigned char * PUCHAR
Definition: retypes.h:3
PMRX_V_NET_ROOT pVNetRoot
Definition: rxcontx.h:190
LONG NTSTATUS
Definition: precomp.h:26
LIST_ENTRY ListEntry
Definition: rxcontx.h:13
PMRX_NET_ROOT pNetRoot
Definition: rxcontx.h:189
struct _RX_CONTEXT::@2109::@2121 Create
PWCH CanonicalNameBuffer
Definition: rxcontx.h:186
struct _RX_CONTEXT::@2109::@2125 QuerySecurity
PIO_SECURITY_CONTEXT pSecurityContext
Definition: rxcontx.h:177
LIST_ENTRY ContextListEntry
Definition: rxcontx.h:104
BOOLEAN TreeConnectOpenDeferred
Definition: rxcontx.h:204
PMRX_FOBX pFobx
Definition: rxcontx.h:113
CSHORT NODE_BYTE_SIZE
Definition: nodetype.h:37
Definition: fcb.h:33
PSRV_CALL SrvCall
Definition: rxcontx.h:258
volatile PVOID LockManagerContext
Definition: rxcontx.h:119
struct _RX_TOPLEVELIRP_CONTEXT * PRX_TOPLEVELIRP_CONTEXT
LUID FsdUid
Definition: rxcontx.h:265
PIO_SECURITY_CONTEXT SecurityContext
Definition: rxcontx.h:93
NPAGED_LOOKASIDE_LIST RxContextLookasideList
Definition: rdbss.c:536
RX_SCAVENGER_ENTRY ScavengerEntry
Definition: rxcontx.h:121
PVOID StoredStatusAlignment
Definition: rxcontx.h:135
Definition: fcb.h:304
VOID RxResumeBlockedOperations_ALL(_Inout_ PRX_CONTEXT RxContext)
ULONG PipeReadMode
Definition: rxcontx.h:195
PIRP RxGetTopIrpIfRdbssIrp(VOID)
Definition: rdbss.c:6845
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
Definition: rtlfuncs.h:57
ULONG FlagsForLowIo
Definition: rxcontx.h:262
VOID RxCancelNotifyChangeDirectoryRequestsForFobx(PFOBX Fobx)
Definition: rdbss.c:963
PIRP CurrentIrp
Definition: rxcontx.h:110
ULONG SerialNumber
Definition: rxcontx.h:122
PNON_PAGED_FCB NonPagedFcb
Definition: rxcontx.h:115
uint32_t ULONG_PTR
Definition: typedefs.h:64
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:105
BOOLEAN FcbAcquired
Definition: rxcontx.h:200
PUNICODE_STRING LoudCompletionString
Definition: rxcontx.h:268
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
ULONG SdLength
Definition: rxcontx.h:193
Definition: scavengr.h:8
PETHREAD LastExecutionThread
Definition: rxcontx.h:118
struct _NT_CREATE_PARAMETERS NT_CREATE_PARAMETERS
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
BOOLEAN IndexSpecified
Definition: rxcontx.h:215
RX_CONTEXT_FLAGS
Definition: rxcontx.h:279
PRX_DISPATCH ResumeRoutine
Definition: rxcontx.h:148
NODE_BYTE_SIZE NodeByteSize
Definition: rxcontx.h:102
long LONG
Definition: pedump.c:60
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
USHORT Flags
Definition: rxcontx.h:197
struct _RX_TOPLEVELIRP_CONTEXT RX_TOPLEVELIRP_CONTEXT
PRX_CONTEXT RxContext
Definition: rxcontx.h:17
enum _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL
NTSTATUS StoredStatus
Definition: rxcontx.h:134
FS_INFORMATION_CLASS FsInformationClass
Definition: rxcontx.h:161
ULONG UserEaIndex
Definition: rxcontx.h:226
UNICODE_STRING UserName
Definition: rxcontx.h:206
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
struct _RX_CONTEXT::@2109::@2128 SetQuota
VOID NTAPI RxReinitializeContext(_Inout_ PRX_CONTEXT RxContext)
struct _RX_CONTEXT::@2109::@2123 NotifyChangeDirectory
#define FORCEINLINE
Definition: ntbasedef.h:221
NTSTATUS(NTAPI * PRX_DISPATCH)(_In_ PRX_CONTEXT RxContext)
Definition: rxcontx.h:79
PSID StartSid
Definition: rxcontx.h:244
ULONG Length
Definition: rxcontx.h:234
UCHAR MajorFunction
Definition: rxcontx.h:105
BOOLEAN ReplaceIfExists
Definition: rxcontx.h:170
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
VOID RxUnwindTopLevelIrp(_Inout_ PRX_TOPLEVELIRP_CONTEXT TopLevelContext)
enum _FSINFOCLASS FS_INFORMATION_CLASS
PMRX_CALLDOWN MRxCancelRoutine
Definition: rxcontx.h:147
ACCESS_MASK DesiredAccess
Definition: rxcontx.h:87
FAST_MUTEX
Definition: extypes.h:17
enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS
Definition: directory.c:44
struct _LIST_ENTRY * Flink
Definition: typedefs.h:120
struct _DFS_NAME_CONTEXT_ * PDFS_NAME_CONTEXT
Definition: rxcontx.h:83
PVOID RdbssDbgExtension
Definition: rxcontx.h:120
NODE_TYPE_CODE NodeTypeCode
Definition: rxcontx.h:101
Definition: fcb.h:9
KEVENT SyncEvent
Definition: rxcontx.h:151
VOID __RxItsTheSameContext(_In_ PRX_CONTEXT RxContext, _In_ ULONG CapturedRxContextSerialNumber, _In_ ULONG Line, _In_ PCSTR File)
Definition: rxce.c:9126
uint64_t ULONGLONG
Definition: typedefs.h:66
PNET_ROOT NetRoot
Definition: rxcontx.h:259
ULONGLONG ForceLonglongAligmentDummyField
Definition: rxcontx.h:143
struct _RX_CONTEXT::@2109::@2127 QueryQuota
PETHREAD OriginalThread
Definition: rxcontx.h:117
struct _RX_CONTEXT * PRX_CONTEXT
#define _Inout_
Definition: no_sal2.h:244
char * PSZ
Definition: windef.h:57
UNICODE_STRING Password
Definition: rxcontx.h:207
BOOLEAN AdvanceOnly
Definition: rxcontx.h:171
PIO_STACK_LOCATION CurrentIrpSp
Definition: rxcontx.h:111
ULONG_PTR InformationToReturn
Definition: rxcontx.h:137
Definition: ncftp.h:79
WCHAR * PWCH
Definition: ntbasedef.h:417
RX_CONTEXT_LOWIO_FLAGS
Definition: rxcontx.h:331
PMRX_SRV_CALL pSrvCall
Definition: rxcontx.h:188
unsigned char UCHAR
Definition: xmlstorage.h:181
PFILE_GET_QUOTA_INFORMATION SidList
Definition: rxcontx.h:245
struct _RX_CONTEXT::@2107::@2116 PrefixClaim
#define NTSTATUS
Definition: precomp.h:20
PVOID MRxContext[MRX_CONTEXT_FIELD_COUNT]
Definition: rxcontx.h:144
BOOLEAN RxTryToBecomeTheTopLevelIrp(_Inout_ PRX_TOPLEVELIRP_CONTEXT TopLevelContext, _In_ PIRP Irp, _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject, _In_ BOOLEAN ForceTopLevel)
PFAST_MUTEX BlockedOpsMutex
Definition: rxcontx.h:153
IO_STATUS_BLOCK IoStatusBlock
Definition: rxcontx.h:139
UCHAR MustSucceedDescriptorNumber
Definition: rxcontx.h:127
struct _RX_CONTEXT::@2109::@2124 QueryEa
Definition: typedefs.h:118
PRDBSS_DEVICE_OBJECT RxDeviceObject
Definition: rxcontx.h:116
UCHAR RdrFlags
Definition: rxcontx.h:199
#define MRX_CONTEXT_FIELD_COUNT
Definition: rxcontx.h:68
PVOID WriteOnlyOpenRetryContext
Definition: rxcontx.h:146
ULONG EaLength
Definition: rxcontx.h:192
ULONG Flags
Definition: rxcontx.h:124
PRX_PREFIX_ENTRY NetNamePrefixEntry
Definition: rxcontx.h:187
PDFS_NAME_CONTEXT DfsNameContext
Definition: rxcontx.h:96
ULONG FileIndex
Definition: rxcontx.h:212
#define _In_
Definition: no_sal2.h:204
FORCEINLINE PRX_CONTEXT RxRemoveFirstContextFromSerializationQueue(PLIST_ENTRY SerializationQueue)
Definition: rxcontx.h:427
struct _FileName FileName
Definition: fatprocs.h:893
* PFAST_MUTEX
Definition: extypes.h:17
LONG Length
Definition: rxcontx.h:167
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 LineNumber
Definition: acpixf.h:1216
UNICODE_STRING SuppliedPathName
Definition: rxcontx.h:175
BOOLEAN InitialQuery
Definition: rxcontx.h:216
unsigned short USHORT
Definition: pedump.c:61
BOOLEAN RestartScan
Definition: rxcontx.h:213
NTSTATUS(NTAPI * PMRX_CALLDOWN)(_Inout_ PRX_CONTEXT RxContext)
Definition: mrx.h:51
ULONG ReturnedCreateInformation
Definition: rxcontx.h:185
PVOID Buffer
Definition: rxcontx.h:164
volatile ULONG ReferenceCount
Definition: rxcontx.h:103
NET_ROOT_TYPE NetRootType
Definition: rxcontx.h:176
BOOLEAN RxIsThisTheTopLevelIrp(_In_ PIRP Irp)
PV_NET_ROOT VNetRoot
Definition: rxcontx.h:257
VOID NTAPI RxDereferenceAndDeleteRxContext_Real(_In_ PRX_CONTEXT RxContext)
LIST_ENTRY BlockedOperations
Definition: rxcontx.h:152
LOWIO_CONTEXT LowIoContext
Definition: rxcontx.h:263
struct tagContext Context
Definition: acpixf.h:1034
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
Definition: rxcontx.h:94
unsigned int ULONG
Definition: retypes.h:1
struct _RX_CONTEXT::@2109::@2126 SetSecurity
RX_CONTEXT_CREATE_FLAGS
Definition: rxcontx.h:322
VOID RxRemoveOperationFromBlockingQueue(_Inout_ PRX_CONTEXT RxContext)
const char * PCSTR
Definition: typedefs.h:52
USHORT NODE_TYPE_CODE
Definition: nodetype.h:22
BOOLEAN ScavengingAlreadyTried
Definition: rxcontx.h:202
Definition: File.h:15
VOID __RxInitializeTopLevelIrpContext(_Inout_ PRX_TOPLEVELIRP_CONTEXT TopLevelContext, _In_ PIRP Irp, _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject, _In_ ULONG Flags)
ULONG FobxSerialNumber
Definition: rxcontx.h:123
BOOLEAN PendingReturned
Definition: rxcontx.h:107
SECURITY_INFORMATION SecurityInformation
Definition: rxcontx.h:233
UNICODE_STRING TransportName
Definition: rxcontx.h:205
struct _RX_CONTEXT::@2109::@2122 QueryDirectory
PSECURITY_DESCRIPTOR SecurityDescriptor
Definition: rxcontx.h:239
Definition: prefix.h:44
ULONG ACCESS_MASK
Definition: nt_native.h:40
struct _NT_CREATE_PARAMETERS * PNT_CREATE_PARAMETERS
PRX_CONTEXT NTAPI RxCreateRxContext(_In_ PIRP Irp, _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject, _In_ ULONG InitialContextFlags)
ULONG PipeCompletionMode
Definition: rxcontx.h:196
FAST_MUTEX RxContextPerFileSerializationMutex
Definition: rxce.c:146
PDEVICE_OBJECT RealDevice
Definition: rxcontx.h:109
PMRX_SRV_OPEN pRelevantSrvOpen
Definition: rxcontx.h:114
BOOLEAN FcbResourceAcquired
Definition: rxcontx.h:125
PUCHAR UserEaList
Definition: rxcontx.h:224
PRDBSS_DEVICE_OBJECT RxDeviceObject
Definition: rxcontx.h:16
BOOLEAN ThisIsATreeConnectOpen
Definition: rxcontx.h:203
ULONG PipeType
Definition: rxcontx.h:194
BOOLEAN PostRequest
Definition: rxcontx.h:108