次の方法で共有


OID_SWITCH_NIC_CREATE

Hyper-V 拡張可能スイッチのプロトコル エッジは、拡張可能スイッチ ポートと外部または仮想ネットワーク アダプターの間で新しい接続が確立されていることを下位拡張可能スイッチ拡張機能に通知するために、OID_SWITCH_NIC_CREATEのオブジェクト識別子 (OID) セット要求を発行します。 接続が完全に確立されると、拡張可能スイッチのプロトコル エッジは、 OID_SWITCH_NIC_CONNECT の OID セット要求を発行します。

NDIS_SWITCH_NIC_PARAMETERS 構造体の InformationBuffer メンバーには、 NDIS_NIC_SWITCH_PARAMETERS 構造体を指すポインターが含まれています。

解説

NDIS_SWITCH_NIC_PARAMETERS 構造体の PortId メンバーは、作成通知を行う拡張可能スイッチ ポートを指定します。 拡張可能スイッチ拡張機能は、 OID_SWITCH_PORT_ARRAY の OID クエリ要求を発行することで、拡張可能スイッチのこれと他のポートのパラメーター情報を取得できます。

NDIS_SWITCH_NIC_PARAMETERS 構造体の Index メンバーが、作成続通知の行われているネットワーク アダプターのインデックスを指定します。 指定された Index 値を持つネットワーク アダプターは、 PortId メンバーによって指定された拡張可能スイッチ ポートに接続されます。 これらのインデックス値の詳細については、 ネットワーク アダプターのインデックス値 を参照してください。

OID_SWITCH_NIC_CREAT の OID セット要求を受信すると、拡張機能は次のガイドラインに従う必要があります:

  • 拡張機能は、OID 要求に関連付けられている NDIS_SWITCH_NIC_PARAMETERS 構造体を変更することはできません。

  • この OID_SWITCH_NIC_CREATE 要求は、新しい拡張可能スイッチ接続が起動され、指定されたポートでパケット トラフィックが間もなく発生し始める可能性があることを拡張機能に通知するだけです。 ただし、拡張スイッチのプロトコル エッジが OID_SWITCH_NIC_CONNECT の OID セット要求を発行するまで、拡張機能はポートを使用できません。 その OID が発行されるまで、拡張機能は次の操作を行わないでください:

    • OID_SWITCH_NIC_CREATE OID 要求が発行された拡張可能スイッチ ポートで、ネットワーク アダプター接続へのパケット トラフィックを生成します。

    • OID_SWITCH_NIC_REQUEST の OID 要求を、OID_SWITCH_NIC_REQUESTの OID 要求が発行された下位ネットワーク アダプターにを転送または発信します。

    • OID_SWITCH_NIC_CREATE OID 要求が発行された下位ネットワーク アダプターから、 NDIS_STATUS_SWITCH_NIC_STATUS の NDIS 状態表示を転送または発信します。

    • ReferenceSwitchNic を呼び出して、拡張可能スイッチ ポートで指定されたネットワーク アダプター接続の拡張可能スイッチ参照カウンターをインクリメントします。

    拡張機能は、OID_SWITCH_NIC_CREATEと OID_SWITCH_NIC_CONNECT の OID 要求の間で指定されたポートの送受信パケットをインターセプトする可能性があります。 この場合、拡張機能は、パケット要求を取り消す代わりに、送信または受信パケット要求を転送する必要があります。

  • 拡張機能は、OID 要求の NDIS_STATUS_DATA_NOT_ACCEPTED を返すことによって、作成通知を拒否できます。 例えば、拡張機能が指定されたポートで構成されたポリシーを満たすことができない場合、拡張機能は作成通知を拒否する必要があります。

    拡張機能が他の NDIS_STATUS_Xxx 状態コードを返す場合、作成通知も拒否されます。 ただし、NDIS_STATUS_RESOURCES の返しなど、一時的なシナリオの状態コードを返すと、作成通知が再試行される可能性があります。

    拡張機能が OID 要求を拒否しない場合は、要求が完了したときに状態を監視する必要があります。 拡張機能は、OID 要求が拡張可能スイッチ制御パスの基になる拡張機能によって拒否されたか、拡張可能スイッチ インターフェイスによって拒否されたかを判断するためにこれを行う必要があります。

    拡張機能は、 NDIS_SWITCH_NIC_PARAMETERS 構造体の Index メンバーが 0 のネットワーク アダプターのインデックス値を指定する場合にのみ OID 要求を拒否できます。

  • 拡張機能が作成通知を拒否しない場合は、 NdisFOidRequest を呼び出して、この OID 要求を拡張可能スイッチ ドライバー スタック内の下位拡張機能に転送する必要があります。

    拡張機能は、この OID 要求の完了状態を監視する必要があります。 拡張機能は、拡張可能スイッチ ドライバー スタック内の基になる拡張機能が作成通知を拒否したかどうかを検出するためにこれを行います。

  • 拡張機能が NdisFOidRequest を呼び出してこの OID 要求を転送する場合、拡張機能はすぐに拡張可能スイッチ ポート間のパケット トラフィックを受信しません。 さらに、拡張機能は、拡張可能スイッチ ポートの送受信トラフィックをすぐに挿入することはできません。

  • 拡張機能は、拡張可能スイッチのプロトコル エッジがの OID_SWITCH_NIC_CONNECT OID セット要求を発行した後にのみ、拡張可能スイッチ ポートにパケット トラフィックを転送できます。

    場合によっては、 OID_SWITCH_NIC_CONNECT の OID セット要求が発行される前に、拡張可能スイッチによってパケット トラフィックがポートに転送されることがあります。

  • 拡張可能スイッチ外部ネットワーク アダプターは、1つ以上の下位物理アダプターにバインドできます。 外部ネットワーク アダプターにバインドされているすべての物理ネットワーク アダプターについて、拡張可能スイッチのプロトコル エッジは、 OID_SWITCH_NIC_CONNECT の個別 OID 設定要求を発行します。 各 OID セット要求は、異なるネットワーク アダプター接続インデックス値を指定します。 これらのインデックス値の詳細については、 ネットワーク アダプターのインデックス値 を参照してください。

    拡張機能は、各下位物理アダプターの接続状態を保持する必要があります。 物理ネットワーク アダプターを外部ネットワーク アダプターにバインドできるさまざまな構成の詳細については、 物理ネットワーク アダプター構成の種類 を参照してください。

拡張可能スイッチ ポートとネットワーク アダプター接続の状態の詳細については、 Hyper-V 拡張可能スイッチ ポートとネットワーク アダプターの状態 を参照してください。

拡張機能は、OID_SWITCH_NIC_CREATE の独自の OID セット要求を発行することはできません。

状態コードを返します

拡張機能は、OID_SWITCH_NIC_CREATEの OID セット要求を完了すると、次のいずれかの状態コードを返します。

状態コード 説明

NDIS_STATUS_DATA_NOT_ACCEPTED

拡張機能は作成通知を拒否しました。

NDIS_STATUS_RESOURCES

リソース条件が低いため、拡張機能は作成通知を拒否しました。

NDIS_STATUS_Xxx

拡張機能は、他の理由で作成通知を拒否しました。

注: 拡張機能が OID セット要求を完了する場合は、NDIS_STATUS_SUCCESS を返す必要があります。

拡張機能が OID_SWITCH_NIC_CREATE の OID セット要求を完了しない場合、要求は拡張可能スイッチの基になるミニポート エッジによって完了します。 下位ミニポート エッジは、この OID セット要求の次の状態コードを返します:

状態コード 説明

NDIS_STATUS_SUCCESS

OID 要求は正常に完了しました。

要件

バージョン

NDIS 6.30 以降でサポートされています。

ヘッダー

Ntddndis.h (Ndis.h を含む)

関連項目


NDIS_OID_REQUEST

NDIS_SWITCH_NIC_PARAMETERS

NdisFOidRequest

OID_SWITCH_NIC_CONNECT

OID_SWITCH_PORT_ARRAY

ReferenceSwitchPort