Share via


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 の場合、SRV_OPENを終了するには、ThisSrvOpen によって指SRV_OPEN構造体の NodeReferenceCount メンバーが 0 である必要があります。

戻り値

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

注釈

RxFinalizeSrvOpen ルーチンは、通常、ネットワーク ミニ リダイレクター ドライバーによって直接呼び出されません。 RDBSS は、SRV_OPENの参照カウントが 1 にデクリメントされたときに、このルーチンを内部的に呼び出します。 また、RxFinalizeNetFcb ルーチンが RecursiveFinalizeTRUE に設定して呼び出されると、RDBSS は RxFinalizeSrvOpen も呼び出します。 RDBSS は、IRP_MJ_CLOSEの I/O 要求パケットを受信したときに RxFinalizeNetFcb を呼び出します。 この IRP は通常、ファイルを閉じる操作を要求するユーザー モード アプリケーションに応答して RDBSS によって受信されます。 また、別のカーネル ドライバーがこのような IRP を発行することもできます。

RxFinalizeSrvOpen を呼び出す前に、呼び出し元は、SRV_OPENに関連付けられている FCB の排他ロックを取得し、FCB に関連付けられているNET_ROOTのテーブル ロックに対する共有ロックまたは排他ロックを取得している必要があります。

RecursiveFinalize パラメーターが TRUE の場合、RxFinalizeSrvOpen は、RecursiveFinalizeパラメーターを TRUE に設定し、ForceFinalize パラメーターを指定して RxFinalizeNetFobx を呼び出すことによって、このSRV_OPENに関連付けられている FOBX 構造体を最終処理します。

関連付けられた FCB の FcbState メンバーに FCB_STATE_ORPHANED フラグが設定されていない場合、 RxFinalizeSrvCall は、ネットワーク ミニ リダイレクターによって提供される MRxForceClosed ルーチンを呼び出して、SRV_CALLを終了します。 SRV_CALL構造体が FCB の作成の一部として最初に割り当てられなかった場合は、SRV_CALL構造体のメモリも解放されます。

要件

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