RxFinalizeSrvCall function (fcb.h)
RxFinalizeSrvCall finalizes the given SRV_CALL structure. The caller must have an exclusive lock on the netname table associated with the device object.
Syntax
BOOLEAN RxFinalizeSrvCall(
[out] OUT PSRV_CALL ThisSrvCall,
[in] IN BOOLEAN ForceFinalize
);
Parameters
[out] ThisSrvCall
A pointer to the SRV_CALL structure to finalize.
[in] ForceFinalize
The value indicating whether the finalization should be forced, regardless of the reference count.
If ForceFinalize is FALSE, then the NodeReferenceCount member of the SRV_CALL structure pointed to by ThisSrvCall must be 1 for the SRV_CALL to be finalized.
Return value
RxFinalizeSrvCall returns TRUE on success or FALSE if the finalization did not occur:
Remarks
The RxFinalizeSrvCall routine is not normally called by network mini-redirector drivers directly. RDBSS calls this routine internally when the reference count on the SRV_CALL is decremented to 1. RDBSS also calls RxFinalizeSrvCall when the network mini-redirector driver is stopped or unloaded.
Before calling RxFinalizeSrvCall, a lock on the netname table associated with the device object must be acquired in exclusive mode.
If the current executing process ID is the same as the RDBSS process ID, then a delayed worker thread will be dispatched to destroy the SRV_CALL structure. This worker thread will later call the MRxFinalizeSrvCall routine provided by the network mini-redirector to finalize the SRV_CALL. Otherwise, the MRxFinalizeSrvCall routine will be called directly to finalize the SRV_CALL.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | fcb.h (include Mrxfcb.h, Fcb.h) |
IRQL | <= APC_LEVEL |