13#define RX_FCB_TABLE_NUMBER_OF_HASH_BUCKETS 32
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)
58#define RxIsFcbTableLockExclusive(T) ExIsResourceAcquiredExclusiveLite(&(T)->TableLock)
60#define RxIsFcbTableLockAcquired(T) (ExIsResourceAcquiredSharedLite(&(T)->TableLock) || \
61 ExIsResourceAcquiredExclusiveLite(&(T)->TableLock))
64#define FCB_HASH_BUCKET(T, H) &(T)->HashBuckets[H % (T)->NumberOfBuckets]
PRTL_UNICODE_STRING_BUFFER Path
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
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
NODE_TYPE_CODE NodeTypeCode
NODE_BYTE_SIZE NodeByteSize
volatile LONG FailedLookups
PRX_FCB_TABLE_ENTRY TableEntryForNull
LIST_ENTRY HashBuckets[RX_FCB_TABLE_NUMBER_OF_HASH_BUCKETS]
BOOLEAN CaseInsensitiveMatch
NODE_TYPE_CODE NodeTypeCode
NODE_BYTE_SIZE NodeByteSize