次の方法で共有


消去と清掃の制御

RDBSS には、FOBX 構造体が不要になったときに消去および清掃するためのルーチンが多数用意されています。

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

現在、SRV_CALL、NET_ROOT、および V_NET_ROOT 構造体に対して清掃が実装されています。 FCB の清掃は個別に処理されます。 FOBX は、常に同期的に最終処理できます。 清掃済みの最終処理に対して有効にする必要がある可能性がある唯一のデータ構造は、SRV_OPEN 構造体です。

RDBSS に実装されている清掃プロセスでは、現在、清掃済みの最終処理が必要になるまで、システム リソースは消費されません。 清掃済みの最終処理としてマークされる最初のエントリは、清掃に対してタイマー要求が投稿されます。 現在の実装では、タイマー要求はワンショット タイマー要求としてポストされます。 これは、エントリが最終処理される時間間隔に関する保証がないことを意味します。 清掃活性化メカニズムは、後の段階で微調整を行うための潜在的な候補です。

RDBSS の消去および清掃ルーチンには、次のものが含まれます。

ルーチンによって返される値 説明

RxPurgeAllFobxs

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

RxPurgeRelatedFobxs

このルーチンは、NET_ROOT 構造体に関連付けられているすべての FOBX 構造体を消去します。

RxScavengeAllFobxs

このルーチンは、特定のネットワーク ミニ リダイレクター デバイス オブジェクトに関連付けられているすべての FOBX 構造体を清掃します。

RxScavengeFobxsForNetRoot

このルーチンは、特定の NET_ROOT 構造体に関連付けられているすべての FOBX 構造体を清掃します。