ReactOS 0.4.15-dev-8102-g108db8f
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
12typedef struct _RDBSS_EXPORTS
13{
17
19{
24
25typedef struct _RDBSS_DATA
26{
36#if (_WIN32_WINNT < 0x0600)
38#endif
42
43extern RDBSS_DATA RxData;
44
48 VOID);
49
50typedef 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
80typedef struct _RDBSS_DEVICE_OBJECT {
81 union
82 {
85 };
100 struct
101 {
118 };
132
134VOID
135NTAPI
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
unsigned char BOOLEAN
#define NULL
Definition: types.h:112
USHORT NODE_TYPE_CODE
Definition: nodetype.h:22
CSHORT NODE_BYTE_SIZE
Definition: nodetype.h:37
ULONG ERESOURCE
Definition: env_spec_w32.h:594
VOID NTAPI RxpUnregisterMinirdr(_In_ PRDBSS_DEVICE_OBJECT RxDeviceObject)
#define _In_
Definition: ms_sal.h:308
long LONG
Definition: pedump.c:60
RX_SPIN_LOCK RxStrucSupSpinLock
Definition: rxce.c:123
struct _RX_DISPATCHER_CONTEXT_ * PRX_DISPATCHER_CONTEXT
enum _RX_RDBSS_STATE_ RX_RDBSS_STATE
struct _RDBSS_STARTSTOP_CONTEXT_ RDBSS_STARTSTOP_CONTEXT
struct _RDBSS_DEVICE_OBJECT * PRDBSS_DEVICE_OBJECT
RDBSS_DATA RxData
Definition: rdbss.c:537
struct _RDBSS_STARTSTOP_CONTEXT_ * PRDBSS_STARTSTOP_CONTEXT
PEPROCESS NTAPI RxGetRDBSSProcess(VOID)
Definition: rxce.c:4497
enum _LOCK_HOLDING_STATE * PLOCK_HOLDING_STATE
_LOCK_HOLDING_STATE
Definition: rxstruc.h:19
@ LHS_LockNotHeld
Definition: rxstruc.h:20
@ LHS_SharedLockHeld
Definition: rxstruc.h:21
@ LHS_ExclusiveLockHeld
Definition: rxstruc.h:22
struct _RDBSS_EXPORTS RDBSS_EXPORTS
enum _RX_RDBSS_STATE_ * PRX_RDBSS_STATE
_RX_RDBSS_STATE_
Definition: rxstruc.h:51
@ RDBSS_STARTABLE
Definition: rxstruc.h:52
@ RDBSS_STARTED
Definition: rxstruc.h:53
@ RDBSS_STOP_IN_PROGRESS
Definition: rxstruc.h:54
enum _LOCK_HOLDING_STATE LOCK_HOLDING_STATE
struct _RDBSS_DEVICE_OBJECT RDBSS_DEVICE_OBJECT
struct _RX_DISPATCHER_CONTEXT_ RX_DISPATCHER_CONTEXT
struct _RDBSS_DATA RDBSS_DATA
FORCEINLINE VOID NTAPI RxUnregisterMinirdr(_In_ PRDBSS_DEVICE_OBJECT RxDeviceObject)
Definition: rxstruc.h:136
RDBSS_DATA * PRDBSS_DATA
Definition: rxstruc.h:41
struct _RDBSS_EXPORTS * PRDBSS_EXPORTS
#define RxMaximumWorkQueue
Definition: rxtypes.h:6
PKSPIN_LOCK PRX_SPIN_LOCK
Definition: rxtypes.h:9
KSPIN_LOCK RX_SPIN_LOCK
Definition: rxtypes.h:8
Definition: typedefs.h:120
LONG NumberOfMinirdrsRegistered
Definition: rxstruc.h:33
ERESOURCE Resource
Definition: rxstruc.h:39
PDRIVER_OBJECT DriverObject
Definition: rxstruc.h:29
PEPROCESS OurProcess
Definition: rxstruc.h:34
NODE_BYTE_SIZE NodeByteSize
Definition: rxstruc.h:28
NODE_TYPE_CODE NodeTypeCode
Definition: rxstruc.h:27
FAST_MUTEX MinirdrRegistrationMutex
Definition: rxstruc.h:31
CACHE_MANAGER_CALLBACKS CacheManagerCallbacks
Definition: rxstruc.h:35
volatile LONG NumberOfMinirdrsStarted
Definition: rxstruc.h:30
CACHE_MANAGER_CALLBACKS CacheManagerNoOpCallbacks
Definition: rxstruc.h:37
LIST_ENTRY RegisteredMiniRdrs
Definition: rxstruc.h:32
LONG OverflowQueueCount[RxMaximumWorkQueue]
Definition: rxstruc.h:120
volatile ULONG RandomReadOperations
Definition: rxstruc.h:109
ULONG NetworkProviderPriority
Definition: rxstruc.h:91
volatile ULONG WriteOperations
Definition: rxstruc.h:115
RDBSS_STARTSTOP_CONTEXT StartStopContext
Definition: rxstruc.h:125
PMINIRDR_DISPATCH Dispatch
Definition: rxstruc.h:89
LIST_ENTRY OverflowQueue[RxMaximumWorkQueue]
Definition: rxstruc.h:121
BOOLEAN RegisterMailSlotProvider
Definition: rxstruc.h:94
volatile ULONG ReadOperations
Definition: rxstruc.h:107
volatile ULONG RandomWriteOperations
Definition: rxstruc.h:117
RDBSS_SCAVENGER RdbssScavengerInDeviceObject
Definition: rxstruc.h:130
PRDBSS_SCAVENGER pRdbssScavenger
Definition: rxstruc.h:129
LARGE_INTEGER NonPagingWriteBytesRequested
Definition: rxstruc.h:111
LARGE_INTEGER FastWriteBytesRequested
Definition: rxstruc.h:113
volatile ULONG NumberOfActiveContexts
Definition: rxstruc.h:99
PRDBSS_EXPORTS RdbssExports
Definition: rxstruc.h:87
ULONG FastWriteOperations
Definition: rxstruc.h:116
RX_PREFIX_TABLE RxNetNameTableInDeviceObject
Definition: rxstruc.h:128
LARGE_INTEGER PagingWriteBytesRequested
Definition: rxstruc.h:110
LARGE_INTEGER CacheReadBytesRequested
Definition: rxstruc.h:104
RX_DISPATCHER_CONTEXT DispatcherContext
Definition: rxstruc.h:126
DEVICE_OBJECT DeviceObject
Definition: rxstruc.h:83
PDEVICE_OBJECT RDBSSDeviceObject
Definition: rxstruc.h:88
RX_SPIN_LOCK OverflowQueueSpinLock
Definition: rxstruc.h:122
volatile LONG PostedRequestCount[RxMaximumWorkQueue]
Definition: rxstruc.h:119
PRX_PREFIX_TABLE pRxNetNameTable
Definition: rxstruc.h:127
LARGE_INTEGER PagingReadBytesRequested
Definition: rxstruc.h:102
PKEVENT pAsynchronousRequestsCompletionEvent
Definition: rxstruc.h:124
LARGE_INTEGER NonPagingReadBytesRequested
Definition: rxstruc.h:103
volatile ULONG NumberOfActiveFcbs
Definition: rxstruc.h:98
ULONG RegistrationControls
Definition: rxstruc.h:86
BOOLEAN RegisterUncProvider
Definition: rxstruc.h:93
LARGE_INTEGER NetworkWriteBytesRequested
Definition: rxstruc.h:114
LARGE_INTEGER NetworkReadBytesRequested
Definition: rxstruc.h:106
LARGE_INTEGER CacheWriteBytesRequested
Definition: rxstruc.h:112
UNICODE_STRING DeviceName
Definition: rxstruc.h:90
LONG AsynchronousRequestsPending
Definition: rxstruc.h:123
LIST_ENTRY MiniRdrListLinks
Definition: rxstruc.h:97
BOOLEAN RegisteredAsFileSystem
Definition: rxstruc.h:95
LARGE_INTEGER FastReadBytesRequested
Definition: rxstruc.h:105
ULONG FastReadOperations
Definition: rxstruc.h:108
PRX_SPIN_LOCK pRxStrucSupSpinLock
Definition: rxstruc.h:14
PLONG pRxDebugTraceIndent
Definition: rxstruc.h:15
PRX_CONTEXT pStopContext
Definition: rxstruc.h:61
RX_RDBSS_STATE State
Definition: rxstruc.h:59
volatile PKEVENT pTearDownEvent
Definition: rxstruc.h:67
volatile LONG NumberOfWorkerThreads
Definition: rxstruc.h:66
#define NTAPI
Definition: typedefs.h:36
int32_t * PLONG
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
#define FORCEINLINE
Definition: wdftypes.h:67
FAST_MUTEX
Definition: extypes.h:17
#define ObDereferenceObject
Definition: obfuncs.h:203