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 0 – ULONG_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) |