次の方法で共有


RxFinalizeSrvCall 関数 (fcb.h)

RxFinalizeSrvCall は、指定されたSRV_CALL構造体をファイナライズします。 呼び出し元には、デバイス オブジェクトに関連付けられている netname テーブルに対する排他ロックが必要です。

構文

BOOLEAN RxFinalizeSrvCall(
  [out] OUT PSRV_CALL ThisSrvCall,
  [in]  IN BOOLEAN    ForceFinalize
);

パラメーター

[out] ThisSrvCall

最終処理するSRV_CALL構造体へのポインター。

[in] ForceFinalize

参照カウントに関係なく、ファイナライズを強制するかどうかを示す値。

ForceFinalizeFALSE の場合、thisSrvCall が指すSRV_CALL構造体の NodeReferenceCount メンバーは、SRV_CALLを最終処理するには 1 である必要があります。

戻り値

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

注釈

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

RxFinalizeSrvCall を呼び出す前に、デバイス オブジェクトに関連付けられている netname テーブルのロックを排他モードで取得する必要があります。

現在実行中のプロセス ID が RDBSS プロセス ID と同じ場合、遅延ワーカー スレッドがディスパッチされ、SRV_CALL構造が破棄されます。 このワーカー スレッドは後で、ネットワーク ミニ リダイレクターによって提供される MRxFinalizeSrvCall ルーチンを呼び出して、SRV_CALLを終了します。 それ以外の場合は、 MRxFinalizeSrvCall ルーチンが直接呼び出され、SRV_CALLが終了します。

要件

要件
対象プラットフォーム デスクトップ
Header fcb.h (Mrxfcb.h、Fcb.h を含む)
IRQL <= APC_LEVEL

こちらもご覧ください

MRxFinalizeSrvCall

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

SRV_CALL構造体