ReactOS  0.4.14-dev-317-g96040ec
buffring.h
Go to the documentation of this file.
1 #ifndef __BUFFRING_H__
2 #define __BUFFRING_H__
3 
4 #define RX_REQUEST_PREPARED_FOR_HANDLING 0x10000000
5 
7 {
10 #if (_WIN32_WINNT < 0x0600)
12 #endif
17 
18 typedef struct _RX_BUFFERING_MANAGER_
19 {
38 
39 #if (_WIN32_WINNT >= 0x0600)
40 #define RxAcquireBufferingManagerMutex(BufMan) ExAcquireFastMutex(&(BufMan)->Mutex)
41 #else
42 #define RxAcquireBufferingManagerMutex(BufMan) \
43  { \
44  if (!ExTryToAcquireFastMutex(&(BufMan)->Mutex)) \
45  { \
46  ExAcquireFastMutex(&(BufMan)->Mutex); \
47  } \
48  }
49 #endif
50 #define RxReleaseBufferingManagerMutex(BufMan) ExReleaseFastMutex(&(BufMan)->Mutex)
51 
52 VOID
54  PSRV_CALL SrvCall,
55  BOOLEAN UpdateHandlerState);
56 
57 VOID
58 NTAPI
60  _In_ PVOID SrvCall);
61 
62 VOID
64  _In_ PFCB Fcb);
65 
66 VOID
68  _In_ PSRV_OPEN SrvOpen);
69 
70 VOID
72  _Inout_ PSRV_OPEN SrvOpen);
73 
74 VOID
76  _Inout_ PSRV_OPEN SrvOpen);
77 
80  _In_ PSRV_CALL SrvCall);
81 
84  _In_ PSRV_CALL SrvCall);
85 
88  _In_ PFCB Fcb,
89  _In_ BOOLEAN SynchronizeWithLazyWriter);
90 
93  _In_ PFCB Fcb,
96  _In_ BOOLEAN UninitializeCacheMaps,
97  _In_ BOOLEAN FlushFile);
98 
99 #endif
RX_WORK_QUEUE_ITEM LastChanceHandlerWorkItem
Definition: buffring.h:34
FAST_MUTEX Mutex
Definition: buffring.h:35
LONG NumberOfUndispatchedRequests
Definition: buffring.h:27
VOID RxProcessFcbChangeBufferingStateRequest(_In_ PFCB Fcb)
Definition: cdstruc.h:908
RX_WORK_QUEUE_ITEM HandlerWorkItem
Definition: buffring.h:33
LONG NTSTATUS
Definition: precomp.h:26
struct _RX_BUFFERING_MANAGER_ * PRX_BUFFERING_MANAGER
volatile LONG NumberOfOutstandingOpens
Definition: buffring.h:28
volatile LONG CumulativeNumberOfBufferingChangeRequests
Definition: buffring.h:25
KSPIN_LOCK SpinLock
Definition: buffring.h:24
VOID RxPurgeChangeBufferingStateRequestsForSrvOpen(_In_ PSRV_OPEN SrvOpen)
NTSTATUS RxFlushFcbInSystemCache(_In_ PFCB Fcb, _In_ BOOLEAN SynchronizeWithLazyWriter)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
long LONG
Definition: pedump.c:60
unsigned char BOOLEAN
BOOLEAN HandlerInactive
Definition: buffring.h:21
LIST_ENTRY LastChanceHandlerList
Definition: buffring.h:31
LIST_ENTRY HandlerList
Definition: buffring.h:30
FAST_MUTEX
Definition: extypes.h:17
VOID NTAPI RxProcessChangeBufferingStateRequests(_In_ PVOID SrvCall)
Definition: rxce.c:6643
struct _CHANGE_BUFFERING_STATE_REQUEST_ * PCHANGE_BUFFERING_STATE_REQUEST
Definition: fcb.h:9
struct _CHANGE_BUFFERING_STATE_REQUEST_ CHANGE_BUFFERING_STATE_REQUEST
LIST_ENTRY DispatcherList
Definition: buffring.h:29
NTSTATUS RxPurgeFcbInSystemCache(_In_ PFCB Fcb, _In_ PLARGE_INTEGER FileOffset OPTIONAL, _In_ ULONG Length, _In_ BOOLEAN UninitializeCacheMaps, _In_ BOOLEAN FlushFile)
#define _Inout_
Definition: no_sal2.h:244
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
NTSTATUS RxTearDownBufferingManager(_In_ PSRV_CALL SrvCall)
BOOLEAN LastChanceHandlerActive
Definition: buffring.h:22
unsigned char UCHAR
Definition: xmlstorage.h:181
VOID RxInitiateSrvOpenKeyAssociation(_Inout_ PSRV_OPEN SrvOpen)
Definition: typedefs.h:117
Definition: fcb.h:260
BOOLEAN DispatcherActive
Definition: buffring.h:20
struct _RX_BUFFERING_MANAGER_ RX_BUFFERING_MANAGER
#define _In_
Definition: no_sal2.h:204
_In_ PFCB _In_ LONGLONG FileOffset
Definition: cdprocs.h:151
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
LONG NumberOfUnhandledRequests
Definition: buffring.h:26
LIST_ENTRY SrvOpenLists[1]
Definition: buffring.h:36
VOID RxCompleteSrvOpenKeyAssociation(_Inout_ PSRV_OPEN SrvOpen)
unsigned int ULONG
Definition: retypes.h:1
RX_WORK_QUEUE_ITEM DispatcherWorkItem
Definition: buffring.h:32
_In_ PFCB Fcb
Definition: cdprocs.h:151
NTSTATUS RxInitializeBufferingManager(_In_ PSRV_CALL SrvCall)
VOID RxpProcessChangeBufferingStateRequests(PSRV_CALL SrvCall, BOOLEAN UpdateHandlerState)
Definition: rxce.c:6417
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68