GET_VIRTUAL_DEVICE_LOCATION回呼函式 (wdm.h)
GetLocation 例程會傳回 PCI Express (PCIe) 虛擬函式的裝置位置, (PCI 總線上的 VF) 。 支援單一根目錄 I/O 虛擬化 (SR-IOV) 介面的裝置可以在 PCI 總線上公開一或多個 VM。
語法
GET_VIRTUAL_DEVICE_LOCATION GetVirtualDeviceLocation;
NTSTATUS GetVirtualDeviceLocation(
[in, out] PVOID Context,
[in] USHORT VirtualFunction,
[out] PUINT16 SegmentNumber,
[out] PUINT8 BusNumber,
[out] PUINT8 FunctionNumber
)
{...}
參數
[in, out] Context
介面特定內容資訊的指標。 呼叫端會傳遞值,這個值會當做介面之PCI_VIRTUALIZATION_INTERFACE結構的內容成員傳遞。
[in] VirtualFunction
以零起始的值,指定傳回裝置位置之裝置上的 VF
[out] SegmentNumber
呼叫端提供的變數指標,此例程會傳回目前PCI區段號碼的UINT16值。 這個值會指定連接裝置的PCI總線群組。
[out] BusNumber
呼叫端提供的變數指標,這個例程會傳回 UINT8 值。 這個值會指定裝置所連接的目前PCI總線號碼。
[out] FunctionNumber
呼叫端提供的變數指標,這個例程會傳回 UINT8 值。 這個值包含PCI總線上所指定VF的函式編號。
傳回值
GetLocation 例程會傳回下列其中一個 NTSTATUS 值:
傳回碼 | Description |
---|---|
STATUS_SUCCESS | 作業已成功完成。 |
STATUS_INVALID_PARAMETER | VirtualFunction 參數大於裝置 SR-IOV 擴充功能結構之 TotalVFs 成員的值。 |
備註
GetLocation 例程會傳回PCIe階層中 VF 的目前裝置位置。 對於使用 I/O 記憶體管理單位的虛擬化系統, (IOMMU) 將流量路由傳送至裝置或從裝置傳送流量,這是必要的資訊。
從 呼叫 GetLocation 例程成功傳回時, FunctionNumber 參數會包含值,代表 PCI 總線上指定 VF 的函式編號。 此值是以 PCI Express 3.0 規格的 [替代路由解譯 (ARI) 選項為基礎。 ARI 會將 PCIe 總線視為具有 8 位函式空間的單一裝置,允許在總線上使用 256 個函式。
GetLocation 例程是由 GUID_PCI_VIRTUALIZATION_INTERFACE 介面所提供。
VF 所在的PCI總線號碼可以變更。 不建議驅動程式將 VF 的裝置位置儲存在非卷積記憶體中,例如登錄。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Server 2012 和更新版本的 Windows Server 支援。 |
目標平台 | 桌面 |
標頭 | wdm.h (包含 Wdm.h) |
IRQL | PASSIVE_LEVEL |