OID_NIC_SWITCH_ENUM_VPORTS
过度的驱动程序或用户模式应用程序发出OID_NIC_SWITCH_ENUM_VPORTS的对象标识符(OID)方法请求以获取数组。 数组中的每个元素指定在网络适配器的 NIC 交换机上创建的虚拟端口(VPort)的属性。
从此 OID 查询请求成功返回后,NDIS_OID_REQUEST 结构的 InformationBuffer 成员包含指向包含以下项的缓冲区的指针:
定义数组中元素数的 NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 结构。
NDIS_NIC_SWITCH_VPORT_INFO 结构的数组。 其中每个结构都包含有关网络适配器 NIC 交换机上的 VPort 的信息。
注意 如果未在网络适配器上创建 VPorts,驱动程序会将 NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 结构的 NumElements 成员设置为零,并且不会返回任何 NDIS_NIC_SWITCH_VPORT_INFO 结构。
言论
过度分配驱动程序和用户模式应用程序发出 OID_NIC_SWITCH_ENUM_VPORTS的 OID 查询请求,以枚举在网络适配器的 NIC 交换机上分配的 VPort。
在驱动程序或应用程序发出 OID 请求之前,它必须初始化与请求一起传递的 NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 结构。 初始化 NDIS_NIC_SWITCH_VPORT_INFO_ARRAY 结构时,驱动程序或应用程序必须遵循以下准则:
如果在 标志 成员中设置NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH标志,则会为在指定 NIC 交换机上创建的所有 VPort 返回信息。 NIC 开关由该结构的 SwitchId 成员指定。
注释 从 Windows Server 2012 开始,SR-IOV 接口仅支持网络适配器上的默认 NIC 开关。 无论在 标志 成员中设置的标志,SwitchId 成员都必须设置为NDIS_DEFAULT_SWITCH_ID。
如果在 标志 成员中设置了NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION标志,则会为连接到网络适配器上指定 PCI Express(PCIe)物理函数(PF)或虚拟函数(VF)的所有 VPort 返回信息。 PF 或 VF 是由该结构的 AttachedFunctionId 成员指定的。
如果 AttachedFunctionId 成员设置为NDIS_PF_FUNCTION_ID,则会返回附加到网络适配器 PF 的所有 VPort(包括默认 VPort)的信息。 如果 AttachedFunctionId 成员设置为有效的 VF 标识符,则会将所有 VPorts 的信息返回到指定的 VF。
注意 从 Windows Server 2012 开始,只能将一个非默认 VPort 附加到 VF。 但是,可以将多个 VPort(包括默认 VPort)附加到 PF。
如果 标志 成员设置为零,则会为附加到网络适配器上的 PF 或 VF 的所有 VPort 返回信息。 在这种情况下,将忽略 SwitchId 和 AttachedFunctionId 的值。
有关详细信息,请参阅 枚举网络适配器上的虚拟端口。
返回状态代码
NDIS 处理微型端口驱动程序OID_NIC_SWITCH_ENUM_VPORTS请求的 OID 方法请求。 驱动程序将不会发出此 OID 请求。
当 NDIS 处理OID_NIC_SWITCH_ENUM_VPORTS请求时,它将返回以下状态代码之一:
状态代码 | 描述 |
---|---|
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) |