RxFinalizeSrvCall 関数 (fcb.h)
RxFinalizeSrvCall は、指定されたSRV_CALL構造体をファイナライズします。 呼び出し元には、デバイス オブジェクトに関連付けられている netname テーブルに対する排他ロックが必要です。
構文
BOOLEAN RxFinalizeSrvCall(
[out] OUT PSRV_CALL ThisSrvCall,
[in] IN BOOLEAN ForceFinalize
);
パラメーター
[out] ThisSrvCall
最終処理するSRV_CALL構造体へのポインター。
[in] ForceFinalize
参照カウントに関係なく、ファイナライズを強制するかどうかを示す値。
ForceFinalize が FALSE の場合、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 |