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 结构。

微型端口驱动程序必须将 HeaderType 成员设置为 NDIS_OBJECT_TYPE_DEFAULT,Revision 成员设置为 NDIS_QOS_SQ_PARAMETERS_REVISION_2,并将 Size 成员设置为 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]

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

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

此字段为 FALSE 的任何 TC 不参与 CrossTcTransmitBandwidthCap 或下面的 per-TC 表中的 QoS 速率限制。

TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

一个 ULONG 元素数组,这些元素指定每个 TC 的传输带宽上限(以 Mbps 为单位)。 仅当 NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED 设置了 标志并且 TcEnabledTable 中的相应元素为 TRUE 时,元素才有效。 值为 0 的元素没有上限。

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

TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

一个 ULONG 元素数组,这些元素指定每个 TC 的传输带宽预留,以 0ULONG_MAX 之间的相对值表示。 仅当 NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED 设置了 标志并且 TcEnabledTable 中的相应元素为 TRUE 时,元素才有效。 值为 0 的元素表示此 SQ/TC 上的传输数据包共享该 TC 的默认 SQ 预留。

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

TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

一个 ULONG 元素数组,这些元素指定每个 TC 的接收带宽上限(以 Mbps 为单位)。 仅当 NDIS_QOS_SQ_RECEIVE_CAP_ENABLED 设置了 标志并且 TcEnabledTable 中的相应元素为 TRUE 时,元素才有效。 值为 0 的元素没有上限。

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

CrossTcTransmitBandwidthCap

一个 ULONG 值,该值指定 在 TcEnabledTable 中对应元素为 TRUE(如果 NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED 设置了 标志)的 TCS 上的流量的传输带宽上限。

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 (包括 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 流量类