NdisMQueryProbedBars 函式 (ndis.h)
迷你埠驅動程式會呼叫 NdisMQueryProbedBars 函式,以取得網路適配器 PCI Express (PCIe) 基地址緩存器 (BAR) 的值。 此函式會傳回在PCI總線驅動程式所執行查詢之後,網路配接器所報告的BAR值。 此查詢會決定網路適配器所需的記憶體或I/O位址空間。
語法
NDIS_STATUS NdisMQueryProbedBars(
[in] NDIS_HANDLE NdisMiniportHandle,
[out] PULONG BaseRegisterValues
);
參數
[in] NdisMiniportHandle
NDIS 傳遞給 MiniportInitializeEx 之 MiniportAdapterHandle 參數的網路適配器句柄。
[out] BaseRegisterValues
ULONG 值陣列的指標。 數位包含 PCIe 網路適配器每個 BAR 的 ULONG 值。
傳回值
NdisMQueryProbedBars 可以傳回下列其中一個狀態值。
傳回碼 | Description |
---|---|
|
查詢作業已順利完成。 |
|
查詢作業失敗。 |
備註
在 Hyper-V 父磁碟分區的管理作業系統中執行的 PCI 總線驅動程式會查詢網路適配器的每個 PCI 基地址快存器 (BAR) 的記憶體或 I/O 位址空間需求。 PCI 總線驅動程式會在第一次偵測總線上的配接器時執行此查詢。
透過此 PCI BAR 查詢,PCI 總線驅動程式會決定下列各項:
- 網路適配器是否支援PCI BAR。
- 如果支援 BAR,則 BAR 需要多少記憶體或 I/O 位址空間。
由於PCI設定空間的存取權是特殊許可權的作業,因此只能由在 Hyper-V 父分割區之管理作業系統中執行的元件執行。 當 JSONI 總線驅動程式查詢 PCI BAR 時,NDIS 會向 PF 迷你埠驅動程式發出物件標識碼 (OID) 查詢 OID_SRIOV_PROBED_BARS 要求。 此 OID 查詢要求所傳回的結果會轉送至 DHCPI 總線驅動程式,以便判斷 VF 網路適配器需要多少記憶體位址空間。
在處理此 OID 要求期間,驅動程式可以呼叫 NdisMQueryProbedBars ,以取得 PCI 驅動程式所執行之 BAR 查詢所傳回的值。
如需如何查詢 VF PCI BAR 快取器的詳細資訊,請參閱 查詢虛擬函式的 PCI 基地址快取器。
如需 SR-IOV 介面的詳細資訊,請參閱 單一根目錄 I/O 虛擬化概觀 (SR-IOV) 。
與虛擬總線驅動程序互動
如果獨立硬體廠商 (IHV) 提供虛擬總線驅動程式, (VBD) 作為其 SR-IOV 驅動程式套件的一部分,則其迷你埠驅動程式不得呼叫 NdisMQueryProbedBars。 相反地,驅動程式必須透過私人通道與 VBD 介面,並要求 VBD 呼叫 GetVirtualFunctionProbedBars。 此函式會從基礎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 和更新版本支援。 |
目標平台 | Universal |
標頭 | ndis.h (包含 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
另請參閱