OID_SRIOV_READ_VF_CONFIG_SPACE
過度配置驅動程式會發出OID_SRIOV_READ_VF_CONFIG_SPACE的物件識別碼 (OID) 方法要求,以從網路適配器上指定PCIe虛擬函式 (VF) 的PCI Express (PCIe) 設定空間讀取數據。
從這個 OID 方法要求成功傳回之後,InformationBufferNDIS_OID_REQUEST 結構的成員包含呼叫端配置的緩衝區指標。 此緩衝區的格式設定為包含下列專案:
NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS 結構,其中包含 VF PCI 組態空間讀取作業的參數。
要從PCI組態空間讀取數據的其他緩衝區空間。
言論
VF 迷你埠驅動程式會在 Hyper-V 子分割的客體作系統中執行。 因此,VF 迷你埠驅動程式無法直接存取硬體資源,例如 VF 的 PCI 設定空間。 只有 PCIe 實體函式的迷你埠驅動程式 (PF) 可以存取 VF 的 PCI 設定空間。 PF 迷你埠驅動程式會在 Hyper-V 父磁碟分區的管理作系統中執行,並具有 VF 資源的特殊許可權存取權。
為了讀取 VF PCI 設定空間,在管理作系統中執行的過度驅動程式會發出 OID 方法要求,OID_SRIOV_READ_VF_CONFIG_SPACE PF 迷你埠驅動程式。 支援單一根 I/O 虛擬化 (SR-IOV) 介面的 PF 迷你埠驅動程式需要此 OID 方法要求。
例如,當 VF 迷你埠驅動程式呼叫 NdisMGetBusData 從 VF PCI 組態空間讀取時,在管理作系統中執行的虛擬化堆疊會發出 OID_SRIOV_READ_VF_CONFIG_SPACE 的 OID 方法要求。
當它處理 OID_SRIOV_READ_VF_CONFIG_SPACE 的 OID 方法要求時,PF 迷你埠驅動程式必須遵循下列指導方針:
迷你埠驅動程序必須確認 VFId 所指定的 VF,NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS 結構的成員具有先前已配置的資源。 迷你埠驅動程式會透過 OID_NIC_SWITCH_ALLOCATE_VF的 OID 方法要求,為 VF 配置資源。 如果未配置指定 VF 的資源,驅動程式必須失敗 OID 要求。
迷你埠驅動程式必須確認緩衝區(由 InformationBuffer 成員所參考的 NDIS_OID_REQUEST 結構成員),足以傳回要求的PCIe組態空間數據。 如果這不是 true,驅動程式必須失敗 OID 要求。
迷你埠驅動程式通常會呼叫 NdisMGetVirtualFunctionBusData 來查詢要求的PCIe組態空間。 不過,迷你埠驅動程式也可以傳回驅動程式從PCIe組態空間先前讀取或寫入作業快取之 VF 的PCIe 設定空間數據。
注意 如果獨立硬體廠商 (IHV) 在其 SR-IOV 驅動程式套件中提供虛擬總線驅動程式 (VBD),則其迷你埠驅動程式不得呼叫 NdisMGetVirtualFunctionBusData。 相反地,驅動程式必須透過私人通道與 VBD 介面,並要求 VBD 呼叫 ReadVfConfigBlock。 此函式會從基礎虛擬PCI (IMFI) 總線驅動程式支援的 GUID_VPCI_INTERFACE_STANDARD 介面公開。
如果 PF 迷你埠驅動程式可以順利完成 OID 要求,驅動程式必須將要求的 PCI 組態空間數據複製到 InformationBuffer 所參考的緩衝區,NDIS_OID_REQUEST 結構的成員。 驅動程式會將數據複製到緩衝區,位於 BufferOff set 所指定位移 NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS 結構的成員。
如需詳細資訊,請參閱 查詢虛擬函式的PCI組態資料。
傳回狀態代碼
PF 迷你埠驅動程式會針對 OID_SRIOV_READ_VF_CONFIG_SPACE 的 OID 方法要求傳回下列其中一個狀態代碼。
狀態代碼 | 描述 |
---|---|
NDIS_STATUS_SUCCESS |
OID 要求已順利完成。 |
NDIS_STATUS_NOT_SUPPORTED |
迷你埠驅動程式不支援單一根目錄 I/O 虛擬化 (SR-IOV) 介面,或未啟用使用 介面。 |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS 結構的一或多個成員具有無效的值。 |
NDIS_STATUS_INVALID_LENGTH |
信息緩衝區太短。 迷你埠驅動程序必須設定 DATA。METHOD_INFORMATION。BytesNeededNDIS_OID_REQUEST 結構中的成員,以所需的緩衝區大小下限。 |
NDIS_STATUS_FAILURE |
要求因其他原因而失敗。 |
要求
版本 |
NDIS 6.30 和更新版本支援。 |
頁眉 |
Ntddndis.h (包括 Ndis.h) |
另請參閱
NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS