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 的传输带宽预留,以 0 – ULONG_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) |