wdm.h) (PCI_VIRTUALIZATION_INTERFACE 结构
PCI_VIRTUALIZATION_INTERFACE结构使驱动程序能够管理和配置 PCI Express (PCIe) 配置空间,以便虚拟函数 (VF) 。 支持单根 I/O 虚拟化 (SR-IOV) 接口的设备在 PCI 总线上公开 VF。
此结构描述 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
指向 EnableVirtualization 例程的指针,该例程启用或禁用 SR-IOV 设备上的虚拟化。
GetVirtualFunctionProbedBars
指向 GetVirtualFunctionProbedBars 例程的指针,该例程允许非特权 Hyper-V 虚拟机 (VM) 确定 PCI 总线驱动程序查询后将从 VF 的 PCIe 基址寄存器 (BAR) 读取的内容。 PCI 驱动程序执行此查询以确定设备所需的内存或 I/O 地址空间。
注解
对于支持 SR-IOV 接口的设备,驱动程序有时必须访问和管理设备 VF 的 PCIe 配置空间。 驱动程序从GUID_PCI_VIRTUALIZATION_INTERFACE接口调用例程,以访问设备上的 DF 的 PCIe 配置空间。
由于设备的 VF 在 PCI 总线上不显示为完整的 PCIe 设备, 因此GUID_BUS_INTERFACE_STANDARD 接口不能用于管理 VF。
PCI_VIRTUALIZATION_INTERFACE 结构是 INTERFACE 结构的扩展。
驱动程序通过将IRP_MN_QUERY_INTERFACE I/O 请求数据包 (IRP) 发送到其 InterfaceType 设置为 GUID_PCI_VIRTUALIZATION_INTERFACE 的总线驱动程序来获取指向 PCI_VIRTUALIZATION_INTERFACE 结构的指针。
要求
要求 | 值 |
---|---|
最低受支持的服务器 | Windows Server 2012 |
标头 | wdm.h (包括 Wdm.h) |