Connection and File Control Block Management Routines

The connection and file control block management routines are used by RDBSS to manage structures used to represent connections and file control blocks.

RDBSS provides the following routines for connection and file control block management that can be used by network mini-redirector drivers:

Routine Description

RxCreateNetFcb

This routine allocates, initializes, and inserts a new FCB structure into the in-memory data structures for a NET_ROOT structure on which this FCB is being opened. The structure allocated has space for a SRV_OPEN and an FOBX structure. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxCreateNetFobx

This routine allocates, initializes, and inserts a new file object extension (FOBX) structure. Network mini-redirectors should call this routine to create an FOBX at the end of a successful create operation.

RxCreateNetRoot

This routine builds a node that represents a NET_ROOT structure and inserts the name into the net name table on the associated device object. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxCreateSrvCall

This routine builds a node that represents a server call context and inserts the name into the net name table maintained by RDBSS. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxCreateSrvOpen

This routine allocates, initializes, and inserts a new SRV_OPEN structure into the in-memory data structures used by RDBSS. If a new structure must be allocated, it has space for an FOBX structure. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxCreateVNetRoot

This routine builds a node that represents a V_NET_ROOT structure and inserts the name into the net name table. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxDereference

This routine decrements the reference count on an instance of several of the reference-counted data structures used by RDBSS.

RxFinalizeConnection

This routine deletes a connection to a share. Any files open on the connection are closed depending on the level of force specified. The network mini-redirector might choose to keep the transport connection open for performance reasons, unless some option is specified to force a close of the connection.

RxFinalizeNetFcb

This routine finalizes the given FCB structure. The caller must have an exclusive lock on the NET_ROOT structure associated with this FCB. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxFinalizeNetFobx

This routine finalizes the given FOBX structure. The caller must have an exclusive lock on the FCB associated with this FOBX. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxFinalizeNetRoot

This routine finalizes the given NET_ROOT structure. The caller should have exclusive lock on the NetName table of the device object associated with this NET_ROOT structure (through the SRV_CALL structure). This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxFinalizeSrvCall

This routine finalizes the given SRV_CALL structure. The caller should have exclusive access to the lock on the NetName table of the device object associated with this SRV_CALL structure. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxFinalizeSrvOpen

This routine finalizes the given SRV_OPEN structure. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxFinalizeVNetRoot

This routine finalizes the given V_NET_ROOT structure. The caller must have exclusive access to the lock on the NetName table of the device object associated with this V_NET_ROOT structure. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxFinishFcbInitialization

This routine is used to finish initializing an FCB after the successful completion of a create operation by the network mini-redirector.

RxForceFinalizeAllVNetRoots

This routine force finalizes all of the V_NET_ROOT structures associated with a given NET_ROOT structure. The caller must have exclusive access to the lock on the NetName table of the device object associated with this V_NET_ROOT structure. This routine is used internally by RDBSS and should not be used by network mini-redirectors.

RxGetFileSizeWithLock

This routine gets the file size in the FCB header, using a lock to ensure that the 64-bit value is read consistently.

RxInferFileType

This routine tries to infer the file type (directory or non-directory) from a field in the RX_CONTEXT structure.

RxLockEnumerator

This routine is called from a network mini-redirector to enumerate the file locks on an FCB.

RxpDereferenceAndFinalizeNetFcb

This routine decrements the reference count and finalizes an FCB.

This routine is only available on Windows Server 2003 Service Pack 1 (SP1) and later.

RxpDereferenceNetFcb

This routine decrements the reference count on an FCB.

RxpReferenceNetFcb

This routine increments the reference count on an FCB.

RxReference

This routine increments the reference count on an instance of several of the reference-counted data structures used by RDBSS.

RxSetSrvCallDomainName

This routine sets the domain name associated with any given server (SRV_CALL structure).

Note that a number of macros are also defined that provide wrappers around the RxReference and RxDeference routines for debugging. For more information about these macros, see Diagnostics and Debugging.