OID_GEN_RECEIVE_SCALE_PARAMETERS_V2
警告
本主题中的有些信息与预发布产品相关,该产品在商业发行之前可能发生重大更改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
RSSv2 仅在 Windows 10 版本 1809 中提供预览版。
OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 OID 将发送到支持 RSSv2 的微型端口驱动程序,以便为缩放实体设置运行时参数(间接表以外的参数)。 OID_GEN_RECEIVE_SCALE_PARAMETERS_V2替换了 RSSv1 中的 OID_GEN_RECEIVE_SCALE_PARAMETERS OID,在 NDIS 6.80 之前) LDF (NDIS 轻型筛选器不可见。 此 OID 是常规 OID,可以作为查询或设置请求发出。 它在 IRQL == PASSIVE_LEVEL发布。 当在创建 NIC 交换机时设置 NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID 标志时,它可以以给定的 VPort 为目标。 否则,它将本机 RSS 情况下的物理 NIC 作为目标。
作为查询,NDIS 和覆盖驱动程序可以使用OID_GEN_RECEIVE_SCALE_PARAMETERS_V2来查询 NIC 的 RSS 参数。 NDIS 返回定义当前 RSS 参数 的NDIS_RECEIVE_SCALE_PARAMETERS_V2 结构。
作为 Set,此 OID 的用途是执行以下操作:
- 最初 (本机 RSS 模式下的微型端口适配器或 VMQ 模式下的 VPort) 配置缩放实体。
- 启用或禁用 RSS。
- 在 RSS 模式下,执行非计时关键型管理功能,例如更改哈希键、哈希类型和哈希函数、队列数或缩放实体的间接表条目数。
注解
一步即可启用 RSS 和设置 RSS 参数。 上层使用此 OID 启用 RSS 后,缩放实体的初始状态如下所示:
- 主处理器变为 非活动状态。
- 默认处理器变为 活动状态。
- 所有 ITE 都变为 活动状态。
- 微型端口驱动程序开始计算 RSS 哈希,为所有数据包设置相应的 OOB,并将数据包定向到间接表条目或默认处理器参数指定的处理器。
启用 RSS 后,上层会发出 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID,以将 ITE 移动到不同的处理器。 在 RSSv2 中, DefaultQueue 和 PrimaryProcessor 也会使用 OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES 移动到其他处理器。
在禁用 RSS 的过程中,上层会将所有 ITE 指向主处理器,然后调用此 OID 以关闭 RSS。 在此时间点之后,接收流量应面向主处理器。 但是,微型端口驱动程序不应期望在删除 VPort 之前禁用 RSS。 上层可以将 VPort 上的接收筛选器设置为零,从而确保没有接收流量流经 VPort,然后继续删除 VPort 而不禁用 RSS。
上层将确保在执行管理功能之前不会违反重要固定因素。 例如:
- 在更改队列数之前,上层将确保间接表引用的处理器数不会超过为 VPort 配置的处理器数。 在更改 VMMQ-RESTRICTED 适配器的间接表条目数之前,上层将确保将间接表的内容规范化为 2 的幂。
错误条件和状态代码
发生错误时,此 OID 返回以下状态代码:
状态代码 | 添加状态 |
---|---|
NDIS_STATUS_INVALID_LENGTH | OID 格式不正确。 |
NDIS_STATUS_NO_QUEUES | 启用 RSS 时,队列数将更改,但当前间接表引用的处理器数多于新队列数。 |
NDIS_STATUS_INVALID_DATA |
|
NDIS_STATUS_INVALID_PARAMETER | 标头或 OID 本身中的其他字段包含无效值。 |
要求
版本:Windows 10,版本 1709 标头:Ntddndis.h (包括 Ndis.h)