NdisMGetVirtualFunctionLocation 函式 (ndis.h)
迷你埠驅動程式會呼叫 NdisMGetVirtualFunctionLocation 函式來查詢 PCI Express (PCIe) 虛擬函式 (VF) 在 PCI 總線上的裝置位置。 驅動程式會使用裝置位置來建構 VF 的 PCIe 要求者識別碼 (RID)。
語法
void NdisMGetVirtualFunctionLocation(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] NDIS_SRIOV_FUNCTION_ID VFId,
[out] PUSHORT SegmentNumber,
[out] PUCHAR BusNumber,
[out] PUCHAR FunctionNumber
);
參數
[in] NdisMiniportHandle
NDIS 傳遞至 MiniportAdapterHandleMiniportInitializeEx的網路適配器句柄。
[in] VFId
傳回裝置位置之 VF 的標識碼。
[out] SegmentNumber
呼叫端提供的變數指標,在此變數中,此函式會傳回目前PCI區段號碼的USHORT值。 這個值會指定連接裝置的PCI總線群組。
[out] BusNumber
呼叫端提供的變數指標,在此變數中,此函式會傳回UCHAR值。 這個值會指定裝置連接的目前PCI總線號碼。
[out] FunctionNumber
呼叫端提供的變數指標,在此變數中,此函式會傳回UCHAR值。 這個值會指定裝置上邏輯裝置的函式編號。
傳回值
沒有
言論
當它處理 OID_NIC_SWITCH_ALLOCATE_VF的方法要求時,PF 迷你埠驅動程序必須傳回驅動程式在網路適配器上成功配置之 VF 的 RID。 驅動程式會以下欄取方式產生 RID:
- 驅動程式會先呼叫 NdisMGetVirtualFunctionLocation 函式,以取得 VF 的總線相關位置資訊。
- 然後,驅動程式會使用總線相關的位置資訊呼叫 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) 發出 IRP_MN_QUERY_INTERFACE 要求,以查詢 GUID_PCI_VIRTUALIZATION_INTERFACE 介面。 必須從 IRQL = PASSIVE_LEVEL提出此要求。 在此要求中,驅動程式必須將 InterfaceType 參數設定為 GUID_PCI_VIRTUALIZATION_INTERFACE。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 不支援,在 NDIS 6.30 和更新版本中支援。 |
支援的最低伺服器 | Windows Server 2012 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
另請參閱