OID_SRIOV_WRITE_VF_CONFIG_SPACE

超载驱动程序 (OID 发出对象标识符,) 组请求OID_SRIOV_WRITE_VF_CONFIG_SPACE将数据写入 PCI Express (PCIe) 配置空间的指定 PCIe 虚拟函数 (VF) 网络适配器上。

过度配置驱动程序向网络适配器的 PCIe 物理功能 (PF) 的微型端口驱动程序发出此 OID 集请求。 支持单根 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 (VPCI ) 总线驱动程序支持的 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 设置数据。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