PCI_VIRTUALIZATION_INTERFACE結構 (wdm.h)
PCI_VIRTUALIZATION_INTERFACE 結構可讓驅動程式管理和設定虛擬函式 (VF) 的PCI Express (PCIe) 組態空間。 支援單一根 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介面呼叫例程,以存取裝置上 VF 的 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) |