共用方式為


NdisMQueryProbedBars 函式 (ndis.h)

迷你埠驅動程式會呼叫 NdisMQueryProbedBars 函式,以取得網路適配器 PCI Express (PCIe) 基地址緩存器 (BAR) 的值。 此函式會傳回網路適配器在PCI總線驅動程式執行的查詢之後所報告的BAR值。 此查詢會決定網路適配器所需的記憶體或I/O位址空間。

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

語法

NDIS_STATUS NdisMQueryProbedBars(
  [in]  NDIS_HANDLE NdisMiniportHandle,
  [out] PULONG      BaseRegisterValues
);

參數

[in] NdisMiniportHandle

NDIS 傳遞至 MiniportAdapterHandleMiniportInitializeEx的網路適配器句柄。

[out] BaseRegisterValues

ULONG 值陣列的指標。 數位包含 PCIe 網路適配器每個 BAR 的 ULONG 值。

NoteNdisMQueryProbedBars 會傳回此陣列中最多PCI_TYPE0_ADDRESSES個值。
 

傳回值

NdisMQueryProbedBars 可以傳回下列其中一個狀態值。

傳回碼 描述
NDIS_STATUS_SUCCESS
查詢作業已順利完成。
NDIS_STATUS_FAILURE
查詢作業失敗。

言論

PCI 總線驅動程式會在 Hyper-V 父磁碟分區的管理作系統中執行,會查詢網路適配器之每個PCI基位址緩存器(BAR)的記憶體或I/O位址空間需求。 PCI 總線驅動程式會在第一次偵測總線上的配接器時執行此查詢。

透過此 PCI BAR 查詢,PCI 總線驅動程式會決定下列各項:

  • 網路適配器是否支援PCI BAR。
  • 如果支援 BAR,BAR 需要多少記憶體或 I/O 位址空間。
虛擬 PCI (IMFI) 總線驅動程式會在 Hyper-V 子分割的客體作系統中執行。 當PCI Express (PCIe) 虛擬函式 (VF) 連結至子分割區時,則 DHCPI 總線驅動程式會公開 VF 的虛擬網路適配器(VF 網路適配器)。 在這樣做之前,DHCPI 總線驅動程式必須執行PCI BAR查詢,以判斷VF網路配接器所需的記憶體或地址空間。

因為PCI設定空間的存取權是特殊許可權作業,所以只能由在 Hyper-V 父分割區之管理作系統中執行的元件執行。 當VPI總線驅動程序查詢PCI BAR時,NDIS會向PF迷你埠驅動程序發出 OID_SRIOV_PROBED_BARS 的物件識別碼 (OID) 查詢要求。 此 OID 查詢要求所傳回的結果會轉送至 DHCPI 總線驅動程式,以便判斷 VF 網路適配器需要多少記憶體位址空間。

在處理此 OID 要求期間,驅動程式可以呼叫 NdisMQueryProbedBars,以取得PCI驅動程式所執行之 BAR 查詢傳回的值。

如需如何查詢 VF PCI BAR 快取器的詳細資訊,請參閱 查詢虛擬函式的 PCI 基地址快存器

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

與虛擬總線驅動程式的介面

如果獨立硬體廠商 (IHV) 在其 SR-IOV 驅動程式套件中提供虛擬總線驅動程式 (VBD),則其迷你埠驅動程式不得呼叫 NdisMQueryProbedBars。 相反地,驅動程式必須透過私人通道與 VBD 介面,並要求 VBD 呼叫 GetVirtualFunctionProbedBars。 此函式會從基礎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 和更新版本支援。
目標平臺 普遍
標頭 ndis.h (包括 Ndis.h)
連結庫 Ndis.lib
IRQL PASSIVE_LEVEL

另請參閱

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionProbedBars

OID_SRIOV_PROBED_BARS