共用方式為


OID_SRIOV_READ_VF_CONFIG_SPACE

過度處理驅動程式會發出物件識別碼, (OID) 方法要求 OID_SRIOV_READ_VF_CONFIG_SPACE,以讀取網路介面卡上所指定 PCIe 虛擬函式 (VF) 之 PCI Express (PCIe) 設定空間的資料。

從這個 OID 方法要求成功傳回之後,NDIS_OID_REQUEST結構的InformationBuffer成員會包含呼叫端配置緩衝區的指標。 此緩衝區的格式設定為包含下列專案:

備註

VF 迷你埠驅動程式會在 Hyper-V 子分割的客體作業系統中執行。 因此,VF 迷你埠驅動程式無法直接存取硬體資源,例如 VF 的 PCI 設定空間。 只有 PCIe 實體函式的迷你埠驅動程式 (PF) 才能存取 VF 的 PCI 設定空間。 PF 迷你埠驅動程式會在 Hyper-V 父分割區的管理作業系統中執行,並具有 VF 資源的特殊許可權存取權。

為了讀取 VF PCI 設定空間,在管理作業系統中執行的過度驅動程式會發出 OID 方法要求,OID_SRIOV_READ_VF_CONFIG_SPACE至 PF 迷你埠驅動程式。 PF 迷你埠驅動程式需要此 OID 方法要求,這些驅動程式支援單一根目錄 I/O 虛擬化 (SR-IOV) 介面。

例如,當 VF 迷你埠驅動程式呼叫 NdisMGetBusData 從其 VF PCI 設定空間讀取時,在管理作業系統中執行的虛擬化堆疊會發出 OID_SRIOV_READ_VF_CONFIG_SPACE 的 OID 方法要求。

當它處理OID_SRIOV_READ_VF_CONFIG_SPACE的 OID 方法要求時,PF 迷你埠驅動程式必須遵循下列指導方針:

  • 迷你埠驅動程式必須確認由 NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS結構VFId 成員指定的 VF,具有先前已配置的資源。 迷你埠驅動程式會透過 OID_NIC_SWITCH_ALLOCATE_VF的 OID 方法要求,為 VF 配置資源。 如果尚未配置指定 VF 的資源,驅動程式必須失敗 OID 要求。

  • 迷你埠驅動程式必須確認NDIS_OID_REQUEST) 結構的InformationBuffer成員所參考的緩衝區 (夠大,足以傳回所要求的 PCIe 設定空間資料。 如果這不是 true,則驅動程式必須失敗 OID 要求。

  • 迷你埠驅動程式通常會呼叫 NdisMGetVirtualFunctionBusData 來查詢所要求的 PCIe 設定空間。 不過,迷你埠驅動程式也可以傳回驅動程式從先前 PCIe 設定空間讀取或寫入作業快取的 VF 的 PCIe 設定空間資料。

    注意 如果獨立硬體廠商 (IHV) 提供虛擬匯流排驅動程式, (VBD) 作為其 SR-IOV 驅動程式套件的一部分,則其迷你埠驅動程式不得呼叫 NdisMGetVirtualFunctionBusData。 相反地,驅動程式必須透過私人通道與 VBD 介面,並要求 VBD 呼叫 ReadVfConfigBlock。 此函式會從基礎虛擬 PCI () 匯流排驅動程式支援的 GUID_VPCI_INTERFACE_STANDARD 介面公開。

如果 PF 迷你埠驅動程式可以順利完成 OID 要求,驅動程式必須將要求的 PCI 設定空間資料複製到NDIS_OID_REQUEST結構InformationBuffer成員所參考的緩衝區。 驅動程式會將資料複製到緩衝區,該緩衝區位於NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS結構之BufferOffset成員所指定的位移。

如需詳細資訊,請參閱 查詢虛擬函式的 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。NDIS_OID_REQUEST 結構中的 BytesNeeded成員,到所需的緩衝區大小下限。

NDIS_STATUS_FAILURE

要求因其他原因而失敗。

規格需求

版本

NDIS 6.30 和更新版本支援。

標頭

Ntddndis.h (包含 Ndis.h)

另請參閱


GUID_VPCI_INTERFACE_STANDARD

NDIS_OID_REQUEST

NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS

NdisMGetBusData

NdisMGetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

ReadVfConfigBlock