Compartilhar via


estrutura NDIS_QOS_SQ_PARAMETERS (ntddndis.h)

A estrutura NDIS_QOS_SQ_PARAMETERS contém os parâmetros de uma Fila do Agendador de Qualidade de Serviço (QoS) do NDIS (SQ).

Sintaxe

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;

Membros

Header

O tipo, a revisão e o tamanho da estrutura NDIS_QOS_SQ_PARAMETERS . Esse membro é formatado como uma estrutura NDIS_OBJECT_HEADER .

O driver de miniporte deve definir o membro Type de Header como NDIS_OBJECT_TYPE_DEFAULT, o membro Revision como NDIS_QOS_SQ_PARAMETERS_REVISION_2 e o membro Size como NDIS_SIZEOF_QOS_SQ_PARAMETERS_REVISION_2.

Flags

Um valor ULONG que contém um OR bit a bit de sinalizadores. Esses sinalizadores especificam os diversos recursos e atributos dos recursos de descarregamento de QoS de hardware que estão habilitados no SQ. Os seguintes sinalizadores são definidos:

NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED

Se esse sinalizador estiver definido, as tampas de largura de banda de transmissão serão habilitadas neste SQ.

NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED

Se esse sinalizador estiver definido, as reservas de largura de banda de transmissão serão habilitadas neste SQ.

NDIS_QOS_SQ_RECEIVE_CAP_ENABLED

Se esse sinalizador estiver definido, as tampas de largura de banda de recebimento serão habilitadas neste SQ.

SqId

Um NDIS_QOS_SQ_ID que contém a ID SQ deste SQ. O NDIS atribui essa ID.

SqType

Um NDIS_QOS_SQ_TYPE que contém o tipo desse SQ. Isso pode ser NdisQSQosSqSqSQTypeStandard da definição de enumeração de NDIS_QOS_SQ_TYPE.

TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

Uma matriz de valores BOOLEAN que especificam se cada classe de tráfego (de 0 a NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES) está habilitada para agendamento neste SQ.

Qualquer classe de tráfego (TC) para a qual esse campo é TRUE deve ser lido e validado nas tabelas abaixo e também é limitado por CrossTcTransmitBandwidthCap.

Qualquer TC para o qual esse campo é FALSE não participa da limitação de taxa de QoS de CrossTcTransmitBandwidthCap ou das tabelas por TC abaixo.

TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

Uma matriz de elementos ULONG que especificam tampas de largura de banda de transmissão para cada TC, em Mbps. Os elementos só serão válidos se o NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED sinalizador estiver definido e seu elemento correspondente em TcEnabledTable for TRUE. Um elemento com um valor igual a 0 não tem limite.

A NIC deverá enfileirar todos os pacotes de transmissão neste SQ para um determinado TC se eles excederem a taxa especificada nesta tabela.

TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

Uma matriz de elementos ULONG que especificam reservas de largura de banda de transmissão para cada TC, em valores relativos de 0ULONG_MAX. Os elementos só serão válidos se o NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED sinalizador estiver definido e seu elemento correspondente em TcEnabledTable for TRUE. Um elemento com um valor de 0 significa que os pacotes de transmissão nesse SQ/TC compartilham a reserva padrão do SQ para esse TC.

A NIC deverá enfileirar todos os pacotes de transmissão neste SQ para um determinado TC se outros SQs exigirem largura de banda para atender à reserva para esse TC.

TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

Uma matriz de elementos ULONG que especificam o recebimento de tampas de largura de banda para cada TC, em Mbps. Os elementos só serão válidos se o NDIS_QOS_SQ_RECEIVE_CAP_ENABLED sinalizador estiver definido e seu elemento correspondente em TcEnabledTable for TRUE. Um elemento com um valor igual a 0 não tem limite.

Esse é um recurso opcional para habilitar o capping de largura de banda de recebimento. As NICs que anunciam o suporte ao limite de recebimento devem descartar qualquer pacote de recebimento depois que um determinado TC neste SQ excedeu a taxa especificada nessa matriz (com base na implementação de agendamento da NIC).

CrossTcTransmitBandwidthCap

Um valor ULONG que especifica a tampa de largura de banda de transmissão para o tráfego entre TCs cujo elemento correspondente em TcEnabledTable será TRUE, se o NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED sinalizador estiver definido.

MaxNumSqInputs

Um valor ULONG que oferece uma "dica" para o miniporto no número provável de vPorts que o sistema operacional associará ao SQ. Esse valor não pode ser modificado após a criação do SQ.

O miniporto pode usar essa dica para gerenciar melhor seus recursos. O miniporto fornecerá um serviço de melhor esforço para atender à solicitação, mas pode falhar devido a recursos insuficientes no momento da criação do SQ ou no tempo de associação do vPort.

O miniporto deverá retornar um erro se esse valor exceder o valor MaxNumSQInputs especificado pelo miniporto em NDIS_QOS_OFFLOAD_CAPABILITIES.

Comentários

A estrutura NDIS_QOS_SQ_PARAMETERS é retornada na OID_QOS_OFFLOAD_ENUM_SQS de solicitação de consulta OID, que enumera SQs criados em um comutador NIC.

NDIS_QOS_SQ_PARAMETERS também é retornado no OID_QOS_OFFLOAD_CREATE_SQ de solicitação do método OID, que cria um novo SQ no adaptador de miniporte.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.85 e posterior.
Servidor mínimo com suporte Windows Server 2022
Cabeçalho ntddndis.h (inclua ndis.h)

Confira também

OID_QOS_OFFLOAD_ENUM_SQS

OID_QOS_OFFLOAD_CREATE_SQ

NDIS_QOS_OFFLOAD_CAPABILITIES

NDIS_QOS_SQ_ARRAY

NDIS_OBJECT_HEADER

Classes de tráfego de QoS do NDIS