NDIS_QOS_SQ_PARAMETERS结构(ntddndis.h)

NDIS_QOS_SQ_PARAMETERS 结构包含 NDIS 服务质量(QoS)计划程序队列(SQ)的参数。

语法

typedef struct _NDIS_QOS_SQ_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  NDIS_QOS_SQ_ID     SqId;
  NDIS_QOS_SQ_TYPE   SqType;
  BOOLEAN            TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              CrossTcTransmitBandwidthCap;
  ULONG              MaxNumSqInputs;
} NDIS_QOS_SQ_PARAMETERS, *PNDIS_QOS_SQ_PARAMETERS;

成员

Header

NDIS_QOS_SQ_PARAMETERS 结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。

微型端口驱动程序必须将 标头类型 成员设置为NDIS_OBJECT_TYPE_DEFAULT,将 修订 成员设置为NDIS_QOS_SQ_PARAMETERS_REVISION_2,并将 大小 成员设置为NDIS_SIZEOF_QOS_SQ_PARAMETERS_REVISION_2。

Flags

包含按位 OR 标志的 ULONG 值。 这些标志指定在 SQ 上启用的硬件 QoS 卸载功能的杂项功能和属性。 定义了以下标志:

NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED

如果设置了此标志,则会在此 SQ 上启用传输带宽上限。

NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED

如果设置了此标志,则会在此 SQ 上启用传输带宽预留。

NDIS_QOS_SQ_RECEIVE_CAP_ENABLED

如果设置了此标志,则会在此 SQ 上启用接收带宽上限。

SqId

包含此 SQ 的 SQ ID 的 NDIS_QOS_SQ_ID。 NDIS 分配此 ID。

SqType

包含此 SQ 类型的 NDIS_QOS_SQ_TYPE。 这可以从 NDIS_QOS_SQ_TYPE枚举定义 NdisQSQosSqSQTypeStandard

TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

一个布尔值数组,指定是否为此 SQ 计划启用了每个流量类(从 0 到 NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES)。

此字段 TRUE 的任何流量类(TC)都应在下表中读取和验证,并且速率限制为 CrossTcTransmitBandwidthCap

此字段 FALSE 的任何 TC 都不会参与来自 CrossTcTransmitBandwidthCap 或以下每个 TC 表的 QoS 速率限制。

TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

一个 ULONG 元素数组,用于指定每个 TC 的传输带宽上限(以 Mbps 为单位)。 仅当设置 NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED 标志及其相应元素在 TcEnabledTableTRUE时,元素才有效。 值为 0 的元素没有上限。

如果 NIC 超出此表中指定的速率,则此 SQ 上的任何传输数据包应排入队列中给定 TC。

TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

一组 ULONG 元素,这些元素指定每个 TC 的传输带宽预留,以 0ULONG_MAX的相对值表示。 仅当设置 NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED 标志及其相应元素在 TcEnabledTableTRUE时,元素才有效。 值为 0 的元素 意味着在此 SQ/TC 上传输数据包共享该 TC 的默认 SQ 预留。

如果其他 SQ 需要带宽来满足此 TC 的预留,则 NIC 应将此 SQ 上的任何传输数据包排队。

TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

一个 ULONG 元素数组,用于指定每个 TC 的接收带宽上限(以 Mbps 为单位)。 仅当设置 NDIS_QOS_SQ_RECEIVE_CAP_ENABLED 标志及其相应元素在 TcEnabledTableTRUE时,元素才有效。 值为 0 的元素没有上限。

这是用于启用接收带宽上限的可选功能。 播发接收上限支持的 NIC 应在此 SQ 上的给定 TC 超出此数组中指定的速率(基于 NIC 的计划实现)后删除任何接收数据包。

CrossTcTransmitBandwidthCap

一个 ULONG 值,该值指定流量的传输带宽上限,如果设置了 NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED 标志,则其 TcEnabledTable 中的相应元素 TRUE

MaxNumSqInputs

一个 ULONG 值,该值为 OS 将与 SQ 关联的 vPort 数量上为微型端口提供“提示”。 创建 SQ 后无法修改此值。

微型端口可能使用此提示更好地管理其资源。 微型端口将提供尽最大努力的服务来满足请求,但由于 SQ 创建时间或 vPort 关联时间的资源不足,可能会失败。

如果此值超出 NDIS_QOS_OFFLOAD_CAPABILITIES中微型端口指定的 MaxNumSQInputs 值,则微型端口必须返回错误。

言论

NDIS_QOS_SQ_PARAMETERS 结构在 OID 查询请求 OID_QOS_OFFLOAD_ENUM_SQS中返回,该请求枚举在 NIC 交换机上创建的 SQ。

NDIS_QOS_SQ_PARAMETERS 也会在 OID 方法请求 OID_QOS_OFFLOAD_CREATE_SQ中返回,该请求在微型端口适配器上创建新的 SQ。

要求

要求 价值
最低支持的客户端 在 NDIS 6.85 及更高版本中受支持。
支持的最低服务器 Windows Server 2022
标头 ntddndis.h (include ndis.h)

另请参阅

OID_QOS_OFFLOAD_ENUM_SQS

OID_QOS_OFFLOAD_CREATE_SQ

NDIS_QOS_OFFLOAD_CAPABILITIES

NDIS_QOS_SQ_ARRAY

NDIS_OBJECT_HEADER

NDIS QoS 流量类