注册 NDIS QoS 功能

微型端口驱动程序会在网络适配器初始化过程中向 NDIS 注册以下服务质量 (QoS) 功能:

  • 网络适配器支持的 NDIS QoS 硬件功能。

    注意 从 NDIS 6.30 开始,只有当注册表中存在 *QOS INF 关键字设置时,微型端口驱动程序才必须注册适配器支持的 NDIS QoS 硬件功能。 在这种情况下,无论适配器上的 NDIS QoS 硬件功能是启用还是禁用,驱动程序都必须注册这些功能。

  • 网络适配器当前启用的 NDIS QoS 硬件功能。

    注意 微型端口驱动程序的 NDIS QoS 硬件功能可通过注册表中的 *QOS INF 关键字设置来启用或禁用。 此设置显示在网络适配器的高级属性页面上。

有关 NDIS QoS INF 关键字设置的详细信息,请参阅 NDIS QoS 的标准化 INF 关键字

微型端口驱动程序通过 NDIS_QOS_CAPABILITIES 结构报告基础网络适配器的硬件 NDIS QoS 功能,该结构按以下方式初始化:

  1. 微型端口驱动程序初始化 Header 成员。 驱动程序将 HeaderType 成员设置为 NDIS_OBJECT_TYPE_QOS_CAPABILITIES。

    从 NDIS 6.30 开始,微型端口驱动程序会将标头修订成员设置为 NDIS_QOS_CAPABILITIES_REVISION_1,并将 Size NDIS_SIZEOF_QOS_CAPABILITIES_REVISION_1。

  2. 如果网络适配器支持严格优先级传输选择算法 (TSA),则微型端口驱动程序会在 Flags 成员中设置 NDIS_QOS_CAPABILITIES_STRICT_TSA_SUPPORTED 标志。 有关此算法的详细信息,请参阅严格优先级算法

    注意 从 NDIS 6.30 开始,支持 IEEE 数据中心桥接 (DCB) NDIS QoS 的微型端口驱动程序和网络适配器必须支持严格优先级 TSA。

  3. 如果网络适配器支持绕过媒体访问控制安全 (MACsec) 处理,则微型端口驱动程序就会在 Flags 成员中设置 NDIS_QOS_CAPABILITIES_MACSEC_BYPASS_SUPPORTED 标志。 有关 MACsec 的详细信息,请参阅 IEEE 802.1AE-2006 标准。

    注意 从 NDIS 6.30 开始,网络适配器不需要支持绕过 MACsec 处理。

  4. 微型端口驱动程序会将 MaxNumTrafficClasses 成员设置为网络适配器支持的 NDIS QoS 流量类的最大数量。 流量类定义了 QoS 的传输或出口策略,如 IEEE 802.1p 优先级和带宽分配。 有关流量类的详细信息,请参阅 NDIS QoS 流量类

    注意 从 NDIS 6.30 开始,网络适配器必须至少支持三个流量类。

  5. 微型端口驱动程序会将 MaxNumEtsCapableTrafficClasses 成员设置为网络适配器可使用增强传输选择 (ETS) 算法的 NDIS QoS 流量类的最大数量。 此值必须小于或等于 MaxNumTrafficClasses 成员的值。

    有关 ETS 的详细信息,请参阅增强传输选择 (ETS) 算法

    注意 要使网络适配器支持 NDIS QoS,它必须至少支持两个支持 ETS 的流量类。

  6. 微型端口驱动程序会将 MaxNumPfcEnabledTrafficClasses 成员设置为网络适配器可使用基于优先级的流量控制 (PFC) 算法的 NDIS QoS 流量类的最大数量。 此值必须小于或等于 MaxNumTrafficClasses 成员的值。

    有关 PFC 的详细信息,请参阅基于优先级的流控制 (PFC)

    注意 要使网络适配器支持 NDIS QoS,它必须支持至少一个支持 PFC 的流量类。

当 NDIS 调用微型端口驱动程序的 MiniportInitializeEx 函数时,驱动程序会按照以下步骤注册网络适配器的 NDIS QoS 属性:

  1. 微型端口驱动程序初始化 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 结构。

    微型端口驱动程序会将 HardwareQOSCapabilities 成员设置为指向先前初始化的 NDIS_QOS_CAPABILITIES 结构的指针。

    如果 *QOS INF 关键字的注册表设置值为 1,则网络适配器上的 NDIS QoS 功能会启用。 微型端口驱动程序会将 CurrentQOSCapabilities 成员设置为指向相同 NDIS_QOS_CAPABILITIES 结构的指针。

    如果 *QOS INF 关键字的注册表设置值为零,网络适配器上的 NDIS QoS 功能将被禁用。 微型端口驱动程序必须将 CurrentQOSCapabilities 成员设置为 NULL。

  2. 驱动程序调用 NdisMSetMiniportAttributes,并将 MiniportAttributes 参数设置为指向 NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES 结构的指针。

有关适配器初始化过程的详细信息,请参阅初始化微型端口适配器