ReactOS 0.4.16-dev-401-g45b008d
fcbtable.h
Go to the documentation of this file.
1#ifndef _RXFCBTABLE_
2#define _RXFCBTABLE_
3
4typedef struct _RX_FCB_TABLE_ENTRY {
12
13#define RX_FCB_TABLE_NUMBER_OF_HASH_BUCKETS 32
14
15typedef struct _RX_FCB_TABLE
16{
19 volatile ULONG Version;
22 volatile LONG Lookups;
24 volatile LONG Compares;
29
30VOID
32 _Inout_ PRX_FCB_TABLE FcbTable,
33 _In_ BOOLEAN CaseInsensitiveMatch);
34
35VOID
37 _Inout_ PRX_FCB_TABLE FcbTable);
38
39PFCB
41 _In_ PRX_FCB_TABLE FcbTable,
43
46 _Inout_ PRX_FCB_TABLE FcbTable,
48
51 _Inout_ PRX_FCB_TABLE FcbTable,
53
54#define RxAcquireFcbTableLockShared(T, W) ExAcquireResourceSharedLite(&(T)->TableLock, W)
55#define RxAcquireFcbTableLockExclusive(T, W) ExAcquireResourceExclusiveLite(&(T)->TableLock, W)
56#define RxReleaseFcbTableLock(T) ExReleaseResourceLite(&(T)->TableLock)
57
58#define RxIsFcbTableLockExclusive(T) ExIsResourceAcquiredExclusiveLite(&(T)->TableLock)
59
60#define RxIsFcbTableLockAcquired(T) (ExIsResourceAcquiredSharedLite(&(T)->TableLock) || \
61 ExIsResourceAcquiredExclusiveLite(&(T)->TableLock))
62
63#ifdef __REACTOS__
64#define FCB_HASH_BUCKET(T, H) &(T)->HashBuckets[H % (T)->NumberOfBuckets]
65#endif
66
67#endif
unsigned char BOOLEAN
PRTL_UNICODE_STRING_BUFFER Path
LONG NTSTATUS
Definition: precomp.h:26
_In_ PFCB Fcb
Definition: cdprocs.h:159
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 RxInitializeFcbTable(_Inout_ PRX_FCB_TABLE FcbTable, _In_ BOOLEAN CaseInsensitiveMatch)
NTSTATUS RxFcbTableInsertFcb(_Inout_ PRX_FCB_TABLE FcbTable, _Inout_ PFCB Fcb)
#define RX_FCB_TABLE_NUMBER_OF_HASH_BUCKETS
Definition: fcbtable.h:13
struct _RX_FCB_TABLE * PRX_FCB_TABLE
VOID RxFinalizeFcbTable(_Inout_ PRX_FCB_TABLE FcbTable)
struct _RX_FCB_TABLE_ENTRY * PRX_FCB_TABLE_ENTRY
NTSTATUS RxFcbTableRemoveFcb(_Inout_ PRX_FCB_TABLE FcbTable, _Inout_ PFCB Fcb)
struct _RX_FCB_TABLE_ENTRY RX_FCB_TABLE_ENTRY
PFCB RxFcbTableLookupFcb(_In_ PRX_FCB_TABLE FcbTable, _In_ PUNICODE_STRING Path)
struct _RX_FCB_TABLE RX_FCB_TABLE
#define _Inout_
Definition: no_sal2.h:162
#define _In_
Definition: no_sal2.h:158
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
Definition: cdstruc.h:902
Definition: typedefs.h:120
Definition: fcbtable.h:4
ULONG HashValue
Definition: fcbtable.h:7
LONG Lookups
Definition: fcbtable.h:10
LIST_ENTRY HashLinks
Definition: fcbtable.h:9
NODE_TYPE_CODE NodeTypeCode
Definition: fcbtable.h:5
UNICODE_STRING Path
Definition: fcbtable.h:8
NODE_BYTE_SIZE NodeByteSize
Definition: fcbtable.h:6
volatile ULONG Version
Definition: fcbtable.h:19
volatile LONG FailedLookups
Definition: fcbtable.h:23
PRX_FCB_TABLE_ENTRY TableEntryForNull
Definition: fcbtable.h:26
LIST_ENTRY HashBuckets[RX_FCB_TABLE_NUMBER_OF_HASH_BUCKETS]
Definition: fcbtable.h:27
USHORT NumberOfBuckets
Definition: fcbtable.h:21
BOOLEAN CaseInsensitiveMatch
Definition: fcbtable.h:20
NODE_TYPE_CODE NodeTypeCode
Definition: fcbtable.h:17
volatile LONG Compares
Definition: fcbtable.h:24
volatile LONG Lookups
Definition: fcbtable.h:22
ERESOURCE TableLock
Definition: fcbtable.h:25
NODE_BYTE_SIZE NodeByteSize
Definition: fcbtable.h:18
uint32_t ULONG
Definition: typedefs.h:59