PCI_VIRTUALIZATION_INTERFACE 結構 (wdm.h)
PCI_VIRTUALIZATION_INTERFACE 結構可讓驅動程式管理及設定PCI Express (PCIe) 虛擬函式 (VF) 的設定空間。 VM 會由支援單一根目錄 I/O 虛擬化的裝置在 PCI 總線上公開, (SR-IOV) 介面。
此結構描述 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 總線驅動程式查詢之後,從 PCIe 基地址緩存器 (BAR) 讀取的內容。 PCI 驅動程式會執行此查詢來判斷裝置所需的記憶體或 I/O 位址空間。
備註
對於支援 SR-IOV 介面的裝置,驅動程式偶爾必須存取和管理裝置 VM 的 PCIe 設定空間。 驅動程式會從 GUID_PCI_VIRTUALIZATION_INTERFACE 介面呼叫例程,以存取裝置上 VFs 的 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) |