RxFinalizeSrvOpen 函式 (fcb.h)

RxFinalizeSrvOpen 會完成指定的SRV_OPEN結構。 呼叫端必須在與SRV_OPEN相關聯的FCB上具有獨佔鎖定,以及與FCB相關聯之NET_ROOT數據表鎖定的共用或獨佔鎖定。

語法

BOOLEAN RxFinalizeSrvOpen(
  [out] OUT PSRV_OPEN ThisSrvOpen,
  [in]  IN BOOLEAN    RecursiveFinalize,
  [in]  IN BOOLEAN    ForceFinalize
);

參數

[out] ThisSrvOpen

要完成之SRV_OPEN結構的指標。

[in] RecursiveFinalize

值,指出是否應該以遞歸方式完成最終處理。

[in] ForceFinalize

值,指出是否應該強制完成,而不論參考計數為何。

如果 ForceFinalizeFALSE,則 ThisSrvOpen 所指向之SRV_OPEN結構的 NodeReferenceCount 成員必須是 0,才能完成SRV_OPEN。

傳回值

RxFinalizeSrvOpen 會在成功時傳回 TRUE ,如果最終設定未發生 ,則傳回 FALSE

備註

網路迷你重新導向器驅動程式通常不會直接呼叫 RxFinalizeSrvOpen 例程。 當 SRV_OPEN參考計數遞減為 1 時,RDBSS 會在內部呼叫此例程。 當呼叫 RxFinalizeNetFcb 例程時,RDBSS 也會呼叫 RxFinalizeSrvOpen,並將 RecursiveFinalize 設定為 TRUE。 當收到 I/O 要求封包以供IRP_MJ_CLOSE時,RDBSS 會呼叫 RxFinalizeNetFcb 。 RDBSS 通常會收到此 IRP,以回應要求檔案關閉作業的使用者模式應用程式。 另一個核心驅動程式也可以發出這類 IRP。

呼叫 RxFinalizeSrvOpen 之前,呼叫端必須在與SRV_OPEN相關聯的 FCB 上取得獨佔鎖定,並在與 FCB 相關聯之NET_ROOT的數據表鎖定上取得共用或獨佔鎖定。

如果 RecursiveFinalize 參數為 TRUE則 RxFinalizeSrvOpen 會呼叫 RxFinalizeNetFobx 並將 RecursiveFinalize 參數設定為 TRUEForceFinalize 參數,以完成與此SRV_OPEN相關聯的任何 FOBX 結構。

如果相關聯 FCB 的 FcbState 成員沒有設定FCB_STATE_ORPHANED旗標, 則 RxFinalizeSrvCall 會呼叫網路迷你重新導向器所提供的 MRxForceClosed 例程,以完成SRV_CALL。 如果SRV_CALL結構原本未配置為建立FCB的一部分,則也會釋放SRV_CALL結構的記憶體。

規格需求

需求
目標平台 桌面
標頭 fcb.h (包括 Mrxfcb.h、Fcb.h)
IRQL <= APC_LEVEL

另請參閱

MRxForceClosed

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

SRV_OPEN結構