仮想関数の電源状態の設定

上位ドライバーは、ネットワーク アダプター上の指定された PCI Express (PCIe) 仮想関数 (VF) の電源状態を変更する OID_SRIOV_Standard Edition T_VF_POWER_STATE のオブジェクト識別子 (OID) セット要求を発行します。 電源状態の変更は権限操作であるため、上位ドライバーは、ネットワーク アダプター上の PCIe 物理関数 (PF) のミニポート ドライバーにこの OID セット要求を発行します。 その後、PF ミニポート ドライバーは、VF で指定された電源状態を設定します。

たとえば、仮想化スタックは、VF に接続されている Hyper-V 子パーティションの電源状態を管理します。 スタックは、PF ミニポート ドライバーに OID_SRIOV_Standard Edition T_VF_POWER_STATE を発行することによって電源状態を変更します。

OID_SRIOV_Standard Edition T_VF_POWER_STATE の OID セット要求を発行する前に、基になるドライバーは、次の方法でNDIS_SRIOV_Standard Edition T_VF_POWER_STATE_PARAMETERS 構造体のメンバーを設定する必要があります。

  • VFId メンバーを、情報の読み取り元となる VF の識別子に設定する必要があります。

  • PowerState メンバーは、VF が移行する必要がある電源状態に設定する必要があります。

  • ネットワーク アダプターの WAKE# 信号 (PCI Express バス上) または PME# 信号 (PCI バス上) が低電力状態になるとアサートされている必要がある場合、 WakeEnable メンバーを TRUE に設定する必要があります。 それ以外の場合は、このメンバーを FALSE に設定する必要があります。

PF ミニポート ドライバーがこの OID セット要求を発行する場合は、次のガイドラインに従う必要があります:

  • PF ミニポート ドライバーは、 NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS 構造体の VFId メンバーによって指定された VF に、以前に割り当てられているリソースがあることを確認する必要があります。 PF ミニポート ドライバーは、 OID_NIC_SWITCH_ALLOCATE_VF メソッド要求の間に VF のリソースを割り当てます。 指定した VF が割り当てられた状態でない場合、ドライバーは OID 要求を失敗する必要があります。

  • 電源状態操作は、指定された VF にのみ影響を与える必要があります。 この操作は、同じネットワーク アダプター上の他の VM または PF に影響を与えてはなりません。