次の方法で共有


RxPurgeAllFobxs 関数 (rxprocs.h)

RxPurgeAllFobxs は、 ネットワーク ミニ リダイレクターに関連付けられているすべての FOBX 構造体を消去します。

構文

void RxPurgeAllFobxs(
  PRDBSS_DEVICE_OBJECT RxDeviceObject
);

パラメーター

RxDeviceObject

消去を行うミニ リダイレクター デバイス オブジェクトへのポインター。

戻り値

なし

解説

クリーンアップ時に、ファイル オブジェクトに関連付けられているユーザー ハンドルはこれ以上ありません。 このような場合、終了とクリーンアップの間の時間枠は、メモリ マネージャーとキャッシュ マネージャーによって維持される追加の参照によって決定されます。 RDBSS では、別のスレッドで実行されているスカベンジャー プロセスを使用して、不要な FOBX やその他の構造体を清掃および消去します。

ネットワーク ミニ リダイレクターは、PnP 電源変更イベントに応答して RxPurgeAllFobxsRxScavengeAllFobsx を呼び出す場合があります。

RxPurgeAllFobxs ルーチンは、スカベンジャー ミューテックスを取得し、スカベンジャー オブジェクトの ClosePendingFobxsList メンバーを走査してリスト エントリを削除してから、ミューテックスを解放します。 FOBX 構造体が NULL でない場合、 RxPurgeAllFobxs は FOBX 構造体を消去し、関連付けられている FCB 構造体の排他ロックを取得しようとします。 成功した場合、 RxPurgeAllFobxs は、NET_FOBX構造体の逆参照と逆参照、最終処理、FCB 構造体の解放を試みます。

チェックされたビルドでは、 RxPurgeAllFobxs により、システムは次のようないくつかの条件に対して ASSERT を実行します。

  • RxDeviceObjectRxScavenger->ClosePendingFobxsList 構造体の Flink メンバーは NULL です
  • Fobx->NodeTypeCode がRDBSS_NTC_FOBXされていません。
  • リスト エントリの Flink メンバーと Blink メンバーは NULL です

要件

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

こちらもご覧ください

RxPurgeRelatedFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot