共用方式為


NdisMGetVirtualFunctionLocation 函式 (ndis.h)

迷你埠驅動程式會呼叫 NdisMGetVirtualFunctionLocation 函式,以在 PCI 總線上查詢 PCI Express (PCIe) Virtual Function (VF) 的裝置位置。 驅動程式會使用裝置位置來建構 VF 的 PCIe 要求者識別碼 (RID) 。

注意NdisMGetVirtualFunctionLocation 只能由網路適配器 PCIe 實體函式的迷你埠驅動程式呼叫, (PF) 。
 

語法

void NdisMGetVirtualFunctionLocation(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PUSHORT                SegmentNumber,
  [out] PUCHAR                 BusNumber,
  [out] PUCHAR                 FunctionNumber
);

參數

[in] NdisMiniportHandle

NDIS 傳遞給 MiniportInitializeExMiniportAdapterHandle 參數的網路適配器句柄。

[in] VFId

傳回裝置位置之 VF 的標識碼。

[out] SegmentNumber

呼叫端提供的變數指標,此變數會傳回目前PCI區段號碼的USHORT值。 這個值會指定連接裝置的PCI總線群組。

[out] BusNumber

呼叫端提供的變數指標,此變數會在此變數中傳回UCHAR值。 這個值會指定裝置所連接的目前PCI總線號碼。

[out] FunctionNumber

呼叫端提供的變數指標,此變數會在此變數中傳回UCHAR值。 這個值會指定裝置上邏輯裝置的函式編號。

傳回值

備註

當它處理 OID_NIC_SWITCH_ALLOCATE_VF的方法要求時,PF 迷你埠驅動程序必須針對驅動程式已成功在網路適配器上配置的 VF 傳回 RID。 驅動程式會以下欄取方式產生 RID:

  1. 驅動程式會先呼叫 NdisMGetVirtualFunctionLocation 函式,以取得 VF 的總線相關位置資訊。
  2. 驅動程式接著會使用總線相關位置資訊呼叫 NDIS_MAKE_RID 宏,以產生 RID。

如需如何配置 VF 資源的詳細資訊,請參閱 虛擬函式初始化順序

如需 SR-IOV 介面的詳細資訊,請參閱 單一根目錄 I/O 虛擬化概觀 (SR-IOV)

與虛擬總線驅動程序互動

如果獨立硬體廠商 (IHV) 在其 SR-IOV 驅動程式套件中提供虛擬總線驅動程式 (VBD) ,則其迷你埠驅動程式不得呼叫 NdisMGetVirtualFunctionLocation。 相反地,驅動程式必須透過私人通道與 VBD 介面,並要求 VBD 呼叫 GetLocation。 此函式會從基礎PCI總線驅動程式支援的 GUID_PCI_VIRTUALIZATION_INTERFACE 介面公開。

在 Hyper-V 父分割區管理作業系統中執行的 VBD 可以藉由對 PCI 總線上的 PDO (PDO) 發出IRP_MN_QUERY_INTERFACE要求來查詢GUID_PCI_VIRTUALIZATION_INTERFACE介面。 您必須從 IRQL = PASSIVE_LEVEL提出此要求。 在此要求中,驅動程式必須將 InterfaceType 參數設定為 GUID_PCI_VIRTUALIZATION_INTERFACE。

規格需求

需求
最低支援的用戶端 NDIS 6.30 和更新版本中不支援,不支援。
最低支援的伺服器 Windows Server 2012
目標平台 Universal
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL PASSIVE_LEVEL

另請參閱

GUID_PCI_VIRTUALIZATION_INTERFACE

GetLocation

NDIS_MAKE_RID

OID_NIC_SWITCH_ALLOCATE_VF