NIC スイッチのパラメーターの設定

基になるドライバーは、単一ルート I/O 仮想化 (SR-IOV) をサポートするネットワーク アダプターに作成された NIC スイッチのパラメーターを変更できます。 ドライバーは、これらのパラメーターを変更する OID_NIC_SWITCH_PARAMETERS のオブジェクト識別子 (OID) セット要求を発行します。 SR-IOV アダプターの PCI Express (PCIe) 物理機能 (PF) のミニポート ドライバーのみが、この OID セット要求を処理します。

基になるドライバーは、この OID セット要求を発行する前に、NIC スイッチで変更するパラメーターを使用して NDIS_NIC_SWITCH_PARAMETERS 構造体を初期化する必要があります。 その後、ドライバーは OID 要求の NDIS_OID_REQUEST 構造体を初期化し、InformationBuffer メンバーを NDIS_NIC_SWITCH_PARAMETERS 構造体のポインターに設定します。

変更できるのは、NIC スイッチの構成パラメーターの限られたサブセットのみです。 上部のドライバーは、NDIS_NIC_SWITCH_PARAMETERS 構造体の次のメンバーを設定することによって、変更するパラメーターを指定します。

  • SwitchId メンバーは、パラメーターが変更される NIC スイッチの識別子に設定されます。

    Windows Server 2012 以降では、SR-IOV インターフェイスは、ネットワーク アダプターの既定の NIC スイッチを1つのみサポートします。 このスイッチは、既定の NIC スイッチと呼ばれます。 SwitchId メンバーは、NDIS_DEFAULT_SWITCH_IDに設定する必要があります。

  • Flags メンバーには、適切な NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGED フラグが設定されます。 NDIS_NIC_SWITCH_PARAMETERS 構造体のメンバーは、対応する NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGED フラグが Ntddndis.h で定義されている場合にのみ変更できます。

  • Flags メンバーで設定された NDIS_NIC_SWITCH_PARAMETERS_Xxx_CHANGEDフラグに対応する NDIS_NIC_SWITCH_PARAMETERS 構造体のメンバーは、変更される NIC スイッチ構成パラメーターで設定されます。

    注: Windows Server 2012 以降では、OID_NIC_SWITCH_PARAMETERS の OID セット要求を通じて、NDIS_NIC_SWITCH_PARAMETERS 構造体の SwitchName メンバーのみを変更できます。

PF ミニポート ドライバーは、OID_NIC_SWITCH_PARAMETERS の OID セット要求を受信するときに、これらのガイドラインに従う必要があります。

  • PF ミニポート ドライバーは、ネットワーク アダプターの再初期化を必要とせずに変更を適用できる場合、ドライバーは、ハードウェアに変更を適用し、NDIS_STATUS_SUCCESSで OID 要求を完了します。

    この状態コードが返された場合、NDIS は、レジストリ内の NIC スイッチの構成情報を更新します。

  • PF ミニポート ドライバーは、変更を適用するネットワーク アダプターの再初期化が必要な場合、ドライバーは、NDIS_STATUS_REINIT_REQUIREDで OID 要求を完了します。

    この状態コードが返された場合、NDIS も、レジストリ内の NIC スイッチの構成情報を更新します。 ただし、OID セット要求を発行した基になるドライバーは、変更を有効にできるように、ネットワーク アダプターを再初期化する必要があります。

    : 静的 NIC の作成と構成をサポートする PF ミニポート ドライバーは、新しいパラメーターを有効にするためにアダプターが再初期化されていることを確認するNDIS_STATUS_REINIT_REQUIREDを返すことができます。

  • PF ミニポート ドライバーが OID で要求された変更を適用できない場合は、OID に失敗し、適切なNDIS_STATUS_Xxx コードを返す必要があります。

    この場合、NDIS はレジストリの NIC スイッチ構成情報を更新しません。