设置虚拟功能的电源状态

过度驱动程序发出对象标识符 (OID) 设置 OID_SRIOV_SET_VF_POWER_STATE 请求,以更改网络适配器上指定 PCI Express (PCIe) Virtual Function (VF) 的电源状态。 由于更改电源状态是一种特权操作,因此过度驱动程序会向网络适配器上的 PCIe 物理功能 (PF) 的微型端口驱动程序发出此 OID 集请求。 然后,PF 微型端口驱动程序在 VF 上设置指定的电源状态。

例如,虚拟化堆栈管理附加到 VF 的 Hyper-V 子分区的电源状态。 堆栈通过将 OID_SRIOV_SET_VF_POWER_STATE 颁发给 PF 微型端口驱动程序来更改电源状态。

在发出 OID_SRIOV_SET_VF_POWER_STATE 的 OID 集请求之前,过度分配的驱动程序必须按以下方式设置 NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS 结构的成员:

  • VFId 成员必须设置为要从中读取信息的 VF 的标识符。

  • PowerState 成员必须设置为 VF 应转换到的电源状态。

  • 如果网络适配器必须在 PCI Express 总线上 (其 WAKE# 信号) 或 PME# 信号 (PCI 总线) 进入低功耗状态时断言,则必须将 WakeEnable 成员设置为 TRUE。 否则,此成员必须设置为 FALSE。

向 PF 微型端口驱动程序发出此 OID 集请求时,它必须遵循以下准则:

  • PF 微型端口驱动程序必须验证由NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS结构的 VFId 成员指定的 VF 是否具有先前已分配的资源。 PF 微型端口驱动程序在OID_NIC_SWITCH_ALLOCATE_VF的 OID 方法请求期间为 VF 分配资源。 如果指定的 VF 未处于已分配状态,则驱动程序必须使 OID 请求失败。

  • 电源状态操作只能影响指定的 VF。 该操作不得影响同一网络适配器上的其他 VF 或 PF。