共用方式為


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

另請參閱

PCI_VIRTUALIZATION_INTERFACE