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结构的 Context 成员传递的值。
[out] CapturedBusNumbers
指向调用方提供的变量的指针,此例程在该变量中返回 UINT8 值。 此值指定已捕获供设备的 SR-IOV PF 使用的 PCIe 总线数。
返回值
无
备注
PCIe 设备通常消耗单个 PCI 总线上的资源。 PCI 驱动程序通过将总线编号写入上游网桥端口中的辅助总线编号寄存器和从属总线编号寄存器,将设备分配给 PCI 总线。 此端口是 PCIe 根端口或 PCIe 交换机端口内的 PCI 到 PCI 网桥。
支持 SR-IOV 接口的设备可能会创建比设备连接的 PCI 总线所能容纳的虚拟功能更多。 在这些情况下,必须将上游网桥端口配置为捕获一个或多个未使用的 PCI 总线。 这是通过将更大的值写入端口的从属总线编号寄存器来完成的。
如果至少满足以下条件之一,则支持 SR-IOV 接口的设备必须捕获 PCI 总线:
设备总共具有八个以上的功能, (DF 和 VF) ,并且设备不支持 PCI Express 3.0 规范的备用路由解释 (ARI) 选项。
设备支持 ARI,总共有 8 个以上的功能,但上游桥端口不支持 ARI。
设备支持 ARI 并具有 256 个以上的功能,上游桥端口支持 ARI。
无论是否支持 ARI,每个捕获的总线都可以支持 256 个函数。
如果设备需要更多 PCIe 请求程序 ID (RID) 才能启用其所有 VF,PCI 总线驱动程序将执行以下操作:
将设备的总线编号写入 PCIe 辅助总线编号寄存器。
将大于设备的总线编号的值写入 PCIe 从属总线编号寄存器。
这两个寄存器值之间的差异表示捕获的总线编号数。
GetResources 例程由 GUID_PCI_VIRTUALIZATION_INTERFACE 接口提供。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Server 2012 及更高版本的 Windows 中受支持。 |
目标平台 | 桌面 |
标头 | wdm.h (包括 Wdm.h) |
IRQL | PASSIVE_LEVEL |