GET_VIRTUAL_DEVICE_RESOURCES回调函数 (wdm.h)

GetResources 例程返回 PCI Express(PCIe)物理功能(PF)要求的资源,以便在支持单根 I/O 虚拟化(SR-IOV)接口的设备上启用虚拟化。

语法

GET_VIRTUAL_DEVICE_RESOURCES GetVirtualDeviceResources;

void GetVirtualDeviceResources(
  [in, out] PVOID Context,
  [out]     PUINT8 CapturedBusNumbers
)
{...}

参数

[in, out] Context

指向特定于接口的上下文信息的指针。 调用方传递作为接口 PCI_VIRTUALIZATION_INTERFACE 结构的 上下文 成员传递的值。

[out] CapturedBusNumbers

指向调用方提供的变量的指针,在该变量中,此例程返回 UINT8 值。 此值指定已捕获供设备的 SR-IOV PF 使用的 PCIe 总线数。

返回值

没有

言论

PCIe 设备通常消耗单个 PCI 总线上的资源。 PCI 驱动程序通过将总线号写入上游网桥端口中的辅助总线号码寄存器和从属总线号码寄存器,将设备分配到 PCI 总线。 此端口是 PCIe 根端口或 PCIe 交换机端口内的 PCI 到 PCI 桥。

支持 SR-IOV 接口的设备可能会创建比连接到设备的 PCI 总线上的虚拟功能更多的虚拟功能。 在这些情况下,上游桥端口必须配置为捕获一个或多个未使用的 PCI 总线。 为此,需将更大的值写入端口的从属总线编号寄存器。

支持 SR-IOV 接口的设备必须捕获 PCI 总线(如果以下至少一个为 true):

  • 该设备具有 8 个以上的总功能(PF 和 VF),设备不支持 PCI Express 3.0 规范的替代路由解释(ARI)选项。

  • 设备支持 ARI,并且总共具有 8 个以上的功能,但上游桥端口不支持 ARI。

  • 设备支持 ARI,具有 256 多个功能,上游桥端口支持 ARI。

无论 ARI 支持如何,每个捕获的总线都可以支持 256 个函数。

如果设备需要更多 PCIe 请求程序 ID(RID),以便启用其所有 VF,PCI 总线驱动程序将执行以下作:

  1. 将设备的总线号写入 PCIe 辅助总线号码寄存器。

  2. 将大于设备总线号的值写入 PCIe 从属总线编号寄存器。

这两个寄存器值之间的差异表示捕获的总线数。

GetResources 例程由 GUID_PCI_VIRTUALIZATION_INTERFACE 接口提供。

要求

要求 价值
最低支持的客户端 在 Windows Server 2012 及更高版本的 Windows 中受支持。
目标平台 桌面
标头 wdm.h (包括 Wdm.h)
IRQL PASSIVE_LEVEL

另请参阅

PCI_VIRTUALIZATION_INTERFACE