RxPurgeRelatedFobxs 関数 (scavengr.h)
RxPurgeRelatedFobxs は、NET_ROOT構造体に関連付けられているすべての FOBX 構造体を消去します。
構文
NTSTATUS RxPurgeRelatedFobxs(
PNET_ROOT NetRoot,
PRX_CONTEXT RxContext,
BOOLEAN AttemptFinalization,
PFCB PurgingFcb
);
パラメーター
NetRoot
FOBX 構造体を消去する必要があるNET_ROOT構造体へのポインター。
RxContext
RX_CONTEXT構造体へのポインター。
AttemptFinalization
関連付けられた FCB 構造体の最終処理と解放を試みる必要があるかどうかを示すブール値。
PurgingFcb
消去が行われる FCB 構造体へのポインター。
戻り値
RxPurgeRelatedFobxs は 、成功した場合はSTATUS_SUCCESSを返し、失敗した場合は次のいずれかのエラー値を返します。
リターン コード | 説明 |
---|---|
|
関連する FOBX 構造体を消去できませんでした。 |
注釈
クリーンアップ時に、ファイル オブジェクトに関連付けられているユーザー ハンドルはこれ以上ありません。 このような場合、閉じるとクリーンアップの間の時間枠は、メモリ マネージャーとキャッシュ マネージャーによって維持される追加の参照によって決まります。 クリーンアップ時に、FOBX はクローズ・ペンディング・リストに入れられ、クローズ操作を受け取ったときに対応するリストから削除されます。 その間、開いている操作がACCESS_DENIED状態で失敗した場合、RDBSS は FOBX 構造体を強制的に消去できます。 これは同期操作です。
ディレクトリの名前を変更するには、ディレクトリの下にあるすべてのファイルを閉じる必要があります。 ネットワーク ミニ リダイレクターは、ディレクトリの名前を変更するIRP_MJ_SET_INFORMATION要求に応答して、 RxPurgeRelatedFobxs と RxScavengeFobxsForNetRoot を呼び出す場合があります。 ディレクトリのNET_ROOT構造体と NULL FCB を渡すことで、ディレクトリに関連付けられているすべての FOBX 構造体が消去され、清掃されます。
RxPurgeRelatedFobxs ルーチンは、消去要求を受信する前にクローズ操作が保留されていたすべての FOBX 構造体を消去しようとします。 RxPurgeRelatedFobxs ルーチンは、スカベンジャー ミューテックスを取得し、スカベンジャー オブジェクトの ClosePendingFobxsList メンバーを走査してリスト エントリを削除してから、ミューテックスを解放します。
AttemptFinalize が TRUE に設定されている場合、RxPurgeRelatedFobxs は関連付けられている FCB の最終処理と解放を試みます。
PFCB が NULL ではなく、この消去 FCB strcuture が ClosePendingFobxsList メンバーの FOBX に関連付けられている FCB 構造体と同じでない場合、RxPurgeRelatedFobxs は、このルーチンがサポートされている場合、ネットワーク ミニ リダイレクターによって提供される MRxAreFilesAliased コールバック ルーチンを呼び出します。 MRxAreFilesAliased の呼び出しは、PFCB が FOBX 構造体に関連付けられている FCB のエイリアスであるかどうかを判断するためのものです。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | scavengr.h (Rxprocs.h を含む) |
IRQL | <= APC_LEVEL |