NDIS_QOS_PARAMETERS 结构 (ntddndis.h)

NDIS_QOS_PARAMETERS结构指定在支持 IEEE 802.1 数据中心桥接 (DCB) 接口的网络适配器上启用的 NDIS 服务质量 (QoS) 参数。

语法

typedef struct _NDIS_QOS_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  ULONG              NumTrafficClasses;
  UCHAR              PriorityAssignmentTable[NDIS_QOS_MAXIMUM_PRIORITIES];
  UCHAR              TcBandwidthAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  UCHAR              TsaAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              PfcEnable;
  ULONG              NumClassificationElements;
  ULONG              ClassificationElementSize;
  ULONG              FirstClassificationElementOffset;
} NDIS_QOS_PARAMETERS, *PNDIS_QOS_PARAMETERS;

成员

Header

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

微型端口驱动程序必须将 HeaderType 成员设置为 NDIS_OBJECT_TYPE_QOS_PARAMETERS。 若要指定 NDIS_QOS_PARAMETERS 结构的版本,驱动程序必须将 HeaderRevision 成员设置为以下值:

NDIS_QOS_PARAMETERS_REVISION_1

NDIS 6.30 及更高版本的原始版本。

Size 成员设置为 NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1。

Flags

一个 ULONG 值,该值包含指定网络适配器的 NDIS QoS 参数状态的按位 OR 标志。 有关此成员的详细信息,请参阅 标志成员概述

NumTrafficClasses

一个 ULONG 值,该值指定在网络适配器上启用的 NDIS QoS 流量类的数量。 每个流量类通过从零到 (NumTrafficClasses–1) 范围内的标识符进行引用。

注意NumTrafficClasses 成员的值必须小于或等于 min (NDIS_QOS_MAXIMUM_TRAFFIC_CLASSESMaxNumTrafficClasses) ,其中 MaxNumTrafficClasses 是在 NDIS_QOS_CAPABILITIES 结构中指定的 MaxNumTrafficClasses 成员的值。
 

PriorityAssignmentTable[NDIS_QOS_MAXIMUM_PRIORITIES]

UCHAR 元素的数组,其中每个元素表示与 IEEE 802.1p 优先级关联的流量类。 PriorityAssignmentTable 数组按 802.1p 优先级 (0-7) 编制索引。

每个元素都包含流量类标识符。 此标识符是分类数组中流量类 NDIS_QOS_CLASSIFICATION_ELEMENT 结构的索引。

注意 必须为 PriorityAssignmentTable 数组中的每个元素分配有效的流量类标识符。 可将流量类标识符分配给 PriorityAssignmentTable 数组中的多个元素。
 

TcBandwidthAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

UCHAR 元素数组,指定分配给每个流量类的带宽分配百分比。 TcBandwidthAssignmentTable 数组按流量类标识符编制索引。

TcBandwidthAssignmentTable 数组的每个元素指定流量类的带宽分配。 TcBandwidthAssignmentTable 数组中所有带宽分配分配的总值必须等于 100。

注意 仅增强型传输选择 (ETS) TSA 支持带宽分配。 如果未将 TsaAssignmentTable 数组中流量类的元素设置为 NDIS_QOS_TSA_ETS, 则 TcBandwidthAssignmentTable 数组中流量类的元素必须设置为零。
 

TsaAssignmentTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

UCHAR 元素的数组,指定分配给每个流量类的 TSA。 TsaAssignmentTable 数组按流量类标识符编制索引。

TsaAssignmentTable 数组的每个元素包含以下值之一:

NDIS_QOS_TSA_STRICT

必须将严格优先级算法用作流量类的 TSA。 有关此 TSA 的详细信息,请参阅 严格优先级算法

NDIS_QOS_TSA_CBS

IEEE 802.1Qav 基于额度的整形器 (CBS) 算法必须用作流量类的 TSA。

注意从 Windows Server 2012 开始,DCB 组件 (Msdcb.sys) 不支持 CBS TSA,并且不会通过对象标识符 (OID_QOS_PARAMETERS 的 OID) 方法请求启用此参数。 有关 DCB 组件的详细信息,请参阅 数据中心桥接的 NDIS QoS 体系结构
 

NDIS_QOS_TSA_ETS

必须将 IEEE 802.1Qaz 增强传输选择 (ETS) 算法用作流量类的 TSA。 有关此 TSA 的详细信息,请参阅 增强的传输选择 (ETS) 算法

PfcEnable

32 位的位图。 最重要的 24 位保留供将来使用。 最小有效 8 位用于指定是否在 IEEE 802.1p 优先级上启用 PFC。 如果位设置为 1,则为优先级启用 PFC。

位范围 含义
31:24 保留供将来使用。
7 如果设置为 1,则会在 802.1p 优先级 7 (网络控制) 启用 PFC。
6 如果设置为 1,则会在 802.1p 优先级级别 6 (Internet 控制) 启用 PFC。
5 如果设置为 1,则会在 802.1p 优先级级别 5 (语音) 启用 PFC。
4 如果设置为 1,则会在 802.1p 优先级级别 4 (视频) 启用 PFC。
3 如果设置为 1,则会在 802.1p 优先级 3 (关键应用程序) 启用 PFC。
2 如果设置为 1,则会在 802.1p 优先级级别 2 上启用 PFC, (出色的工作量) 。
1 如果设置为 1,则会在 802.1p 优先级 1 (后台) 启用 PFC。
0 如果设置为 1,则会在 802.1p 优先级 0 上启用 PFC, (尽最大努力) 。
 
注意已启用 PFC 的 802.1p 优先级级别的总数必须小于或等于 NDIS_QOS_CAPABILITIES 结构中 MaxNumPfcEnabledTrafficClasses 成员的值。
 
有关优先级的详细信息,请参阅 IEEE 802.1p 优先级

NumClassificationElements

一个 ULONG 值,该值指定流量分类数组中的元素数。 此数组中第一个元素的偏移量由 FirstClassificationElementOffset 成员指定。

注意 数组中的每个元素都格式化为 NDIS_QOS_CLASSIFICATION_ELEMENT 结构。
 

ClassificationElementSize

一个 ULONG 值,该值指定流量分类数组中每个元素的大小(以字节为单位)。

注意 从 NDIS 6.30 开始,此成员必须设置为 sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT) 。
 

FirstClassificationElementOffset

一个 ULONG 值,该值指定与遵循此结构的流量分类元素数组中的第一个元素的偏移量(以字节为单位)。 偏移量从 NDIS_QOS_PARAMETERS 结构的开头到第一个元素的开头。 数组中的每个元素都是 一个NDIS_QOS_CLASSIFICATION_ELEMENT 结构。

注意 如果 NumClassificationElements 设置为零,则忽略此成员。
 

注解

NDIS_QOS_PARAMETERS 结构指定用于定义网络适配器如何优先传输或出口数据包的参数。 此结构用于以下 OID 请求:

微型端口驱动程序还会在以下 NDIS 状态指示中返回 NDIS_QOS_PARAMETERS 结构: 有关 NDIS QoS 参数类型的详细信息,请参阅 NDIS QoS 参数概述

标志成员概述

Flags 成员包含指定网络适配器的 NDIS QoS 参数状态的按位 OR 标志。

微型端口驱动程序在发出以下 NDIS 状态指示时设置 Flags 成员:

DCB 组件在发出 OID_QOS_PARAMETERS 的 OID 方法请求时设置 Flags 成员。
注意 只有 DCB 组件可以发出 OID 请求。 过分协议或筛选器驱动程序不得颁发此 OID。 有关 DCB 组件的详细信息,请参阅 数据中心桥接的 NDIS QoS 体系结构
 
Flags 成员定义了以下标志。
注意 NDIS 保证同时设置或清除 NDIS_QOS_PARAMETERS_ETS_CONFIGUREDNDIS_QOS_PARAMETERS_PFC_CONFIGURED 标志。
 
NDIS_QOS_PARAMETERS_Xxx_CHANGED标志提供提示,说明相应的参数组是否已从以前的OID_QOS_PARAMETERS方法请求更改,还是NDIS_QOS_PARAMETERS_Xxx_CHANGED状态通知。 当微型端口驱动程序发出 NDIS_QOS_PARAMETERS_Xxx_CHANGED 状态通知时,它可以选择设置这些标志。
注意 如果未设置 NDIS_QOS_PARAMETERS_Xxx_CHANGED 标志,则过分驱动程序不得假定基础网络适配器上支持或启用相应的参数组。
 

要求

要求
最低受支持的客户端 在 NDIS 6.30 及更高版本中受支持。
标头 ntddndis.h (包括 Ndis.h)

另请参阅

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_QOS_CAPABILITIES

NDIS_QOS_CLASSIFICATION_ELEMENT

NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE

NDIS_STATUS_QOS_REMOTE_PARAMETERS_CHANGE

NdisMSetMiniportAttributes

OID_QOS_CURRENT_CAPABILITIES

OID_QOS_HARDWARE_CAPABILITIES