GET_VIRTUAL_DEVICE_LOCATION回呼函式 (wdm.h)
GetLocation 例程會在PCI總線上傳回PCI Express (PCIe) 虛擬函式 (VF) 的裝置位置。 支援單一根 I/O 虛擬化 (SR-IOV) 介面的裝置,可以在PCI總線上公開一或多個 VF。
語法
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 結構之 Context 成員所傳遞的值。
[in] VirtualFunction
以零起始的值,指定傳回裝置位置之裝置上的 VF
[out] SegmentNumber
呼叫端提供的變數指標,在此變數中,這個例程會傳回目前PCI區段號碼的UINT16值。 這個值會指定連接裝置的PCI總線群組。
[out] BusNumber
呼叫端提供的變數指標,在此變數中,這個例程會傳回 UINT8 值。 這個值會指定裝置連接的目前PCI總線號碼。
[out] FunctionNumber
呼叫端提供的變數指標,在此變數中,這個例程會傳回 UINT8 值。 這個值包含PCI總線上指定VF的函式編號。
傳回值
GetLocation 例程會傳回下列其中一個 NTSTATUS 值:
傳回碼 | 描述 |
---|---|
STATUS_SUCCESS | 作業已順利完成。 |
STATUS_INVALID_PARAMETER | VirtualFunction 參數大於裝置 SR-IOV 擴充功能結構 成員 TotalVF 的值。 |
言論
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 |