OID_SRIOV_PROBED_BARS
NDIS 發出物件識別碼 (OID) 查詢要求 OID_SRIOV_PROBED_BARS,以取得網路介面卡的 PCI Express (PCIe) 基底位址暫存器 (BAR) 的值。 此函式會傳回在 PCI 匯流排驅動程式執行之查詢之後,網路介面卡所報告的 BAR 值。 此查詢會決定網路介面卡所需的記憶體或 I/O 位址空間。
NDIS 對網路介面卡 PCIe 實體函式 (PF) 的迷你埠驅動程式發出OID_SRIOV_PROBED_BARS OID 查詢要求。 支援單一根 I/O 虛擬化 (SR-IOV) 介面的 PF 迷你埠驅動程式需要此 OID 查詢要求。
NDIS_OID_REQUEST結構的InformationBuffer成員包含緩衝區的指標。 此緩衝區的格式設定為包含下列內容:
包含網路介面卡之 PCI BAR 讀取作業之參數 的NDIS_SRIOV_PROBED_BARS_INFO 結構。
PCIe 網路介面卡每個 BAR 的 ULONG 值陣列。 此陣列內的元素數目上限為 PCI_TYPE0_ADDRESSES。
備註
在 Hyper-V 父分割的管理作業系統中執行的 PCI 匯流排驅動程式,會查詢網路介面卡) 每個 PCI 基底位址 (暫存器的記憶體或 I/O 位址空間需求。 PCI 匯流排驅動程式會在第一次偵測到匯流排上的配接器時執行此查詢。
透過此 PCI BAR 查詢,PCI 匯流排驅動程式會決定下列各項:
網路介面卡是否支援 PCI BAR。
如果支援 BAR,則 BAR 需要多少記憶體或 I/O 位址空間。
虛擬 PCI () 匯流排驅動程式會在 Hyper-V 子分割的客體作業系統中執行。 當 PCI Express (PCIe) 虛擬函式 (VF) 連結至子分割區時,則 (VF 網路介面卡) 的 DHCPI 匯流排驅動程式將會公開 VF (網路介面卡的虛擬網路介面卡。 在這樣做之前,DHCPI 匯流排驅動程式必須執行 PCI BAR 查詢,以判斷 VF 網路介面卡所需的記憶體或位址空間。
因為 PCI 設定空間的存取權是特殊許可權的作業,所以只能由在 Hyper-V 父資料分割的管理作業系統中執行的元件執行。 當 JSONI 匯流排驅動程式查詢 PCI BAR 時,NDIS 會向 PF 迷你埠驅動程式發出OID_SRIOV_PROBED_BARS的 OID 查詢要求。 此 OID 查詢要求傳回的結果會轉送至 DHCPI 匯流排驅動程式,以便判斷 VF 網路介面卡需要多少記憶體位址空間。
注意 OID_SRIOV_PROBED_BARS的 OID 要求只能由 NDIS 發出。 OID 要求不得由過度配置驅動程式發出,例如篩選驅動程式的通訊協定。
OID_SRIOV_PROBED_BARS查詢要求包含 NDIS_SRIOV_PROBED_BARS_INFO 結構。 當 PF 迷你埠驅動程式處理此 OID 時,驅動程式必須傳回NDIS_SRIOV_PROBED_BARS_INFO結構之 BaseRegisterValuesOffset成員所參考陣列內的 PCI BAR 值。 對於陣列內的每個位移,PF 迷你埠驅動程式必須將陣列元素設定為 BAR 的 ULONG 值,且在實體配接器的 PCI 設定空間內相同位移。
驅動程式傳回的每個 BAR 值都必須與在管理作業系統中執行的 PCI 驅動程式所執行的 PCI BAR 查詢相同值。 PF 迷你埠驅動程式可以呼叫 NdisMQueryProbedBars 來判斷此資訊。
如需 PCI 裝置之 BAR 的詳細資訊,請參閱 PCI 本機匯流排規格。
如需如何查詢 VF 之 PCI BAR 暫存器的詳細資訊,請參閱 查詢虛擬函式的 PCI 基底位址暫存器。
傳回狀態碼
PF 迷你埠驅動程式會針對查詢要求傳回下列其中一個狀態碼OID_SRIOV_PROBED_BARS:
狀態碼 | 描述 |
---|---|
NDIS_STATUS_SUCCESS |
OID 要求已成功完成。 |
NDIS_STATUS_NOT_SUPPORTED |
PF 迷你埠驅動程式不支援單一根目錄 I/O 虛擬化 (SR-IOV) 介面,或未啟用介面。 |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_SRIOV_PROBED_BARS_INFO結構的一或多個成員具有不正確值。 |
NDIS_STATUS_INVALID_LENGTH |
資訊緩衝區小於 (sizeof (NDIS_SRIOV_PROBED_BARS_INFO) + PCI_TYPE0_ADDRESSES) 。 PF 迷你埠驅動程式必須設定DATA。QUERY_INFORMATION。NDIS_OID_REQUEST 結構中的 BytesNeeded成員,以達到所需的最小緩衝區大小。 |
NDIS_STATUS_FAILURE |
要求因其他原因而失敗。 |
規格需求
版本 |
NDIS 6.30 和更新版本支援。 |
標頭 |
Ntddndis.h (包括 Ndis.h) |