RxFinalizeVNetRoot 函式 (fcb.h)

RxFinalizeVNetRoot 會完成指定的V_NET_ROOT結構。 呼叫端必須在與裝置對象相關聯的 netname 數據表上具有獨佔鎖定。

語法

BOOLEAN RxFinalizeVNetRoot(
  [out] OUT PV_NET_ROOT ThisVNetRoot,
  [in]  IN BOOLEAN      RecursiveFinalize,
  [in]  IN BOOLEAN      ForceFinalize
);

參數

[out] ThisVNetRoot

要完成之V_NET_ROOT結構的指標。

[in] RecursiveFinalize

值,指出是否應該以遞歸方式完成最終處理。 目前未使用的此參數。

[in] ForceFinalize

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

如果 ForceFinalizeFALSE則 ThisVNetRoot 所指向之V_NET_ROOT結構的 NodeReferenceCount 成員必須為 1,才能完成V_NET_ROOT。

傳回值

RxFinalizeVNetRoot 會在成功時傳回 TRUE ,如果未發生最終處理,則傳回 FALSE

備註

網路迷你重新導向器驅動程式通常不會直接呼叫 RxFinalizeVNetRoot 例程。 當V_NET_ROOT上的參考計數遞減為 1 時,RDBSS 會在內部呼叫此例程。

如果 Level 參數設定為 RxFinalizeConnection,則 RxFinalizeVNetRoot 也會由 RxFinalizeConnection 例程呼叫。 RxFinalizeConnection 通常是由網路迷你重新導向器驅動程式呼叫,以回應從使用者模式接收自定義 IOCTL 要求。 例如,使用者可能會從命令行執行 「NET USE x: /d」 來刪除共用。 此要求會透過網路迷你重新導向器所提供的網路提供者 DLL 對應至傳送至網路迷你重新導向器核心驅動程式的自定義 IOCTL 要求,這會呼叫 RxFinalizeConnection 例程來刪除連線和任何相關聯的V_NET_ROOT結構。

RxFinalizeVNetRoot 也會由 RxForceFinalizeAllVNetRoots 例程呼叫,以完成與NET_ROOT結構相關聯的每個V_NET_ROOT。

呼叫 RxFinalizeVNetRoot 之前,必須以獨佔模式取得與裝置對象相關聯的 netname 數據表鎖定。

如果V_NET_ROOT的 UpperFinalization 成員為 0, 則 RxFinalizeVNetRoot 會逐一查看與此V_NET_ROOT相關聯之NET_ROOT的所有 FDB,並孤立與V_NET_ROOT相關聯的所有SRV_OPEN結構。

RxFinalizeVNetRoot 會呼叫網路迷你重新導向器所提供的 MRxFinalizeVNetRoot 例程,以在釋放V_NET_ROOT結構的記憶體之前完成V_NET_ROOT。

規格需求

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

另請參閱

MRxFinalizeVNetRoot

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

V_NET_ROOT結構