次の方法で共有


NET_ROOT構造体

ネット ルート構造 (NET_ROOT) には、ネットワーク ミニ リダイレクターによって維持される特定のネットワーク サーバー\共有接続ごとの情報が含まれます。

NET_ROOTは、RDBSS とネットワーク ミニ リダイレクター ドライバーが、サーバーではなく処理する必要があるものです。 したがって、RDBSS は通常、NET_ROOT構造を作成して開き、サーバーを開く役割を担うネットワーク ミニ リダイレクター ドライバーを呼び出します。 ネットワーク ミニ リダイレクター ドライバーは、渡されたNET_ROOT構造体内の適切なフィールドを設定する必要があります。

NET_ROOT構造体の一覧は、各SRV_CALLの RDBSS によって管理されます。 各NET_ROOT構造体には、他の RDBSS 構造体と共通するいくつかの要素と、NET_ROOT構造体に固有の要素があります。 NET_ROOT構造体を管理する RDBSS ルーチンは、次の要素のみを変更します。

  • 署名と参照の数

  • 名前と関連付けられたテーブル情報

  • 関連付けられているSRV_CALL構造体へのバック ポインター

  • さまざまなサブ構造のサイズ情報

  • 関連付けられている FCB 構造体の参照テーブル

  • ネットワーク ミニ リダイレクター (または NET_ROOT データ構造の作成者) によって要求される追加ストレージ

NET_ROOT構造体には、IRP 処理を再開する前にNET_ROOTの遷移が完了するのを待機しているRX_CONTEXT構造体の一覧も含まれています。 これは通常、同時要求がサーバーに送信されるときに発生します。 これらの要求の 1 つが開始され、他の要求はキューに入れられます。 ネットワーク ミニ リダイレクターで使用するために予約された余分な領域は、既知のNET_ROOTデータ構造の末尾から開始されるため、ネットワーク ミニ リダイレクターは、インクルード ファイルのコンテキスト フィールドを使用してこの余分な領域を参照できます。

NET_ROOT構造体の最終処理は、次の 2 つの部分で構成されます。

  1. すべてのV_NET_ROOTSとの関連付けを破棄する

  2. メモリの解放

これら 2 つのアクションの間に遅延が生じる可能性があり、NET_ROOT構造のフィールドにより、最初のステップが重複しなくなる可能性があります。