次の方法で共有


Hyper-V 拡張可能スイッチ構成変更に関する OID 要求の受信

拡張可能スイッチ インターフェイスは、拡張可能スイッチ オブジェクト識別子 (OID) 設定要求を発行することにより、拡張可能スイッチ コンポーネントの構成とポリシー パラメーターの変更について、基になる拡張機能に通知します。 これらの要求は、拡張可能スイッチ コンポーネントの構成とポリシー パラメーターの変更について、基になる拡張機能に通知するため、拡張可能スイッチのプロトコル エッジによって発行されます。 これらの OID 要求は、拡張可能スイッチの基になるミニポート エッジに拡張可能スイッチ ドライバー スタックを移動します。

次の図は、NDIS 6.40 (Windows Server 2012 R2) 以降の OID 要求の拡張可能スイッチ制御パスを示しています。

Diagram showing the extensible switch control path for OID requests in NDIS 6.40.

次の図は、NDIS 6.30 (Windows Server 2012) の OID 要求の拡張可能スイッチ制御パスを示しています。

Diagram showing the extensible switch control path for OID requests in NDIS 6.30.

拡張可能スイッチ インターフェイスで、NDIS フィルター ドライバーは拡張可能スイッチ拡張機能と呼ばれ、ドライバー スタックは拡張可能スイッチ ドライバー スタックと呼ばれます。

拡張可能スイッチのプロトコル エッジは、次の種類の通知に対して OID 設定要求を発行します。

  • 拡張可能スイッチのポート構成に対する変更。

    たとえば、プロトコル ドライバーは、拡張可能スイッチでのポート作成について基になる拡張機能に通知するため、OID_SWITCH_PORT_CREATE を発行します。 同様に、プロトコル ドライバーは、OID_SWITCH_PORT_DELETE を発行し、ポートの削除について拡張機能に通知します。

    この種類の OID 通知について詳しくは、「Hyper-V 拡張可能スイッチ ポート」をご覧ください。

  • 拡張可能スイッチ上のポートへのネットワーク アダプター接続に対する変更。

    たとえば、プロトコル ドライバーは、OID_SWITCH_NIC_CONNECTを発行し、拡張可能スイッチのポートへのネットワーク アダプターの接続について基になる拡張機能に通知します。 同様に、プロトコル ドライバーは、OID_SWITCH_NIC_DISCONNECT を発行し、ネットワーク アダプターがポートから切断されたことを拡張機能に通知します。

    この種類の OID 通知について詳しくは、「Hyper-V 拡張可能スイッチ ネットワーク アダプター」をご覧ください。

  • 拡張可能スイッチ ポートまたはスイッチ ポリシーに対する変更。

    たとえば、プロトコル ドライバーは、OID_SWITCH_PROPERTY_ADD を発行し、拡張可能なスイッチ プロパティの追加について基になる拡張機能に通知します。 同様に、プロトコル ドライバーは、OID_SWITCH_PORT_PROPERTY_DELETE を発行し、ポート プロパティの削除について拡張機能に通知します。

    この種類の OID 通知について詳しくは、「Hyper-V 拡張可能スイッチ ポリシーの管理」をご覧ください。

    拡張機能は、拡張可能スイッチの基になるミニポート エッジによって管理される既定のポートまたはスイッチ ポリシーへの変更の通知を受け取りません。

  • 実行時ポート データを保存または復元します。

    たとえば、プロトコル ドライバーは、OID_SWITCH_NIC_SAVE を発行し、拡張可能スイッチの指定されたポートの実行時データを保存するよう、基になる拡張機能に通知します。 これらの OID は、Hyper-V 状態が保存されるか別のホストに移行されるときに発行されます。 同様に、プロトコル ドライバーは、OID_SWITCH_NIC_RESTORE を発行し、実行時ポート データが拡張可能スイッチで復元されていることを拡張機能に通知します。

    この種類の OID 通知について詳しくは、「Hyper-V 拡張可能スイッチ実行時データの管理」をご覧ください。

拡張可能スイッチ拡張ミニポート ドライバーは、これらの OID 要求を完了します。 ただし、一部の拡張可能スイッチ OID 要求では、基になる拡張機能は、通知を拒否するために OID 要求に失敗する可能性があります。 たとえば、拡張可能スイッチ プロトコル ドライバーは、拡張可能スイッチで作成される新しいポートについてフィルター ドライバーに通知するとき、OID_SWITCH_PORT_CREATE の OID 設定要求を発行します。 基になるフィルター処理または転送拡張機能は、STATUS_DATA_NOT_ACCEPTED を使用して OID 要求を完了することで、ポートの作成を拒否できます。

拡張可能スイッチ拡張機能は、拡張可能スイッチ OID 要求に対して FilterOidRequest 関数が呼び出されたとき、次のガイドラインに従う必要があります。

  • 拡張機能は、OidRequest パラメーターによりポイントされているデータを変更することはできません。

  • 一部の拡張可能スイッチ OID 要求の場合、拡張機能は、STATUS_DATA_NOT_ACCEPTED を使用して OID 要求を完了できます。 これにより、OID 要求が発行された拡張可能スイッチ コンポーネントに対する操作が拒否されます。

    たとえば、拡張機能は、STATUS_DATA_NOT_ACCEPTED を使用して OID_SWITCH_NIC_CREATE 要求を完了できます。 ドライバーは、ネットワーク接続が作成されている指定ポートで構成されたポリシーを満たすことができない場合、これを行う必要があります。

    拡張機能は、次の OID に対してこの方法で要求を完了できます。

  • 拡張機能は、OID 要求を完了しない場合、NdisFOidRequest を呼び出して、要求を拡張可能スイッチ ドライバー スタックに転送する必要があります。

    ドライバーは、NdisFOidRequest を呼び出す前に、NdisAllocateCloneOidRequest を呼び出して NDIS_OID_REQUEST 構造を割り当て、要求情報を新しい構造に転送する必要があります。

    この拡張機能は、FilterOidRequestComplete 関数が呼び出されたときに、OID 要求の完了結果を監視する必要があります。 これにより、拡張機能は、拡張可能スイッチ コンポーネントの操作が正常に完了したか、基になる拡張機能によって拒否されたかを判断できます。

    OID 要求をフィルター処理および転送する方法について詳しくは、「NDIS フィルター ドライバーでの OID 要求のフィルター処理」をご覧ください。

  • NDIS、および 上部のプロトコル ドライバーとフィルター ドライバーは、下部の物理ネットワーク アダプターにハードウェア オフロード テクノロジの OID 要求を発行できます。 これには、仮想マシン キュー (VMQ)、インターネット プロトコル セキュリティ (IPsec)、シングル ルート I/O 仮想化 (SR-IOV) などのオフロード テクノロジの OID 要求が含まれます。

    これらの OID 要求が拡張可能スイッチ インターフェイスに到着すると、NDIS_SWITCH_NIC_OID_REQUEST 内に OID 要求が カプセル化されます 次に、拡張可能スイッチのプロトコル エッジは、この構造体を含む OID 要求 OID_SWITCH_NIC_REQUEST を発行します。

  • 拡張可能スイッチ転送拡張機能は、外部ネットワーク アダプターにバインドされている 1 つ以上の物理アダプターで、NDIS ハードウェア オフロード テクノロジのサポートを提供できます。 この構成では、拡張可能スイッチ外部ネットワーク アダプターは、NDIS マルチプレクサー (MUX) 中間ドライバーの仮想ミニポート エッジにバインドされます。 MUX 中間ドライバーは、ホスト上の 1 つ以上の物理ネットワークのチームにバインドされます。 この構成は、拡張可能スイッチ チームと呼ばれています。 拡張可能なスイッチ チームの詳細については、「物理ネットワーク アダプター構成の種類」を参照してください。

    この構成では、拡張可能スイッチ拡張機能がチーム内のすべてのネットワーク アダプターに公開されます。 これにより、拡張可能スイッチ ドライバー スタック内の転送拡張機能で、チーム内の個々のネットワーク アダプターの構成と使用を管理できます。 たとえば、拡張機能では、送信パケットを個々のアダプターに転送することで、チーム経由の負荷分散フェールオーバー (LBFO) ソリューションのサポートを提供できます。 このような拡張機能は、チーミング プロバイダーと呼ばれています。 チーミング プロバイダーの詳細については、「チーミング プロバイダー拡張機能」を参照してください。

    OID_SWITCH_NIC_REQUEST の OID 要求を処理することにより、チーミング プロバイダーはハードウェア オフロード用のアダプター チームの構成に参加できます。 たとえば、拡張機能は、OID_SWITCH_NIC_REQUEST の独自の OID 要求を生成し、ハードウェア オフロードのパラメーターを使用して物理アダプターを構成することができます。

    OID_SWITCH_NIC_REQUEST OID 要求を処理する方法について詳しくは、「物理ネットワーク アダプターへの OID 要求の転送」をご覧ください。

    拡張機能フィルター ドライバーは、拡張可能スイッチ外部ネットワーク アダプターにバインドされている任意の物理アダプターにプライベート OID を発行する OID_SWITCH_NIC_REQUEST の OID 要求を生成できます。

拡張可能スイッチ OID 要求が保留中の間、NdisFRestartFilter を使用したスタック再起動要求は完了しません。 このため、スタックの再起動を待機している拡張機能は、進行中の OID 要求をすべて完了する必要があります。

拡張可能スイッチ OID 要求の制御パスについて詳しくは、「OID 要求の Hyper-V 拡張可能スイッチ制御パス」をご覧ください。