PCI_VIRTUALIZATION_INTERFACE结构 (wdm.h)
PCI_VIRTUALIZATION_INTERFACE 结构使驱动程序能够管理和配置虚拟函数 (VF) 的 PCI Express (PCIe) 配置空间。 VF 由支持单根 I/O 虚拟化(SR-IOV)接口的设备在 PCI 总线上公开。
此结构描述 GUID_PCI_VIRTUALIZATION_INTERFACE 接口。
语法
typedef struct _PCI_VIRTUALIZATION_INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PSET_VIRTUAL_DEVICE_DATA SetVirtualFunctionData;
PGET_VIRTUAL_DEVICE_DATA GetVirtualFunctionData;
PGET_VIRTUAL_DEVICE_LOCATION GetLocation;
PGET_VIRTUAL_DEVICE_RESOURCES GetResources;
PENABLE_VIRTUALIZATION EnableVirtualization;
PGET_VIRTUAL_FUNCTION_PROBED_BARS GetVirtualFunctionProbedBars;
} PCI_VIRTUALIZATION_INTERFACE, *PPCI_VIRTUALIZATION_INTERFACE;
成员
Size
此结构的大小(以字节为单位)。
Version
驱动程序定义的接口版本。
Context
指向特定于接口的上下文信息的指针。
InterfaceReference
指向 InterfaceReference 例程的指针,该例程递增接口的引用计数。
InterfaceDereference
指向 InterfaceDereference 例程的指针,该例程会递减接口的引用计数。
SetVirtualFunctionData
指向 SetVirtualFunctionData 例程的指针,该例程将数据写入 SR-IOV 设备的 VF 的 PCIe 配置空间。
GetVirtualFunctionData
指向 GetVirtualFunctionData 例程的指针,该例程从 SR-IOV 设备的 VF 的 PCIe 配置空间读取数据。
GetLocation
指向 GetLocation 例程的指针,该例程提供有关 PCIe 层次结构中 VF 的当前设备位置的信息。 使用 I/O 内存管理单元(IOMMU)将流量路由到设备或从设备路由的虚拟化系统必须提供此信息。
GetResources
指向 GetResources 例程的指针,该例程提供有关 SR-IOV 设备上可用于虚拟化的资源的信息。
EnableVirtualization
指向在 SR-IOV 设备上启用或禁用虚拟化的 EnableVirtualization 例程的指针。
GetVirtualFunctionProbedBars
指向 GetVirtualFunctionProbedBars 例程的指针,该例程允许非特权 Hyper-V 虚拟机(VM)确定在 PCI 总线驱动程序查询后从 VF 的 PCIe 基址寄存器(BAR)读取的内容。 PCI 驱动程序执行此查询来确定设备所需的内存或 I/O 地址空间。
言论
对于支持 SR-IOV 接口的设备,驱动程序偶尔必须访问和管理设备的 VF 的 PCIe 配置空间。 驱动程序从GUID_PCI_VIRTUALIZATION_INTERFACE接口调用例程,以访问设备上的 VF 的 PCIe 配置空间。
由于设备的 VF 未在 PCI 总线上显示为完整的 PCIe 设备,因此 GUID_BUS_INTERFACE_STANDARD 接口不能用于管理 VF。
PCI_VIRTUALIZATION_INTERFACE 结构是 接口 结构的扩展。
驱动程序通过将 IRP_MN_QUERY_INTERFACE I/O 请求数据包(IRP)发送到其总线驱动程序(InterfaceType 设置为GUID_PCI_VIRTUALIZATION_INTERFACE),从而获取指向 PCI_VIRTUALIZATION_INTERFACE 结构的指针。
要求
要求 | 价值 |
---|---|
支持的最低服务器 | Windows Server 2012 |
标头 | wdm.h (包括 Wdm.h) |