// fcb.h
BOOLEAN RxpDereferenceAndFinalizeNetFcb(
OUT PFCB ThisFcb,
[in] IN PRX_CONTEXT RxContext,
[in] IN BOOLEAN RecursiveFinalize,
[in] IN BOOLEAN ForceFinalize
);
View the official Windows Driver Kit DDI referenceNo description available.
RxpDereferenceAndFinalizeNetFcb decrements the reference count and finalizes an FCB structure.
ThisFcbA pointer to the FCB structure to be dereferenced and finalized.
RxContext [in]A pointer to the RX_CONTEXT structure associated with the Fcb parameter.
RecursiveFinalize [in]A parameter that indicates if this should be a recursive finalize operation.
ForceFinalize [in]A parameter that indicates if this routine should force the Fcb parameter to be finalized.
RxpDereferenceAndFinalizeNetFcb returns TRUE if the FCB was finalized.
The referencing and dereferencing of FCBs is different from those of the other data structures because of the embedded resource in the FCB. This implies that the caller requires information regarding the status of the FCB (whether it was finalized or not ).To finalize the FCB, two locks need to be held, the NET_ROOT name table lock as well as the FCB resource. RxpDereferenceAndFinalizeNetFcb acquires the additional lock if required to finalize the FCB.
On checked builds, RxpDereferenceAndFinalizeNetFcb causes the system to ASSERT if ForceFinalize is FALSE, if the node type for the structure is not an FCB, or if the FCB was acquired exclusive.