ReactOS 0.4.16-dev-290-g89a3b8f
fcb.h File Reference
#include "buffring.h"
Include dependency graph for fcb.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _SRV_CALL
 
struct  _NET_ROOT
 
struct  _V_NET_ROOT
 
struct  _NON_PAGED_FCB
 
struct  _FCB_LOCK
 
struct  _FCB_BUFFERED_LOCKS
 
struct  _FCB
 
struct  _FCB_INIT_PACKET
 
struct  _SRV_OPEN
 
struct  _FOBX
 

Macros

#define NETROOT_FLAG_FINALIZATION_IN_PROGRESS   0x00040000
 
#define NETROOT_FLAG_NAME_ALREADY_REMOVED   0x00080000
 
#define FCB_STATE_DELETE_ON_CLOSE   0x00000001
 
#define FCB_STATE_TRUNCATE_ON_CLOSE   0x00000002
 
#define FCB_STATE_PAGING_FILE   0x00000004
 
#define FCB_STATE_DISABLE_LOCAL_BUFFERING   0x00000010
 
#define FCB_STATE_TEMPORARY   0x00000020
 
#define FCB_STATE_BUFFERING_STATE_CHANGE_PENDING   0x00000040
 
#define FCB_STATE_ORPHANED   0x00000080
 
#define FCB_STATE_READAHEAD_DEFERRED   0x00000100
 
#define FCB_STATE_DELAY_CLOSE   0x00000800
 
#define FCB_STATE_FAKEFCB   0x00001000
 
#define FCB_STATE_FILE_IS_BUF_COMPRESSED   0x00004000
 
#define FCB_STATE_FILE_IS_DISK_COMPRESSED   0x00008000
 
#define FCB_STATE_FILE_IS_SHADOWED   0x00010000
 
#define FCB_STATE_BUFFERSTATE_CHANGING   0x00002000
 
#define FCB_STATE_SPECIAL_PATH   0x00020000
 
#define FCB_STATE_TIME_AND_SIZE_ALREADY_SET   0x00040000
 
#define FCB_STATE_FILETIMECACHEING_ENABLED   0x00080000
 
#define FCB_STATE_FILESIZECACHEING_ENABLED   0x00100000
 
#define FCB_STATE_LOCK_BUFFERING_ENABLED   0x00200000
 
#define FCB_STATE_COLLAPSING_ENABLED   0x00400000
 
#define FCB_STATE_OPENSHARING_ENABLED   0x00800000
 
#define FCB_STATE_READBUFFERING_ENABLED   0x01000000
 
#define FCB_STATE_READCACHING_ENABLED   0x02000000
 
#define FCB_STATE_WRITEBUFFERING_ENABLED   0x04000000
 
#define FCB_STATE_WRITECACHING_ENABLED   0x08000000
 
#define FCB_STATE_NAME_ALREADY_REMOVED   0x10000000
 
#define FCB_STATE_ADDEDBACKSLASH   0x20000000
 
#define FCB_STATE_FOBX_USED   0x40000000
 
#define FCB_STATE_SRVOPEN_USED   0x80000000
 
#define FCB_STATE_BUFFERING_STATE_MASK
 
#define SRVOPEN_FLAG_ENCLOSED_ALLOCATED   0x10000
 
#define SRVOPEN_FLAG_FOBX_USED   0x20000
 
#define SRVOPEN_FLAG_SHAREACCESS_UPDATED   0x40000
 
#define FOBX_FLAG_MATCH_ALL   0x10000
 
#define FOBX_FLAG_FREE_UNICODE   0x20000
 
#define FOBX_FLAG_USER_SET_LAST_WRITE   0x40000
 
#define FOBX_FLAG_USER_SET_LAST_ACCESS   0x80000
 
#define FOBX_FLAG_USER_SET_CREATION   0x100000
 
#define FOBX_FLAG_USER_SET_LAST_CHANGE   0x200000
 
#define FOBX_FLAG_DELETE_ON_CLOSE   0x800000
 
#define FOBX_FLAG_SRVOPEN_CLOSED   0x1000000
 
#define FOBX_FLAG_UNC_NAME   0x2000000
 
#define FOBX_FLAG_ENCLOSED_ALLOCATED   0x4000000
 
#define FOBX_FLAG_MARKED_AS_DORMANT   0x8000000
 
#define RDBSS_REF_TRACK_SRVCALL   0x00000001
 
#define RDBSS_REF_TRACK_NETROOT   0x00000002
 
#define RDBSS_REF_TRACK_VNETROOT   0x00000004
 
#define RDBSS_REF_TRACK_NETFOBX   0x00000008
 
#define RDBSS_REF_TRACK_NETFCB   0x00000010
 
#define RDBSS_REF_TRACK_SRVOPEN   0x00000020
 
#define RX_PRINT_REF_TRACKING   0x40000000
 
#define RX_LOG_REF_TRACKING   0x80000000
 
#define REF_TRACING_ON(TraceMask)   (TraceMask & RdbssReferenceTracingValue)
 
#define PRINT_REF_COUNT(TYPE, Count)
 
#define RxReferenceSrvCall(SrvCall)
 
#define RxDereferenceSrvCall(SrvCall, LockHoldingState)
 
#define RxReferenceNetRoot(NetRoot)
 
#define RxDereferenceNetRoot(NetRoot, LockHoldingState)
 
#define RxReferenceVNetRoot(VNetRoot)
 
#define RxDereferenceVNetRoot(VNetRoot, LockHoldingState)
 
#define RxReferenceNetFobx(Fobx)
 
#define RxDereferenceNetFobx(Fobx, LockHoldingState)
 
#define RxReferenceSrvOpen(SrvOpen)
 
#define RxDereferenceSrvOpen(SrvOpen, LockHoldingState)
 
#define RxReferenceNetFcb(Fcb)
 
#define RxDereferenceNetFcb(Fcb)
 
#define RxDereferenceAndFinalizeNetFcb(Fcb, RxContext, RecursiveFinalize, ForceFinalize)
 
#define RxWaitForStableSrvCall(S, R)   RxWaitForStableCondition(&(S)->Condition, &(S)->TransitionWaitList, (R), NULL)
 
#define RxTransitionSrvCall(S, C)   RxUpdateCondition((C), &(S)->Condition, &(S)->TransitionWaitList)
 
#define RxWaitForStableNetRoot(N, R)   RxWaitForStableCondition(&(N)->Condition, &(N)->TransitionWaitList, (R), NULL)
 
#define RxTransitionNetRoot(N, C)   RxUpdateCondition((C), &(N)->Condition, &(N)->TransitionWaitList)
 
#define RxWaitForStableVNetRoot(V, R)   RxWaitForStableCondition(&(V)->Condition, &(V)->TransitionWaitList, (R), NULL)
 
#define RxTransitionVNetRoot(V, C)   RxUpdateCondition((C), &(V)->Condition, &(V)->TransitionWaitList)
 
#define RxWaitForStableNetFcb(F, R)   RxWaitForStableCondition(&(F)->Condition, &(F)->NonPaged->TransitionWaitList, (R), NULL )
 
#define RxTransitionNetFcb(F, C)   RxUpdateCondition((C), &(F)->Condition, &(F)->NonPaged->TransitionWaitList)
 
#define RxFormInitPacket(IP, I1, I1a, I2, I3, I4a, I4b, I5, I6, I7)
 
#define ASSERT_CORRECT_FCB_STRUCTURE_DBG_ONLY(Fcb)
 
#define ASSERT_CORRECT_FCB_STRUCTURE(Fcb)
 
#define RxWaitForStableSrvOpen(S, R)   RxWaitForStableCondition(&(S)->Condition, &(S)->TransitionWaitList, (R), NULL)
 
#define RxTransitionSrvOpen(S, C)   RxUpdateCondition((C), &(S)->Condition, &(S)->TransitionWaitList)
 
#define GET_ALREADY_PREFIXED_NAME_FROM_CONTEXT(Rxcontext)   GET_ALREADY_PREFIXED_NAME((Rxcontext)->pRelevantSrvOpen, (Rxcontext)->pFcb)
 

Typedefs

typedef struct _FCB_INIT_PACKETPFCB_INIT_PACKET
 
typedef struct _SRV_CALL SRV_CALL
 
typedef struct _SRV_CALLPSRV_CALL
 
typedef struct _NET_ROOT NET_ROOT
 
typedef struct _NET_ROOTPNET_ROOT
 
typedef struct _V_NET_ROOT V_NET_ROOT
 
typedef struct _V_NET_ROOTPV_NET_ROOT
 
typedef struct _NON_PAGED_FCB NON_PAGED_FCB
 
typedef struct _NON_PAGED_FCBPNON_PAGED_FCB
 
typedef enum _RX_FCBTRACKER_CASES RX_FCBTRACKER_CASES
 
typedef struct _FCB_LOCK FCB_LOCK
 
typedef struct _FCB_LOCKPFCB_LOCK
 
typedef struct _FCB_BUFFERED_LOCKS FCB_BUFFERED_LOCKS
 
typedef struct _FCB_BUFFERED_LOCKSPFCB_BUFFERED_LOCKS
 
typedef struct _FCB FCB
 
typedef struct _FCBPFCB
 
typedef struct _FCB_INIT_PACKET FCB_INIT_PACKET
 
typedef struct _SRV_OPEN SRV_OPEN
 
typedef struct _SRV_OPENPSRV_OPEN
 
typedef struct _FOBX FOBX
 
typedef struct _FOBXPFOBX
 

Enumerations

enum  _RX_FCBTRACKER_CASES {
  RX_FCBTRACKER_CASE_NORMAL , RX_FCBTRACKER_CASE_NULLCONTEXT , RX_FCBTRACKER_CASE_CBS_CONTEXT , RX_FCBTRACKER_CASE_CBS_WAIT_CONTEXT ,
  RX_FCBTRACKER_CASE_MAXIMUM
}
 

Functions

VOID RxpTrackReference (_In_ ULONG TraceType, _In_ PCSTR FileName, _In_ ULONG Line, _In_ PVOID Instance)
 
BOOLEAN RxpTrackDereference (_In_ ULONG TraceType, _In_ PCSTR FileName, _In_ ULONG Line, _In_ PVOID Instance)
 
PSRV_CALL RxCreateSrvCall (_In_ PRX_CONTEXT RxContext, _In_ PUNICODE_STRING Name, _In_opt_ PUNICODE_STRING InnerNamePrefix, _In_ PRX_CONNECTION_ID RxConnectionId)
 
BOOLEAN RxFinalizeSrvCall (_Out_ PSRV_CALL ThisSrvCall, _In_ BOOLEAN RecursiveFinalize, _In_ BOOLEAN ForceFinalize)
 
PNET_ROOT RxCreateNetRoot (_In_ PSRV_CALL SrvCall, _In_ PUNICODE_STRING Name, _In_ ULONG NetRootFlags, _In_opt_ PRX_CONNECTION_ID RxConnectionId)
 
BOOLEAN RxFinalizeNetRoot (_Out_ PNET_ROOT ThisNetRoot, _In_ BOOLEAN RecursiveFinalize, _In_ BOOLEAN ForceFinalize)
 
NTSTATUS RxInitializeVNetRootParameters (_In_ PRX_CONTEXT RxContext, _Out_ LUID *LogonId, _Out_ PULONG SessionId, _Out_ PUNICODE_STRING *UserNamePtr, _Out_ PUNICODE_STRING *UserDomainNamePtr, _Out_ PUNICODE_STRING *PasswordPtr, _Out_ PULONG Flags)
 
VOID RxUninitializeVNetRootParameters (_In_ PUNICODE_STRING UserName, _In_ PUNICODE_STRING UserDomainName, _In_ PUNICODE_STRING Password, _Out_ PULONG Flags)
 
PV_NET_ROOT RxCreateVNetRoot (_In_ PRX_CONTEXT RxContext, _In_ PNET_ROOT NetRoot, _In_ PUNICODE_STRING CanonicalName, _In_ PUNICODE_STRING LocalNetRootName, _In_ PUNICODE_STRING FilePath, _In_ PRX_CONNECTION_ID RxConnectionId)
 
BOOLEAN RxFinalizeVNetRoot (_Out_ PV_NET_ROOT ThisVNetRoot, _In_ BOOLEAN RecursiveFinalize, _In_ BOOLEAN ForceFinalize)
 
VOID RxSetFileSizeWithLock (_Inout_ PFCB Fcb, _In_ PLONGLONG FileSize)
 
VOID RxGetFileSizeWithLock (_In_ PFCB Fcb, _Out_ PLONGLONG FileSize)
 
PFCB RxCreateNetFcb (_In_ PRX_CONTEXT RxContext, _In_ PV_NET_ROOT VNetRoot, _In_ PUNICODE_STRING Name)
 
VOID NTAPI RxFinishFcbInitialization (_In_ OUT PMRX_FCB Fcb, _In_ RX_FILE_TYPE FileType, _In_opt_ PFCB_INIT_PACKET InitPacket)
 
VOID RxRemoveNameNetFcb (_Out_ PFCB ThisFcb)
 
LONG RxpReferenceNetFcb (_In_ PFCB Fcb)
 
LONG RxpDereferenceNetFcb (_In_ PFCB Fcb)
 
BOOLEAN RxpDereferenceAndFinalizeNetFcb (_Out_ PFCB ThisFcb, _In_ PRX_CONTEXT RxContext, _In_ BOOLEAN RecursiveFinalize, _In_ BOOLEAN ForceFinalize)
 
PSRV_OPEN RxCreateSrvOpen (_In_ PV_NET_ROOT VNetRoot, _In_ OUT PFCB Fcb)
 
BOOLEAN RxFinalizeSrvOpen (_Out_ PSRV_OPEN ThisSrvOpen, _In_ BOOLEAN RecursiveFinalize, _In_ BOOLEAN ForceFinalize)
 
FORCEINLINE PUNICODE_STRING GET_ALREADY_PREFIXED_NAME (PMRX_SRV_OPEN SrvOpen, PMRX_FCB Fcb)
 
PMRX_FOBX NTAPI RxCreateNetFobx (_Out_ PRX_CONTEXT RxContext, _In_ PMRX_SRV_OPEN MrxSrvOpen)
 
BOOLEAN RxFinalizeNetFobx (_Out_ PFOBX ThisFobx, _In_ BOOLEAN RecursiveFinalize, _In_ BOOLEAN ForceFinalize)
 

Variables

ULONG RdbssReferenceTracingValue
 

Macro Definition Documentation

◆ ASSERT_CORRECT_FCB_STRUCTURE

#define ASSERT_CORRECT_FCB_STRUCTURE (   Fcb)
Value:
{ \
ASSERT(NodeTypeIsFcb(Fcb)); \
ASSERT(Fcb->NonPaged != NULL ); \
ASSERT_CORRECT_FCB_STRUCTURE_DBG_ONLY(Fcb); \
}
_In_ PFCB Fcb
Definition: cdprocs.h:159
#define NULL
Definition: types.h:112
#define NodeType(P)
Definition: nodetype.h:51
#define NodeTypeIsFcb(FCB)
Definition: nodetype.h:68
#define RDBSS_NTC_NONPAGED_FCB
Definition: nodetype.h:63
PNON_PAGED_FCB NonPaged
Definition: fatstruc.h:811

Definition at line 562 of file fcb.h.

◆ ASSERT_CORRECT_FCB_STRUCTURE_DBG_ONLY

#define ASSERT_CORRECT_FCB_STRUCTURE_DBG_ONLY (   Fcb)

Definition at line 559 of file fcb.h.

◆ FCB_STATE_ADDEDBACKSLASH

#define FCB_STATE_ADDEDBACKSLASH   0x20000000

Definition at line 228 of file fcb.h.

◆ FCB_STATE_BUFFERING_STATE_CHANGE_PENDING

#define FCB_STATE_BUFFERING_STATE_CHANGE_PENDING   0x00000040

Definition at line 207 of file fcb.h.

◆ FCB_STATE_BUFFERING_STATE_MASK

#define FCB_STATE_BUFFERING_STATE_MASK
Value:
#define FCB_STATE_WRITECACHING_ENABLED
Definition: fcb.h:226
#define FCB_STATE_OPENSHARING_ENABLED
Definition: fcb.h:222
#define FCB_STATE_WRITEBUFFERING_ENABLED
Definition: fcb.h:225
#define FCB_STATE_FILESIZECACHEING_ENABLED
Definition: fcb.h:219
#define FCB_STATE_READCACHING_ENABLED
Definition: fcb.h:224
#define FCB_STATE_FILETIMECACHEING_ENABLED
Definition: fcb.h:218
#define FCB_STATE_READBUFFERING_ENABLED
Definition: fcb.h:223
#define FCB_STATE_COLLAPSING_ENABLED
Definition: fcb.h:221
#define FCB_STATE_LOCK_BUFFERING_ENABLED
Definition: fcb.h:220

Definition at line 232 of file fcb.h.

◆ FCB_STATE_BUFFERSTATE_CHANGING

#define FCB_STATE_BUFFERSTATE_CHANGING   0x00002000

Definition at line 215 of file fcb.h.

◆ FCB_STATE_COLLAPSING_ENABLED

#define FCB_STATE_COLLAPSING_ENABLED   0x00400000

Definition at line 221 of file fcb.h.

◆ FCB_STATE_DELAY_CLOSE

#define FCB_STATE_DELAY_CLOSE   0x00000800

Definition at line 210 of file fcb.h.

◆ FCB_STATE_DELETE_ON_CLOSE

#define FCB_STATE_DELETE_ON_CLOSE   0x00000001

Definition at line 202 of file fcb.h.

◆ FCB_STATE_DISABLE_LOCAL_BUFFERING

#define FCB_STATE_DISABLE_LOCAL_BUFFERING   0x00000010

Definition at line 205 of file fcb.h.

◆ FCB_STATE_FAKEFCB

#define FCB_STATE_FAKEFCB   0x00001000

Definition at line 211 of file fcb.h.

◆ FCB_STATE_FILE_IS_BUF_COMPRESSED

#define FCB_STATE_FILE_IS_BUF_COMPRESSED   0x00004000

Definition at line 212 of file fcb.h.

◆ FCB_STATE_FILE_IS_DISK_COMPRESSED

#define FCB_STATE_FILE_IS_DISK_COMPRESSED   0x00008000

Definition at line 213 of file fcb.h.

◆ FCB_STATE_FILE_IS_SHADOWED

#define FCB_STATE_FILE_IS_SHADOWED   0x00010000

Definition at line 214 of file fcb.h.

◆ FCB_STATE_FILESIZECACHEING_ENABLED

#define FCB_STATE_FILESIZECACHEING_ENABLED   0x00100000

Definition at line 219 of file fcb.h.

◆ FCB_STATE_FILETIMECACHEING_ENABLED

#define FCB_STATE_FILETIMECACHEING_ENABLED   0x00080000

Definition at line 218 of file fcb.h.

◆ FCB_STATE_FOBX_USED

#define FCB_STATE_FOBX_USED   0x40000000

Definition at line 229 of file fcb.h.

◆ FCB_STATE_LOCK_BUFFERING_ENABLED

#define FCB_STATE_LOCK_BUFFERING_ENABLED   0x00200000

Definition at line 220 of file fcb.h.

◆ FCB_STATE_NAME_ALREADY_REMOVED

#define FCB_STATE_NAME_ALREADY_REMOVED   0x10000000

Definition at line 227 of file fcb.h.

◆ FCB_STATE_OPENSHARING_ENABLED

#define FCB_STATE_OPENSHARING_ENABLED   0x00800000

Definition at line 222 of file fcb.h.

◆ FCB_STATE_ORPHANED

#define FCB_STATE_ORPHANED   0x00000080

Definition at line 208 of file fcb.h.

◆ FCB_STATE_PAGING_FILE

#define FCB_STATE_PAGING_FILE   0x00000004

Definition at line 204 of file fcb.h.

◆ FCB_STATE_READAHEAD_DEFERRED

#define FCB_STATE_READAHEAD_DEFERRED   0x00000100

Definition at line 209 of file fcb.h.

◆ FCB_STATE_READBUFFERING_ENABLED

#define FCB_STATE_READBUFFERING_ENABLED   0x01000000

Definition at line 223 of file fcb.h.

◆ FCB_STATE_READCACHING_ENABLED

#define FCB_STATE_READCACHING_ENABLED   0x02000000

Definition at line 224 of file fcb.h.

◆ FCB_STATE_SPECIAL_PATH

#define FCB_STATE_SPECIAL_PATH   0x00020000

Definition at line 216 of file fcb.h.

◆ FCB_STATE_SRVOPEN_USED

#define FCB_STATE_SRVOPEN_USED   0x80000000

Definition at line 230 of file fcb.h.

◆ FCB_STATE_TEMPORARY

#define FCB_STATE_TEMPORARY   0x00000020

Definition at line 206 of file fcb.h.

◆ FCB_STATE_TIME_AND_SIZE_ALREADY_SET

#define FCB_STATE_TIME_AND_SIZE_ALREADY_SET   0x00040000

Definition at line 217 of file fcb.h.

◆ FCB_STATE_TRUNCATE_ON_CLOSE

#define FCB_STATE_TRUNCATE_ON_CLOSE   0x00000002

Definition at line 203 of file fcb.h.

◆ FCB_STATE_WRITEBUFFERING_ENABLED

#define FCB_STATE_WRITEBUFFERING_ENABLED   0x04000000

Definition at line 225 of file fcb.h.

◆ FCB_STATE_WRITECACHING_ENABLED

#define FCB_STATE_WRITECACHING_ENABLED   0x08000000

Definition at line 226 of file fcb.h.

◆ FOBX_FLAG_DELETE_ON_CLOSE

#define FOBX_FLAG_DELETE_ON_CLOSE   0x800000

Definition at line 295 of file fcb.h.

◆ FOBX_FLAG_ENCLOSED_ALLOCATED

#define FOBX_FLAG_ENCLOSED_ALLOCATED   0x4000000

Definition at line 298 of file fcb.h.

◆ FOBX_FLAG_FREE_UNICODE

#define FOBX_FLAG_FREE_UNICODE   0x20000

Definition at line 290 of file fcb.h.

◆ FOBX_FLAG_MARKED_AS_DORMANT

#define FOBX_FLAG_MARKED_AS_DORMANT   0x8000000

Definition at line 299 of file fcb.h.

◆ FOBX_FLAG_MATCH_ALL

#define FOBX_FLAG_MATCH_ALL   0x10000

Definition at line 289 of file fcb.h.

◆ FOBX_FLAG_SRVOPEN_CLOSED

#define FOBX_FLAG_SRVOPEN_CLOSED   0x1000000

Definition at line 296 of file fcb.h.

◆ FOBX_FLAG_UNC_NAME

#define FOBX_FLAG_UNC_NAME   0x2000000

Definition at line 297 of file fcb.h.

◆ FOBX_FLAG_USER_SET_CREATION

#define FOBX_FLAG_USER_SET_CREATION   0x100000

Definition at line 293 of file fcb.h.

◆ FOBX_FLAG_USER_SET_LAST_ACCESS

#define FOBX_FLAG_USER_SET_LAST_ACCESS   0x80000

Definition at line 292 of file fcb.h.

◆ FOBX_FLAG_USER_SET_LAST_CHANGE

#define FOBX_FLAG_USER_SET_LAST_CHANGE   0x200000

Definition at line 294 of file fcb.h.

◆ FOBX_FLAG_USER_SET_LAST_WRITE

#define FOBX_FLAG_USER_SET_LAST_WRITE   0x40000

Definition at line 291 of file fcb.h.

◆ GET_ALREADY_PREFIXED_NAME_FROM_CONTEXT

#define GET_ALREADY_PREFIXED_NAME_FROM_CONTEXT (   Rxcontext)    GET_ALREADY_PREFIXED_NAME((Rxcontext)->pRelevantSrvOpen, (Rxcontext)->pFcb)

Definition at line 631 of file fcb.h.

◆ NETROOT_FLAG_FINALIZATION_IN_PROGRESS

#define NETROOT_FLAG_FINALIZATION_IN_PROGRESS   0x00040000

Definition at line 30 of file fcb.h.

◆ NETROOT_FLAG_NAME_ALREADY_REMOVED

#define NETROOT_FLAG_NAME_ALREADY_REMOVED   0x00080000

Definition at line 31 of file fcb.h.

◆ PRINT_REF_COUNT

#define PRINT_REF_COUNT (   TYPE,
  Count 
)
Value:
if (REF_TRACING_ON( RDBSS_REF_TRACK_ ## TYPE) && \
{ \
DbgPrint("%ld\n", Count); \
}
TYPE
Definition: eventcreate.c:652
ULONG RdbssReferenceTracingValue
Definition: rxce.c:130
#define RX_PRINT_REF_TRACKING
Definition: fcb.h:355
#define REF_TRACING_ON(TraceMask)
Definition: fcb.h:374
int Count
Definition: noreturn.cpp:7

Definition at line 376 of file fcb.h.

◆ RDBSS_REF_TRACK_NETFCB

#define RDBSS_REF_TRACK_NETFCB   0x00000010

Definition at line 353 of file fcb.h.

◆ RDBSS_REF_TRACK_NETFOBX

#define RDBSS_REF_TRACK_NETFOBX   0x00000008

Definition at line 352 of file fcb.h.

◆ RDBSS_REF_TRACK_NETROOT

#define RDBSS_REF_TRACK_NETROOT   0x00000002

Definition at line 350 of file fcb.h.

◆ RDBSS_REF_TRACK_SRVCALL

#define RDBSS_REF_TRACK_SRVCALL   0x00000001

Definition at line 349 of file fcb.h.

◆ RDBSS_REF_TRACK_SRVOPEN

#define RDBSS_REF_TRACK_SRVOPEN   0x00000020

Definition at line 354 of file fcb.h.

◆ RDBSS_REF_TRACK_VNETROOT

#define RDBSS_REF_TRACK_VNETROOT   0x00000004

Definition at line 351 of file fcb.h.

◆ REF_TRACING_ON

#define REF_TRACING_ON (   TraceMask)    (TraceMask & RdbssReferenceTracingValue)

Definition at line 374 of file fcb.h.

◆ RX_LOG_REF_TRACKING

#define RX_LOG_REF_TRACKING   0x80000000

Definition at line 356 of file fcb.h.

◆ RX_PRINT_REF_TRACKING

#define RX_PRINT_REF_TRACKING   0x40000000

Definition at line 355 of file fcb.h.

◆ RxDereferenceAndFinalizeNetFcb

#define RxDereferenceAndFinalizeNetFcb (   Fcb,
  RxContext,
  RecursiveFinalize,
  ForceFinalize 
)
Value:
RxpDereferenceAndFinalizeNetFcb(Fcb, RxContext, RecursiveFinalize, ForceFinalize))
#define RDBSS_REF_TRACK_NETFCB
Definition: fcb.h:353
BOOLEAN RxpTrackDereference(_In_ ULONG TraceType, _In_ PCSTR FileName, _In_ ULONG Line, _In_ PVOID Instance)
Definition: rxce.c:6729

Definition at line 439 of file fcb.h.

◆ RxDereferenceNetFcb

#define RxDereferenceNetFcb (   Fcb)
Value:
RxpDereferenceNetFcb(Fcb))
long LONG
Definition: pedump.c:60

Definition at line 435 of file fcb.h.

◆ RxDereferenceNetFobx

#define RxDereferenceNetFobx (   Fobx,
  LockHoldingState 
)
Value:
RxpTrackDereference(RDBSS_REF_TRACK_NETFOBX, __FILE__, __LINE__, Fobx); \
RxDereference(Fobx, LockHoldingState)
#define RDBSS_REF_TRACK_NETFOBX
Definition: fcb.h:352

Definition at line 419 of file fcb.h.

◆ RxDereferenceNetRoot

#define RxDereferenceNetRoot (   NetRoot,
  LockHoldingState 
)
Value:
RxpTrackDereference(RDBSS_REF_TRACK_NETROOT, __FILE__, __LINE__, NetRoot); \
RxDereference(NetRoot, LockHoldingState)
#define RDBSS_REF_TRACK_NETROOT
Definition: fcb.h:350

Definition at line 403 of file fcb.h.

◆ RxDereferenceSrvCall

#define RxDereferenceSrvCall (   SrvCall,
  LockHoldingState 
)
Value:
RxpTrackDereference(RDBSS_REF_TRACK_SRVCALL, __FILE__, __LINE__, SrvCall); \
RxDereference(SrvCall, LockHoldingState)
#define RDBSS_REF_TRACK_SRVCALL
Definition: fcb.h:349

Definition at line 395 of file fcb.h.

◆ RxDereferenceSrvOpen

#define RxDereferenceSrvOpen (   SrvOpen,
  LockHoldingState 
)
Value:
RxpTrackDereference(RDBSS_REF_TRACK_SRVOPEN, __FILE__, __LINE__, SrvOpen); \
RxDereference(SrvOpen, LockHoldingState)
#define RDBSS_REF_TRACK_SRVOPEN
Definition: fcb.h:354

Definition at line 427 of file fcb.h.

◆ RxDereferenceVNetRoot

#define RxDereferenceVNetRoot (   VNetRoot,
  LockHoldingState 
)
Value:
RxpTrackDereference(RDBSS_REF_TRACK_VNETROOT, __FILE__, __LINE__, VNetRoot); \
RxDereference(VNetRoot, LockHoldingState)
#define RDBSS_REF_TRACK_VNETROOT
Definition: fcb.h:351

Definition at line 411 of file fcb.h.

◆ RxFormInitPacket

#define RxFormInitPacket (   IP,
  I1,
  I1a,
  I2,
  I3,
  I4a,
  I4b,
  I5,
  I6,
  I7 
)
Value:
( \
IP.pAttributes = I1, IP.pNumLinks = I1a, \
IP.pCreationTime = I2, IP.pLastAccessTime = I3, \
IP.pLastWriteTime = I4a, IP.pLastChangeTime = I4b, \
IP.pAllocationSize = I5, IP.pFileSize = I6, \
IP.pValidDataLength = I7, &IP)
#define IP
Definition: ftp_var.h:24

Definition at line 545 of file fcb.h.

◆ RxReferenceNetFcb

#define RxReferenceNetFcb (   Fcb)
Value:
(RxpTrackReference(RDBSS_REF_TRACK_NETFCB, __FILE__, __LINE__, Fcb), \
RxpReferenceNetFcb(Fcb))
VOID RxpTrackReference(_In_ ULONG TraceType, _In_ PCSTR FileName, _In_ ULONG Line, _In_ PVOID Instance)
Definition: rxce.c:6796

Definition at line 431 of file fcb.h.

◆ RxReferenceNetFobx

#define RxReferenceNetFobx (   Fobx)
Value:
RxpTrackReference(RDBSS_REF_TRACK_NETFOBX, __FILE__, __LINE__, Fobx); \
RxReference(Fobx)

Definition at line 415 of file fcb.h.

◆ RxReferenceNetRoot

#define RxReferenceNetRoot (   NetRoot)
Value:
RxpTrackReference(RDBSS_REF_TRACK_NETROOT, __FILE__, __LINE__, NetRoot); \
RxReference(NetRoot)

Definition at line 399 of file fcb.h.

◆ RxReferenceSrvCall

#define RxReferenceSrvCall (   SrvCall)
Value:
RxpTrackReference(RDBSS_REF_TRACK_SRVCALL, __FILE__, __LINE__, SrvCall); \
RxReference(SrvCall)

Definition at line 391 of file fcb.h.

◆ RxReferenceSrvOpen

#define RxReferenceSrvOpen (   SrvOpen)
Value:
RxpTrackReference(RDBSS_REF_TRACK_SRVOPEN, __FILE__, __LINE__, SrvOpen); \
RxReference(SrvOpen)

Definition at line 423 of file fcb.h.

◆ RxReferenceVNetRoot

#define RxReferenceVNetRoot (   VNetRoot)
Value:
RxpTrackReference(RDBSS_REF_TRACK_VNETROOT, __FILE__, __LINE__, VNetRoot); \
RxReference(VNetRoot)

Definition at line 407 of file fcb.h.

◆ RxTransitionNetFcb

#define RxTransitionNetFcb (   F,
  C 
)    RxUpdateCondition((C), &(F)->Condition, &(F)->NonPaged->TransitionWaitList)

Definition at line 543 of file fcb.h.

◆ RxTransitionNetRoot

#define RxTransitionNetRoot (   N,
  C 
)    RxUpdateCondition((C), &(N)->Condition, &(N)->TransitionWaitList)

Definition at line 474 of file fcb.h.

◆ RxTransitionSrvCall

#define RxTransitionSrvCall (   S,
  C 
)    RxUpdateCondition((C), &(S)->Condition, &(S)->TransitionWaitList)

Definition at line 451 of file fcb.h.

◆ RxTransitionSrvOpen

#define RxTransitionSrvOpen (   S,
  C 
)    RxUpdateCondition((C), &(S)->Condition, &(S)->TransitionWaitList)

Definition at line 578 of file fcb.h.

◆ RxTransitionVNetRoot

#define RxTransitionVNetRoot (   V,
  C 
)    RxUpdateCondition((C), &(V)->Condition, &(V)->TransitionWaitList)

Definition at line 515 of file fcb.h.

◆ RxWaitForStableNetFcb

#define RxWaitForStableNetFcb (   F,
  R 
)    RxWaitForStableCondition(&(F)->Condition, &(F)->NonPaged->TransitionWaitList, (R), NULL )

Definition at line 542 of file fcb.h.

◆ RxWaitForStableNetRoot

#define RxWaitForStableNetRoot (   N,
  R 
)    RxWaitForStableCondition(&(N)->Condition, &(N)->TransitionWaitList, (R), NULL)

Definition at line 473 of file fcb.h.

◆ RxWaitForStableSrvCall

#define RxWaitForStableSrvCall (   S,
  R 
)    RxWaitForStableCondition(&(S)->Condition, &(S)->TransitionWaitList, (R), NULL)

Definition at line 450 of file fcb.h.

◆ RxWaitForStableSrvOpen

#define RxWaitForStableSrvOpen (   S,
  R 
)    RxWaitForStableCondition(&(S)->Condition, &(S)->TransitionWaitList, (R), NULL)

Definition at line 577 of file fcb.h.

◆ RxWaitForStableVNetRoot

#define RxWaitForStableVNetRoot (   V,
  R 
)    RxWaitForStableCondition(&(V)->Condition, &(V)->TransitionWaitList, (R), NULL)

Definition at line 514 of file fcb.h.

◆ SRVOPEN_FLAG_ENCLOSED_ALLOCATED

#define SRVOPEN_FLAG_ENCLOSED_ALLOCATED   0x10000

Definition at line 256 of file fcb.h.

◆ SRVOPEN_FLAG_FOBX_USED

#define SRVOPEN_FLAG_FOBX_USED   0x20000

Definition at line 257 of file fcb.h.

◆ SRVOPEN_FLAG_SHAREACCESS_UPDATED

#define SRVOPEN_FLAG_SHAREACCESS_UPDATED   0x40000

Definition at line 258 of file fcb.h.

Typedef Documentation

◆ FCB

typedef struct _FCB FCB

◆ FCB_BUFFERED_LOCKS

◆ FCB_INIT_PACKET

◆ FCB_LOCK

◆ FOBX

typedef struct _FOBX FOBX

◆ NET_ROOT

◆ NON_PAGED_FCB

◆ PFCB

typedef struct _FCB * PFCB

◆ PFCB_BUFFERED_LOCKS

◆ PFCB_INIT_PACKET

Definition at line 7 of file fcb.h.

◆ PFCB_LOCK

◆ PFOBX

typedef struct _FOBX * PFOBX

◆ PNET_ROOT

◆ PNON_PAGED_FCB

◆ PSRV_CALL

◆ PSRV_OPEN

◆ PV_NET_ROOT

◆ RX_FCBTRACKER_CASES

◆ SRV_CALL

◆ SRV_OPEN

◆ V_NET_ROOT

Enumeration Type Documentation

◆ _RX_FCBTRACKER_CASES

Enumerator
RX_FCBTRACKER_CASE_NORMAL 
RX_FCBTRACKER_CASE_NULLCONTEXT 
RX_FCBTRACKER_CASE_CBS_CONTEXT 
RX_FCBTRACKER_CASE_CBS_WAIT_CONTEXT 
RX_FCBTRACKER_CASE_MAXIMUM 

Definition at line 103 of file fcb.h.

104{
@ RX_FCBTRACKER_CASE_NULLCONTEXT
Definition: fcb.h:106
@ RX_FCBTRACKER_CASE_NORMAL
Definition: fcb.h:105
@ RX_FCBTRACKER_CASE_CBS_WAIT_CONTEXT
Definition: fcb.h:108
@ RX_FCBTRACKER_CASE_CBS_CONTEXT
Definition: fcb.h:107
@ RX_FCBTRACKER_CASE_MAXIMUM
Definition: fcb.h:109
enum _RX_FCBTRACKER_CASES RX_FCBTRACKER_CASES

Function Documentation

◆ GET_ALREADY_PREFIXED_NAME()

FORCEINLINE PUNICODE_STRING GET_ALREADY_PREFIXED_NAME ( PMRX_SRV_OPEN  SrvOpen,
PMRX_FCB  Fcb 
)

Definition at line 612 of file fcb.h.

615{
616 PFCB ThisFcb = (PFCB)Fcb;
617
618#if DBG
619 if (SrvOpen != NULL)
620 {
621 ASSERT(NodeType(SrvOpen) == RDBSS_NTC_SRVOPEN);
622 ASSERT(ThisFcb != NULL);
624 ASSERT(SrvOpen->pFcb == Fcb);
626 }
627#endif
628
629 return &ThisFcb->PrivateAlreadyPrefixedName;
630}
struct _FCB * PFCB
#define ASSERT(a)
Definition: mode.c:44
#define RDBSS_NTC_SRVOPEN
Definition: nodetype.h:52
Definition: cdstruc.h:902
UNICODE_STRING PrivateAlreadyPrefixedName
Definition: fcb.h:145
PMRX_FCB pFcb
Definition: mrxfcb.h:161
PUNICODE_STRING pAlreadyPrefixedName
Definition: mrxfcb.h:169

◆ RxCreateNetFcb()

PFCB RxCreateNetFcb ( _In_ PRX_CONTEXT  RxContext,
_In_ PV_NET_ROOT  VNetRoot,
_In_ PUNICODE_STRING  Name 
)

◆ RxCreateNetFobx()

PMRX_FOBX NTAPI RxCreateNetFobx ( _Out_ PRX_CONTEXT  RxContext,
_In_ PMRX_SRV_OPEN  MrxSrvOpen 
)

◆ RxCreateNetRoot()

PNET_ROOT RxCreateNetRoot ( _In_ PSRV_CALL  SrvCall,
_In_ PUNICODE_STRING  Name,
_In_ ULONG  NetRootFlags,
_In_opt_ PRX_CONNECTION_ID  RxConnectionId 
)

◆ RxCreateSrvCall()

PSRV_CALL RxCreateSrvCall ( _In_ PRX_CONTEXT  RxContext,
_In_ PUNICODE_STRING  Name,
_In_opt_ PUNICODE_STRING  InnerNamePrefix,
_In_ PRX_CONNECTION_ID  RxConnectionId 
)

◆ RxCreateSrvOpen()

PSRV_OPEN RxCreateSrvOpen ( _In_ PV_NET_ROOT  VNetRoot,
_In_ OUT PFCB  Fcb 
)

◆ RxCreateVNetRoot()

PV_NET_ROOT RxCreateVNetRoot ( _In_ PRX_CONTEXT  RxContext,
_In_ PNET_ROOT  NetRoot,
_In_ PUNICODE_STRING  CanonicalName,
_In_ PUNICODE_STRING  LocalNetRootName,
_In_ PUNICODE_STRING  FilePath,
_In_ PRX_CONNECTION_ID  RxConnectionId 
)

◆ RxFinalizeNetFobx()

BOOLEAN RxFinalizeNetFobx ( _Out_ PFOBX  ThisFobx,
_In_ BOOLEAN  RecursiveFinalize,
_In_ BOOLEAN  ForceFinalize 
)

Definition at line 2964 of file rxce.c.

2968{
2969 PFCB Fcb;
2970 PSRV_OPEN SrvOpen;
2971
2972 PAGED_CODE();
2973
2974 ASSERT(NodeType(ThisFobx) == RDBSS_NTC_FOBX);
2975
2976 /* Only finalize if forced or if there's no ref left */
2977 if (ThisFobx->NodeReferenceCount != 0 &&
2978 !ForceFinalize)
2979 {
2980 return FALSE;
2981 }
2982
2983 DPRINT("Finalize Fobx: %p (with %d ref), forced: %d\n", ThisFobx, ThisFobx->NodeReferenceCount, ForceFinalize);
2984
2985 SrvOpen = ThisFobx->SrvOpen;
2986 Fcb = SrvOpen->Fcb;
2987 /* If it wasn't finalized yet, do it */
2988 if (!ThisFobx->UpperFinalizationDone)
2989 {
2992
2993 /* Remove it from the SRV_OPEN */
2994 RemoveEntryList(&ThisFobx->FobxQLinks);
2995
2996 /* If we were used to browse a directory, free the query buffer */
2997 if (BooleanFlagOn(ThisFobx->Flags, FOBX_FLAG_FREE_UNICODE))
2998 {
2999 RxFreePoolWithTag(ThisFobx->UnicodeQueryTemplate.Buffer, RX_DIRCTL_POOLTAG);
3000 }
3001
3002 /* Notify the mini-rdr */
3004 {
3006 }
3007
3008 /* If the SRV_OPEN wasn't closed yet, do it */
3009 if (!BooleanFlagOn(ThisFobx->Flags, FOBX_FLAG_SRVOPEN_CLOSED))
3010 {
3012
3014 DPRINT("Closing SRV_OPEN %p for %p: %x\n", SrvOpen, ThisFobx, Status);
3015 }
3016
3017 /* Finalization done */
3018 ThisFobx->UpperFinalizationDone = TRUE;
3019 }
3020
3021 /* If we're still referenced, don't go any further! */
3022 if (ThisFobx->NodeReferenceCount != 0)
3023 {
3024 return FALSE;
3025 }
3026
3027 /* At that point, everything should be closed */
3028 ASSERT(IsListEmpty(&ThisFobx->ClosePendingList));
3029
3030 /* Was the FOBX allocated with another object?
3031 * If so, mark the buffer free in said object
3032 */
3033 if (ThisFobx == Fcb->InternalFobx)
3034 {
3036 }
3037 else if (ThisFobx == SrvOpen->InternalFobx)
3038 {
3039 ClearFlag(SrvOpen->Flags, SRVOPEN_FLAG_FOBX_USED);
3040 }
3041
3042 ThisFobx->pSrvOpen = NULL;
3043
3044 /* A FOBX less */
3045 InterlockedDecrement((volatile long *)&SrvOpen->pVNetRoot->NumberOfFobxs);
3046
3048
3049 /* If it wasn't allocated with another object, free the FOBX */
3050 if (!BooleanFlagOn(ThisFobx->Flags, FOBX_FLAG_ENCLOSED_ALLOCATED))
3051 {
3052 RxFreeFcbObject(ThisFobx);
3053 }
3054
3055 return TRUE;
3056}
#define PAGED_CODE()
#define InterlockedDecrement
Definition: armddk.h:52
LONG NTSTATUS
Definition: precomp.h:26
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define RemoveEntryList(Entry)
Definition: env_spec_w32.h:986
#define IsListEmpty(ListHead)
Definition: env_spec_w32.h:954
#define ClearFlag(_F, _SF)
Definition: ext2fs.h:191
#define BooleanFlagOn(F, SF)
Definition: ext2fs.h:183
#define RxDereferenceSrvOpen(SrvOpen, LockHoldingState)
Definition: fcb.h:427
#define SRVOPEN_FLAG_FOBX_USED
Definition: fcb.h:257
#define FOBX_FLAG_ENCLOSED_ALLOCATED
Definition: fcb.h:298
#define FCB_STATE_FOBX_USED
Definition: fcb.h:229
#define FOBX_FLAG_FREE_UNICODE
Definition: fcb.h:290
#define FOBX_FLAG_SRVOPEN_CLOSED
Definition: fcb.h:296
Status
Definition: gdiplustypes.h:25
VOID RxFreeFcbObject(PVOID Object)
Definition: rxce.c:4274
#define RX_DIRCTL_POOLTAG
Definition: rxpooltg.h:20
#define RxIsFcbAcquiredExclusive(Fcb)
Definition: rxprocs.h:229
NTSTATUS RxCloseAssociatedSrvOpen(_In_ PFOBX Fobx, _In_opt_ PRX_CONTEXT RxContext)
@ LHS_ExclusiveLockHeld
Definition: rxstruc.h:22
#define RDBSS_NTC_OPENTARGETDIR_FCB
Definition: nodetype.h:44
#define RDBSS_NTC_FOBX
Definition: nodetype.h:57
#define DPRINT
Definition: sndvol32.h:73
PMINIRDR_DISPATCH MRxDispatch
Definition: fcb.h:150
PFOBX InternalFobx
Definition: fcb.h:153
ULONG FcbState
Definition: cdstruc.h:971
PMRX_DEALLOCATE_FOR_FOBX MRxDeallocateForFobx
Definition: mrx.h:360
Definition: fcb.h:261
PFCB Fcb
Definition: fcb.h:268
PFOBX InternalFobx
Definition: fcb.h:280

Referenced by RxDereference(), RxFinalizeSrvOpen(), and RxScavengeRelatedFobxs().

◆ RxFinalizeNetRoot()

BOOLEAN RxFinalizeNetRoot ( _Out_ PNET_ROOT  ThisNetRoot,
_In_ BOOLEAN  RecursiveFinalize,
_In_ BOOLEAN  ForceFinalize 
)

◆ RxFinalizeSrvCall()

BOOLEAN RxFinalizeSrvCall ( _Out_ PSRV_CALL  ThisSrvCall,
_In_ BOOLEAN  RecursiveFinalize,
_In_ BOOLEAN  ForceFinalize 
)

◆ RxFinalizeSrvOpen()

BOOLEAN RxFinalizeSrvOpen ( _Out_ PSRV_OPEN  ThisSrvOpen,
_In_ BOOLEAN  RecursiveFinalize,
_In_ BOOLEAN  ForceFinalize 
)

◆ RxFinalizeVNetRoot()

BOOLEAN RxFinalizeVNetRoot ( _Out_ PV_NET_ROOT  ThisVNetRoot,
_In_ BOOLEAN  RecursiveFinalize,
_In_ BOOLEAN  ForceFinalize 
)

◆ RxFinishFcbInitialization()

VOID NTAPI RxFinishFcbInitialization ( _In_ OUT PMRX_FCB  Fcb,
_In_ RX_FILE_TYPE  FileType,
_In_opt_ PFCB_INIT_PACKET  InitPacket 
)

◆ RxGetFileSizeWithLock()

VOID RxGetFileSizeWithLock ( _In_ PFCB  Fcb,
_Out_ PLONGLONG  FileSize 
)

◆ RxInitializeVNetRootParameters()

NTSTATUS RxInitializeVNetRootParameters ( _In_ PRX_CONTEXT  RxContext,
_Out_ LUID LogonId,
_Out_ PULONG  SessionId,
_Out_ PUNICODE_STRING UserNamePtr,
_Out_ PUNICODE_STRING UserDomainNamePtr,
_Out_ PUNICODE_STRING PasswordPtr,
_Out_ PULONG  Flags 
)

◆ RxpDereferenceAndFinalizeNetFcb()

BOOLEAN RxpDereferenceAndFinalizeNetFcb ( _Out_ PFCB  ThisFcb,
_In_ PRX_CONTEXT  RxContext,
_In_ BOOLEAN  RecursiveFinalize,
_In_ BOOLEAN  ForceFinalize 
)

◆ RxpDereferenceNetFcb()

LONG RxpDereferenceNetFcb ( _In_ PFCB  Fcb)

◆ RxpReferenceNetFcb()

LONG RxpReferenceNetFcb ( _In_ PFCB  Fcb)

◆ RxpTrackDereference()

BOOLEAN RxpTrackDereference ( _In_ ULONG  TraceType,
_In_ PCSTR  FileName,
_In_ ULONG  Line,
_In_ PVOID  Instance 
)

Definition at line 6729 of file rxce.c.

6734{
6735 PCSTR InstanceType;
6736 ULONG ReferenceCount;
6737
6738 PAGED_CODE();
6739
6741 {
6742 return TRUE;
6743 }
6744
6745 switch (TraceType)
6746 {
6748 InstanceType = "SrvCall";
6749 ReferenceCount = ((PSRV_CALL)Instance)->NodeReferenceCount;
6750 break;
6751
6753 InstanceType = "NetRoot";
6754 ReferenceCount = ((PNET_ROOT)Instance)->NodeReferenceCount;
6755 break;
6756
6758 InstanceType = "VNetRoot";
6759 ReferenceCount = ((PV_NET_ROOT)Instance)->NodeReferenceCount;
6760 break;
6761
6763 InstanceType = "NetFobx";
6764 ReferenceCount = ((PFOBX)Instance)->NodeReferenceCount;
6765 break;
6766
6768 InstanceType = "NetFcb";
6769 ReferenceCount = ((PFCB)Instance)->NodeReferenceCount;
6770 break;
6771
6773 InstanceType = "SrvOpen";
6774 ReferenceCount = ((PSRV_OPEN)Instance)->NodeReferenceCount;
6775 break;
6776
6777 default:
6778 DPRINT1("Invalid node type!\n");
6779 return TRUE;
6780 }
6781
6783 {
6785 }
6786
6788 {
6789 DbgPrint("(%s:%d) %p (%s) dereferenced from %d\n", FileName, Line, Instance, InstanceType, ReferenceCount);
6790 }
6791
6792 return TRUE;
6793}
#define DPRINT1
Definition: precomp.h:8
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
FCB * PFCB
Definition: cdstruc.h:1040
struct _SRV_CALL * PSRV_CALL
struct _FOBX * PFOBX
struct _V_NET_ROOT * PV_NET_ROOT
struct _SRV_OPEN * PSRV_OPEN
struct _NET_ROOT * PNET_ROOT
#define RX_LOG_REF_TRACKING
Definition: fcb.h:356
#define DbgPrint
Definition: hal.h:12
ULONG RdbssReferenceTracingValue
Definition: rxce.c:130
Definition: ncftp.h:79
const char * PCSTR
Definition: typedefs.h:52
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
Definition: wdfwmi.h:481

◆ RxpTrackReference()

VOID RxpTrackReference ( _In_ ULONG  TraceType,
_In_ PCSTR  FileName,
_In_ ULONG  Line,
_In_ PVOID  Instance 
)

Definition at line 6796 of file rxce.c.

6801{
6802 PCSTR InstanceType;
6803 ULONG ReferenceCount;
6804
6806 {
6807 return;
6808 }
6809
6810 switch (TraceType)
6811 {
6813 InstanceType = "SrvCall";
6814 ReferenceCount = ((PSRV_CALL)Instance)->NodeReferenceCount;
6815 break;
6816
6818 InstanceType = "NetRoot";
6819 ReferenceCount = ((PNET_ROOT)Instance)->NodeReferenceCount;
6820 break;
6821
6823 InstanceType = "VNetRoot";
6824 ReferenceCount = ((PV_NET_ROOT)Instance)->NodeReferenceCount;
6825 break;
6826
6828 InstanceType = "NetFobx";
6829 ReferenceCount = ((PFOBX)Instance)->NodeReferenceCount;
6830 break;
6831
6833 InstanceType = "NetFcb";
6834 ReferenceCount = ((PFCB)Instance)->NodeReferenceCount;
6835 break;
6836
6838 InstanceType = "SrvOpen";
6839 ReferenceCount = ((PSRV_OPEN)Instance)->NodeReferenceCount;
6840 break;
6841
6842 default:
6843 DPRINT1("Invalid node type!\n");
6844 return;
6845 }
6846
6848 {
6850 }
6851
6853 {
6854 DbgPrint("(%s:%d) %p (%s) referenced from %d\n", FileName, Line, Instance, InstanceType, ReferenceCount);
6855 }
6856}

◆ RxRemoveNameNetFcb()

VOID RxRemoveNameNetFcb ( _Out_ PFCB  ThisFcb)

◆ RxSetFileSizeWithLock()

VOID RxSetFileSizeWithLock ( _Inout_ PFCB  Fcb,
_In_ PLONGLONG  FileSize 
)

Referenced by RxCommonWrite().

◆ RxUninitializeVNetRootParameters()

VOID RxUninitializeVNetRootParameters ( _In_ PUNICODE_STRING  UserName,
_In_ PUNICODE_STRING  UserDomainName,
_In_ PUNICODE_STRING  Password,
_Out_ PULONG  Flags 
)

Variable Documentation

◆ RdbssReferenceTracingValue

ULONG RdbssReferenceTracingValue
extern

Definition at line 130 of file rxce.c.

Referenced by RxPrefixTableLookupName(), RxpTrackDereference(), and RxpTrackReference().