OID_SRIOV_WRITE_VF_CONFIG_BLOCK

过量驱动程序会 (OID 发出对象标识符) 设置 OID_SRIOV_WRITE_VF_CONFIG_BLOCK 请求,以将数据写入 PCI Express (PCIe) 虚拟函数 (VF) 配置块。

过量驱动程序将此 OID 集请求颁发给网络适配器的 PCIe 物理功能 (PF) 的微型端口驱动程序。 对于支持单个根 i/o 虚拟化 (SR-IOV) 接口的 PF 小型端口驱动程序,需要此 OID 方法请求。

NDIS_OID_REQUEST结构的InformationBuffer成员包含指向调用方分配的缓冲区的指针。 此缓冲区的格式设置为包含以下内容:

  • 一个 NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS 结构,它包含从该结构开始到缓冲区中的某个位置的偏移量(以字节为单位),其中包含写入到 VF 配置块的数据。

  • 要写入指定 VF 配置块的数据的额外缓冲区空间。

注解

VF 配置块用于 backchannel 和 VF 微型端口驱动程序之间的通信。 IHV 可以为微型端口驱动程序定义一个或多个 VF 配置块。 每个 VF 配置块都有一个 IHV 定义的格式、长度和块 ID。

注意 每个 VF 配置块中的数据仅用于 PF 和 VF 微型端口驱动程序。

在发出 OID_SRIOV_WRITE_VF_CONFIG_BLOCK 的 OID 集请求之前,过量驱动程序必须按以下方式设置 NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS 结构的成员:

  • VFId 成员设置为要为其写入信息的 VF 的标识符。

  • 块 id 成员设置为要从中写入信息的配置块的标识符。

  • Length 成员设置为要写入到 VF 配置块中的字节数。

  • BufferOffset 成员设置为缓冲区内的偏移量 (由 InformationBuffer 成员) 引用,该成员包含要从指定的 VF 配置块写入的数据。 此偏移量是从 NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS 结构开始处以字节为单位指定的。

当它处理 OID_SRIOV_WRITE_VF_CONFIG_BLOCK 的 OID 集请求时,PF 微型端口驱动程序必须遵循以下准则:

有关 backchannel) 接口 (的单个根 i/o 虚拟化内的通信的详细信息,请参阅 SR-IOV PF/VF Backchannel 通信

返回状态代码

微型端口驱动程序返回 OID_SRIOV_WRITE_VF_CONFIG_BLOCK 的 OID 集请求的以下状态代码之一:

状态代码 说明

NDIS_STATUS_SUCCESS

OID 请求已成功完成。

NDIS_STATUS_NOT_SUPPORTED

微型端口驱动程序不支持 (SR-IOV) 接口的单个根 i/o 虚拟化,或者未启用使用该接口。

NDIS_STATUS_INVALID_PARAMETER

NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS结构的一个或多个成员的值无效。

NDIS_STATUS_INVALID_LENGTH

信息缓冲区太短。 NDIS 设置 数据。SET_INFORMATION。NDIS_OID_REQUEST 结构中的成员 BytesNeeded 为所需的最小缓冲区大小。

NDIS_STATUS_FAILURE

由于其他原因,请求失败。

要求

版本

在 NDIS 6.30 和更高版本中受支持。

标头

Ntddndis (包含 Ndis .h)

请参阅


NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE