OID_NIC_SWITCH_ENUM_VFS
过度分配的驱动程序或用户模式应用程序发出对象标识符 (OID) OID_NIC_SWITCH_ENUM_VFS的方法请求以获取数组。 数组中的每个元素指定 PCI Express (PCIe) Virtual Function (VF) 的属性,这些属性连接到网络适配器的 NIC 交换机上的 NIC 交换机。
从此 OID 查询请求成功返回后,NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向包含以下内容的缓冲区的指针:
定义数组中元素数的 NDIS_NIC_SWITCH_VF_INFO_ARRAY 结构。
NDIS_NIC_SWITCH_VF_INFO 结构的数组。 其中每个结构都包含有关网络适配器的 NIC 交换机上的单个 VF 的信息。 VF 通过 OID_NIC_SWITCH_ALLOCATE_VF 的 OID 方法请求附加到 NIC 交换机。
注意如果没有 VF 附加到网络适配器上的 NIC 交换机,则 NDIS_NIC_SWITCH_VF_INFO_ARRAY 结构的 NumElements 成员设置为零,并且不返回任何NDIS_NIC_SWITCH_VF_INFO结构。
注解
过分的驱动程序和用户模式应用程序发出OID_NIC_SWITCH_ENUM_VFS的 OID 方法请求,以枚举附加到网络适配器的 NIC 交换机的 VF。
在驱动程序或应用程序发出 OID 请求之前,它必须初始化随请求一起传递 的NDIS_NIC_SWITCH_VF_INFO_ARRAY 结构。 驱动程序或应用程序在初始化 NDIS_NIC_SWITCH_VF_INFO_ARRAY 结构时必须遵循以下准则:
如果在 Flags 成员中设置了NDIS_NIC_SWITCH_VF_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH标志,驱动程序或应用程序必须将 SwitchId 成员设置为 SR-IOV 网络适配器上的 NIC 交换机标识符。 通过以这种方式设置这些成员,仅针对 SR-IOV 网络适配器上的指定 NIC 交换机返回 VF 信息。
注意 过度分配的驱动程序和用户模式应用程序可以通过发出 OID_NIC_SWITCH_ENUM_SWITCHES的 OID 查询请求来获取 NIC 开关标识符。
如果 Flags 成员设置为零,驱动程序或应用程序必须将 SwitchId 成员设置为零。 通过以这种方式设置这些成员,将返回 SR-IOV 网络适配器上所有 NIC 交换机的 VF 信息。
注意从 Windows Server 2012 开始,Windows 仅支持网络适配器上的默认 NIC 开关。 无论 Flags 成员中设置的标志如何, SwitchId 成员都必须设置为 NDIS_DEFAULT_SWITCH_ID。
有关 NIC 开关的详细信息,请参阅 NIC 开关。
返回状态代码
NDIS 处理微型端口驱动程序OID_NIC_SWITCH_ENUM_VFS请求的 OID 方法请求。 不会向驱动程序发出此 OID 请求。
当 NDIS 处理OID_NIC_SWITCH_ENUM_VFS请求时,它将返回以下状态代码之一。
状态代码 | 说明 |
---|---|
NDIS_STATUS_SUCCESS |
OID 请求已成功完成。 |
NDIS_STATUS_NOT_SUPPORTED |
微型端口驱动程序不支持单根 I/O 虚拟化 (SR-IOV) 接口,或者未启用该接口。 |
NDIS_STATUS_INVALID_PARAMETER |
NDIS_NIC_SWITCH_VF_INFO_ARRAY 结构的一个或多个成员具有无效值。 |
NDIS_STATUS_INVALID_LENGTH |
信息缓冲区太短。 NDIS 设置数据。METHOD_INFORMATION。NDIS_OID_REQUEST结构中的 BytesNeeded 成员达到所需的最小缓冲区大小。 |
NDIS_STATUS_FAILURE |
由于其他原因,请求失败。 |
要求
版本 |
在 NDIS 6.30 及更高版本中受支持。 |
标头 |
Ntddndis.h (包括 Ndis.h) |