OID_SRIOV_READ_VF_CONFIG_BLOCK

过度的驱动程序发出对象标识符 (OID) 方法请求,OID_SRIOV_READ_VF_CONFIG_BLOCK从指定的 PCI Express (PCIe) 虚拟函数 (VF) 配置块读取数据。

过度分配驱动程序向网络适配器的 PCIe 物理功能(PF)的微型端口驱动程序发出此 OID 方法请求。 支持单根 I/O 虚拟化(SR-IOV)接口的 PF 微型端口驱动程序需要此 OID 方法请求。

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

  • 一个 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 结构,该结构包含从此结构的开头到缓冲区中包含从 VF 配置块读取的数据的位置(以字节为单位)。

  • 要从指定的 VF 配置块中读取数据的其他缓冲区空间。

言论

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

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

在发出OID_SRIOV_READ_VF_CONFIG_BLOCK的 OID 方法请求之前,过度的驱动程序必须通过以下方式设置 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 结构的成员:

  • VFId 成员设置为要从中读取信息的 VF 的标识符。

  • BlockId 成员设置为要从中读取信息的 VF 配置块的标识符。

  • Length 成员设置为要从配置块读取的字节数。

  • BufferOffset 成员设置为缓冲区内的偏移量(由 InformationBuffer 成员引用),其中包含从指定的 VF 配置块读取的数据。 此偏移量以 NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 结构开头的字节单位指定。

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

有关单根 I/O 虚拟化(SR-IOV)接口中的反向通道通信的详细信息,请参阅 SR-IOV PF/VF 反向通道通信

返回状态代码

PF 微型端口驱动程序为OID_SRIOV_READ_VF_CONFIG_BLOCK的方法请求返回以下状态代码之一。

状态代码 描述

NDIS_STATUS_SUCCESS

OID 请求已成功完成。

NDIS_STATUS_NOT_SUPPORTED

微型端口驱动程序要么不支持单个根 I/O 虚拟化(SR-IOV)接口,要么未启用该接口。

NDIS_STATUS_INVALID_PARAMETER

NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS 结构的一个或多个成员具有无效值。

NDIS_STATUS_INVALID_LENGTH

信息缓冲区太短。 微型端口驱动程序必须设置 数据。METHOD_INFORMATION。NDIS_OID_REQUEST 结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。

NDIS_STATUS_FAILURE

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

要求

版本

NDIS 6.30 及更高版本中受支持。

页眉

Ntddndis.h (包括 Ndis.h)

另请参阅


NDIS_OID_REQUEST

NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE