共用方式為


OID_SRIOV_WRITE_VF_CONFIG_SPACE

過度配置驅動程式會發出物件識別碼 (OID) 組 OID_SRIOV_WRITE_VF_CONFIG_SPACE要求,以將資料寫入網路介面卡上指定 PCIe 虛擬函式 (VF) 的 PCI Express (PCIe) 組態空間。

過度處理驅動程式會將此 OID 設定要求傳送給網路介面卡 PCIe 實體函式的迷你埠驅動程式, (PF) 。 支援單一根目錄 I/O 虛擬化 (SR-IOV) 介面的 PF 迷你埠驅動程式需要這個 OID 方法要求。

NDIS_OID_REQUEST結構的InformationBuffer成員包含呼叫端配置的緩衝區指標。 此緩衝區的格式設定為包含下列內容:

備註

VF 迷你埠驅動程式會在 Hyper-V 子分割的客體作業系統中執行。 因此,VF 迷你埠驅動程式無法直接存取硬體資源,例如 VF 的 PCI 設定空間。 只有在 Hyper-V 父分割區管理作業系統中執行的 PF 迷你埠驅動程式可以存取 VF 的 PCI 設定空間。

當 VF 迷你埠驅動程式呼叫 NdisMSetBusData 以寫入其 PCI 組態空間時,過度配置驅動程式,例如虛擬化堆疊,發出 OID_SRIOV_WRITE_VF_CONFIG_SPACE 的 OID 集合要求。

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

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

    如果未配置指定 VF 的資源,驅動程式必須失敗 OID 要求。

  • PF 迷你埠驅動程式會呼叫 NdisMSetVirtualFunctionBusData ,以寫入要求的 PCI 設定空間。 不過,PF 迷你埠驅動程式也可以傳回驅動程式從先前 PCI 組態空間讀取或寫入作業快取的 VF 的 PCI 設定空間資料。

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

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

如需詳細資訊,請參閱 設定虛擬函式的 PCI 組態資料

傳回狀態碼

PF 迷你埠驅動程式會針對 OID_SRIOV_WRITE_VF_CONFIG_SPACE 的 OID 集合要求,傳回下列其中一個狀態碼。

狀態碼 描述

NDIS_STATUS_SUCCESS

OID 要求已成功完成。

NDIS_STATUS_NOT_SUPPORTED

PF 迷你埠驅動程式不支援單一根目錄 I/O 虛擬化 (SR-IOV) 介面,或未啟用介面。

NDIS_STATUS_INVALID_PARAMETER

NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS結構的一或多個成員具有不正確值。

NDIS_STATUS_INVALID_LENGTH

資訊緩衝區太短。 NDIS 會設定DATA。SET_INFORMATION。NDIS_OID_REQUEST 結構中的 BytesNeeded成員,以達到所需的最小緩衝區大小。

NDIS_STATUS_FAILURE

要求因其他原因而失敗。

規格需求

版本

NDIS 6.30 和更新版本支援。

標頭

Ntddndis.h (包括 Ndis.h)

另請參閱


GUID_VPCI_INTERFACE_STANDARD

NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS

NdisMSetBusData

NdisMSetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE

SetVirtualFunctionData