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
值,指出不論參考計數為何,是否應該強制完成。
如果 ForceFinalize 為 FALSE,則 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 |