ReactOS  0.4.14-dev-384-g5b37caa
rxstruc.h
Go to the documentation of this file.
1 #ifndef _RDBSSSTRUC_
2 #define _RDBSSSTRUC_
3 
4 #include "prefix.h"
5 #include "lowio.h"
6 #include "scavengr.h"
7 #include "rxcontx.h"
8 #include "fcb.h"
9 
11 
12 typedef struct _RDBSS_EXPORTS
13 {
17 
18 typedef enum _LOCK_HOLDING_STATE
19 {
24 
25 typedef struct _RDBSS_DATA
26 {
36 #if (_WIN32_WINNT < 0x0600)
38 #endif
40 } RDBSS_DATA;
42 
43 extern RDBSS_DATA RxData;
44 
46 NTAPI
48  VOID);
49 
50 typedef enum _RX_RDBSS_STATE_
51 {
56 
58 {
63 
65 {
69 
70 #define RxSetRdbssState(RxDeviceObject, NewState) \
71 { \
72  KIRQL OldIrql; \
73  KeAcquireSpinLock(&RxStrucSupSpinLock, &OldIrql); \
74  RxDeviceObject->StartStopContext.State = (NewState); \
75  KeReleaseSpinLock(&RxStrucSupSpinLock, OldIrql); \
76 }
77 
78 #define RxGetRdbssState(RxDeviceObject) RxDeviceObject->StartStopContext.State
79 
80 typedef struct _RDBSS_DEVICE_OBJECT {
81  union
82  {
85  };
100  struct
101  {
118  };
132 
134 VOID
135 NTAPI
137  _In_ PRDBSS_DEVICE_OBJECT RxDeviceObject)
138 {
139  PDEVICE_OBJECT RDBSSDeviceObject;
140 
141  RDBSSDeviceObject = RxDeviceObject->RDBSSDeviceObject;
142 
143  RxpUnregisterMinirdr(RxDeviceObject);
144 
145  if (RDBSSDeviceObject != NULL)
146  {
147  ObDereferenceObject(RDBSSDeviceObject);
148  }
149 }
150 
151 #endif
volatile ULONG NumberOfActiveFcbs
Definition: rxstruc.h:98
NODE_TYPE_CODE NodeTypeCode
Definition: rxstruc.h:27
volatile LONG PostedRequestCount[RxMaximumWorkQueue]
Definition: rxstruc.h:119
RX_PREFIX_TABLE RxNetNameTableInDeviceObject
Definition: rxstruc.h:128
PRDBSS_EXPORTS RdbssExports
Definition: rxstruc.h:87
LARGE_INTEGER FastReadBytesRequested
Definition: rxstruc.h:105
ULONG RegistrationControls
Definition: rxstruc.h:86
ULONG FastReadOperations
Definition: rxstruc.h:108
RDBSS_DATA RxData
Definition: rdbss.c:537
LONG OverflowQueueCount[RxMaximumWorkQueue]
Definition: rxstruc.h:120
PMINIRDR_DISPATCH Dispatch
Definition: rxstruc.h:89
enum _RX_RDBSS_STATE_ * PRX_RDBSS_STATE
RDBSS_DATA * PRDBSS_DATA
Definition: rxstruc.h:41
PEPROCESS NTAPI RxGetRDBSSProcess(VOID)
Definition: rxce.c:4497
LARGE_INTEGER NetworkReadBytesRequested
Definition: rxstruc.h:106
#define RxMaximumWorkQueue
Definition: rxtypes.h:6
PDEVICE_OBJECT RDBSSDeviceObject
Definition: rxstruc.h:88
struct _RDBSS_STARTSTOP_CONTEXT_ RDBSS_STARTSTOP_CONTEXT
CACHE_MANAGER_CALLBACKS CacheManagerCallbacks
Definition: rxstruc.h:35
volatile LONG NumberOfWorkerThreads
Definition: rxstruc.h:66
CSHORT NODE_BYTE_SIZE
Definition: nodetype.h:37
PEPROCESS OurProcess
Definition: rxstruc.h:34
VOID NTAPI ObDereferenceObject(IN PVOID Object)
Definition: obref.c:375
LONG AsynchronousRequestsPending
Definition: rxstruc.h:123
BOOLEAN RegisterMailSlotProvider
Definition: rxstruc.h:94
struct _RX_DISPATCHER_CONTEXT_ * PRX_DISPATCHER_CONTEXT
RX_SPIN_LOCK OverflowQueueSpinLock
Definition: rxstruc.h:122
_RX_RDBSS_STATE_
Definition: rxstruc.h:50
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
long LONG
Definition: pedump.c:60
VOID NTAPI RxpUnregisterMinirdr(_In_ PRDBSS_DEVICE_OBJECT RxDeviceObject)
RX_SPIN_LOCK RxStrucSupSpinLock
Definition: rxce.c:123
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
RDBSS_SCAVENGER RdbssScavengerInDeviceObject
Definition: rxstruc.h:130
#define FORCEINLINE
Definition: ntbasedef.h:221
struct _RDBSS_EXPORTS RDBSS_EXPORTS
BOOLEAN RegisteredAsFileSystem
Definition: rxstruc.h:95
ULONG FastWriteOperations
Definition: rxstruc.h:116
struct _RDBSS_DATA RDBSS_DATA
LIST_ENTRY RegisteredMiniRdrs
Definition: rxstruc.h:32
FAST_MUTEX MinirdrRegistrationMutex
Definition: rxstruc.h:31
LIST_ENTRY MiniRdrListLinks
Definition: rxstruc.h:97
volatile ULONG RandomReadOperations
Definition: rxstruc.h:109
PKEVENT pAsynchronousRequestsCompletionEvent
Definition: rxstruc.h:124
FAST_MUTEX
Definition: extypes.h:17
FORCEINLINE VOID NTAPI RxUnregisterMinirdr(_In_ PRDBSS_DEVICE_OBJECT RxDeviceObject)
Definition: rxstruc.h:136
LARGE_INTEGER CacheWriteBytesRequested
Definition: rxstruc.h:112
PKSPIN_LOCK PRX_SPIN_LOCK
Definition: rxtypes.h:9
PLONG pRxDebugTraceIndent
Definition: rxstruc.h:15
LARGE_INTEGER PagingWriteBytesRequested
Definition: rxstruc.h:110
LARGE_INTEGER NonPagingWriteBytesRequested
Definition: rxstruc.h:111
struct _RDBSS_EXPORTS * PRDBSS_EXPORTS
volatile ULONG NumberOfActiveContexts
Definition: rxstruc.h:99
RX_DISPATCHER_CONTEXT DispatcherContext
Definition: rxstruc.h:126
LARGE_INTEGER NonPagingReadBytesRequested
Definition: rxstruc.h:103
PRX_PREFIX_TABLE pRxNetNameTable
Definition: rxstruc.h:127
LARGE_INTEGER CacheReadBytesRequested
Definition: rxstruc.h:104
enum _LOCK_HOLDING_STATE * PLOCK_HOLDING_STATE
RX_RDBSS_STATE State
Definition: rxstruc.h:59
volatile ULONG WriteOperations
Definition: rxstruc.h:115
LONG NumberOfMinirdrsRegistered
Definition: rxstruc.h:33
enum _LOCK_HOLDING_STATE LOCK_HOLDING_STATE
Definition: typedefs.h:117
PRDBSS_SCAVENGER pRdbssScavenger
Definition: rxstruc.h:129
UNICODE_STRING DeviceName
Definition: rxstruc.h:90
volatile ULONG ReadOperations
Definition: rxstruc.h:107
ERESOURCE Resource
Definition: rxstruc.h:39
#define _In_
Definition: no_sal2.h:204
_LOCK_HOLDING_STATE
Definition: rxstruc.h:18
BOOLEAN RegisterUncProvider
Definition: rxstruc.h:93
struct _RDBSS_DEVICE_OBJECT RDBSS_DEVICE_OBJECT
LARGE_INTEGER FastWriteBytesRequested
Definition: rxstruc.h:113
PRX_CONTEXT pStopContext
Definition: rxstruc.h:61
ULONG NetworkProviderPriority
Definition: rxstruc.h:91
RDBSS_STARTSTOP_CONTEXT StartStopContext
Definition: rxstruc.h:125
DEVICE_OBJECT DeviceObject
Definition: rxstruc.h:83
LARGE_INTEGER NetworkWriteBytesRequested
Definition: rxstruc.h:114
CACHE_MANAGER_CALLBACKS CacheManagerNoOpCallbacks
Definition: rxstruc.h:37
ULONG ERESOURCE
Definition: env_spec_w32.h:594
struct _RDBSS_DEVICE_OBJECT * PRDBSS_DEVICE_OBJECT
unsigned int ULONG
Definition: retypes.h:1
volatile LONG NumberOfMinirdrsStarted
Definition: rxstruc.h:30
struct _RX_DISPATCHER_CONTEXT_ RX_DISPATCHER_CONTEXT
USHORT NODE_TYPE_CODE
Definition: nodetype.h:22
NODE_BYTE_SIZE NodeByteSize
Definition: rxstruc.h:28
signed int * PLONG
Definition: retypes.h:5
PDRIVER_OBJECT DriverObject
Definition: rxstruc.h:29
enum _RX_RDBSS_STATE_ RX_RDBSS_STATE
struct _RDBSS_STARTSTOP_CONTEXT_ * PRDBSS_STARTSTOP_CONTEXT
PRX_SPIN_LOCK pRxStrucSupSpinLock
Definition: rxstruc.h:14
KSPIN_LOCK RX_SPIN_LOCK
Definition: rxtypes.h:8
volatile PKEVENT pTearDownEvent
Definition: rxstruc.h:67
LIST_ENTRY OverflowQueue[RxMaximumWorkQueue]
Definition: rxstruc.h:121
LARGE_INTEGER PagingReadBytesRequested
Definition: rxstruc.h:102
volatile ULONG RandomWriteOperations
Definition: rxstruc.h:117