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 傳遞至 MiniportAdapterHandleMiniportInitializeEx的網路適配器句柄。
[out] BaseRegisterValues
ULONG 值陣列的指標。 數位包含 PCIe 網路適配器每個 BAR 的 ULONG 值。
傳回值
NdisMQueryProbedBars 可以傳回下列其中一個狀態值。
傳回碼 | 描述 |
---|---|
|
查詢作業已順利完成。 |
|
查詢作業失敗。 |
言論
PCI 總線驅動程式會在 Hyper-V 父磁碟分區的管理作系統中執行,會查詢網路適配器之每個PCI基位址緩存器(BAR)的記憶體或I/O位址空間需求。 PCI 總線驅動程式會在第一次偵測總線上的配接器時執行此查詢。
透過此 PCI BAR 查詢,PCI 總線驅動程式會決定下列各項:
- 網路適配器是否支援PCI BAR。
- 如果支援 BAR,BAR 需要多少記憶體或 I/O 位址空間。
因為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 |
另請參閱