共用方式為


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

另請參閱

PCI_VIRTUALIZATION_INTERFACE