Share via


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 の場合、V_NET_ROOTを最終処理するには、ThisVNetRoot が指すV_NET_ROOT構造体の NodeReferenceCount メンバーが 1 である必要があります。

戻り値

RxFinalizeVNetRoot は、成功した場合は TRUE を 返し、最終処理が行われなかった場合は FALSE を 返します。

注釈

RxFinalizeVNetRoot ルーチンは、通常、ネットワーク ミニ リダイレクター ドライバーによって直接呼び出されません。 RDBSS は、V_NET_ROOTの参照カウントが 1 にデクリメントされるときに、このルーチンを内部的に呼び出します。

RxFinalizeVNetRoot は、RxFinalizeConnection への Level パラメーターが TRUE に設定されている場合、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に属するすべての FCB を反復処理し、V_NET_ROOTに関連付けられているすべてのSRV_OPEN構造体を孤立させます。

RxFinalizeVNetRoot は、ネットワーク ミニ リダイレクターによって提供される MRxFinalizeVNetRoot ルーチンを呼び出して、V_NET_ROOT構造体のメモリが解放される前にV_NET_ROOTを終了します。

要件

要件
対象プラットフォーム デスクトップ
Header 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構造体