Indicar alterações nos parâmetros operacionais de QoS do NDIS

O driver de miniporta que dá suporte à Qualidade de Serviço (QoS) do NDIS emite uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE quando os parâmetros operacionais de QoS do NDIS do driver são resolvidos pela primeira vez ou quando eles mudam mais tarde. O driver de miniporta configura o adaptador de rede com esses parâmetros operacionais para executar a transmissão de pacotes de QoS.

O driver de miniporta deve seguir estas diretrizes para emitir uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE:

  • O driver de miniporta deve emitir uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE depois de resolver seus parâmetros operacionais de QoS do NDIS e configurar o adaptador de rede com eles.

    Observação Se o driver de miniporta for provisionado com parâmetros de QoS do NDIS locais próprios no registro, o driver deverá emitir uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE durante ou imediatamente após a chamada para MiniportInitializeEx. Nesse caso, o driver inicializa uma estrutura NDIS_QOS_PARAMETERS com suas configurações de parâmetros de QoS do NDIS locais próprios.

    Para obter mais informações sobre como o driver resolve suas configurações de parâmetros operacionais de QoS do NDIS, consulte Resolver parâmetros operacionais de QoS do NDIS.

  • Após essa indicação de status inicial, o driver de miniporta deve emitir uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE quando seus parâmetros operacionais de QoS do NDIS forem alterados. Por exemplo, os parâmetros operacionais de QoS do NDIS podem ser alterados nas seguintes condições:

    • Os parâmetros operacionais de QoS do NDIS mudam devido a alterações nos parâmetros locais de QoS do NDIS. Esses parâmetros podem ser alterados por meio de uma solicitação de método de OID_QOS_PARAMETERS ou por meio de um aplicativo de gerenciamento desenvolvido pelo fornecedor independente de hardware (IHV).

    • Os parâmetros operacionais de QoS do NDIS são alterados devido a conflitos com as configurações de QoS do par remoto.

      O driver de miniporta usa o protocolo IEEE 802.1Qaz Data Center Bridging Exchange (DCBX) para descobrir os parâmetros de QoS de um par remoto. Se o estado DCBX Willing estiver habilitado, o driver deverá resolver as diferenças entre seus parâmetros de QoS e os parâmetros de QoS do par remoto seguindo os procedimentos definidos para o mecanismo de estado DCBX. Para obter mais informações sobre esse mecanismo de estado, consulte o padrão de rascunho do IEEE 802.1Qaz.

      Para obter mais informações sobre o estado Willing DCBX local, consulte Gerenciar o estado Willing DCBX local.

    Observação Quando o driver de miniporta recebe parâmetros locais ou remotos de QoS do NDIS, ele não deve emitir uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE se não houve alterações nos parâmetros operacionais de QoS do NDIS. Se o driver fizer essa indicação de status desnecessária, o NDIS poderá não passar a indicação para drivers sobrepostos.

  • O driver de miniporta deve emitir uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE quando precisar substituir os parâmetros locais de QoS do NDIS que foram usados para resolver os parâmetros operacionais de QoS do NDIS.

    O driver de miniporta notifica o NDIS e o driver sobreposto que ele substituiu os parâmetros locais de QoS do NDIS emitindo uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE. Para esse tipo de indicação, o driver deve definir os sinalizadores NDIS_QOS_PARAMETERS_Xxx_CHANGED apropriados no membro Flags da estrutura NDIS_QOS_PARAMETERS para especificar o motivo da substituição dos parâmetros locais de QoS do NDIS.

    Para obter mais informações sobre como o driver de miniporta gerencia os parâmetros locais de QoS, consulte Definir parâmetros locais de QoS do NDIS.

    Para obter mais informações sobre como o driver de miniporta resolve seus parâmetros operacionais de QoS, consulte Resolver parâmetros operacionais de QoS do NDIS.

Observação O driver de miniporta deve emitir indicações de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE se seus recursos de QoS do NDIS estiverem habilitados atualmente por meio da palavra-chave INF padronizada para *QoS. Para obter mais informações, consulte Palavras-chave INF padronizadas para QoS do NDIS.

Diretrizes para a emissão da indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE

O driver de miniporta segue estas etapas quando emite a indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE:

  1. O driver de miniporta aloca um buffer grande o suficiente para conter o seguinte:

    • Uma estrutura NDIS_QOS_PARAMETERS que contém as definições de configuração de QoS do NDIS, bem como parâmetros operacionais globais para as classes de tráfego de QoS do NDIS.

    • Uma série de estruturas NDIS_QOS_CLASSIFICATION_ELEMENT. Cada uma dessas estruturas especifica uma classificação de tráfego, conforme definido por um padrão de dados de pacote (condição) e nível de prioridade IEEE 802.1p associado (ação). Se o adaptador de rede encontrar um padrão no pacote de transmissão ou de saída que corresponda a uma condição, ele atribuirá o nível de prioridade associado ao pacote. O adaptador também aplica as outras políticas de QoS do NDIS ao pacote com base no nível de prioridade.

  2. A miniporta inicializa a estrutura NDIS_QOS_PARAMETERS com os parâmetros operacionais de QoS do NDIS. O driver deve fornecer o conjunto completo de parâmetros operacionais, incluindo os parâmetros que podem não ser configurados no adaptador de rede.

    Quando o driver de miniporta inicializa o membro Header, ele define o membro Type de Header para NDIS_OBJECT_TYPE_QOS_PARAMETERS. O driver de miniporta define o membro Revision de Header para NDIS_QOS_PARAMETERS_REVISION_1 e o membro Size para NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.

    O driver de miniporta define os sinalizadores apropriados de NDIS_QOS_PARAMETERS_Xxx_CHANGED no membro Flags se os membros correspondentes contiverem dados que foram alterados desde que o driver de miniporta emitiu uma indicação de status de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.

    Observação A configuração dos sinalizadores de NDIS_QOS_PARAMETERS_Xxx_CHANGED é opcional. O NDIS sempre assume que os membros de NDIS_QOS_PARAMETERS são atuais, mesmo que não tenham mudado da indicação de status anterior de NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.

    Para obter mais informações sobre como definir o membro Flags, consulte as Diretrizes para definir o membro Flags.

  3. O driver de miniporta inicializa uma estrutura NDIS_QOS_CLASSIFICATION_ELEMENT para cada classificação de tráfego a partir dos parâmetros operacionais de QoS do NDIS. O driver adiciona esses elementos ao final da estrutura NDIS_QOS_PARAMETERS no buffer.

    Observação O driver de miniporta não deve definir o sinalizador de NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT no membro Flags de qualquer estrutura NDIS_QOS_CLASSIFICATION_ELEMENT.

    O driver define o membro NumClassificationElements da estrutura NDIS_QOS_PARAMETERS para o número de elementos de classificação na matriz. O driver define o membro FirstClassificationElementOffset para o deslocamento de byte do primeiro elemento desde o início do buffer. O driver também define o membro ClassificationElementSize para o comprimento, em bytes, de cada elemento na matriz.

    Observação A partir do NDIS 6.30, o driver de miniporta deve definir o membro ClassificationElementSize para sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT).

  4. O driver de miniporta inicializa uma estrutura NDIS_STATUS_INDICATION para a indicação de status da seguinte maneira:

    • O membro StatusCode deve ser definido para NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE.

    • O membro StatusBuffer deve ser definido para o ponteiro para o buffer que contém os parâmetros operacionais de QoS do NDIS.

    • O membro StatusBufferSize deve ser definido para a duração, em bytes, do buffer.

  5. O driver de miniporta emite a indicação de status chamando NdisMIndicateStatusEx. O driver deve passar um ponteiro para a estrutura NDIS_STATUS_INDICATION para o parâmetro StatusIndication.

Diretrizes para a configuração do membro Flags

O driver de miniporta define os seguintes sinalizadores no membro Flags da estrutura NDIS_QOS_PARAMETERS para especificar quais parâmetros operacionais de QoS NDIS foram configurados ou alterados no adaptador de rede:

NDIS_QOS_PARAMETERS_ETS_CONFIGURED
Se esse sinalizador estiver definido, significa que o driver de miniporta configurou o adaptador de rede com os parâmetros ETS contidos nos seguintes membros:

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

Observação O driver de miniporta deve dar suporte ao ETS para oferecer suporte a QoS do NDIS para DCB. No entanto, a configuração desse sinalizador não especifica se o adaptador de rede dá suporte ao ETS. Em vez disso, a configuração desse sinalizador especifica apenas se os parâmetros do ETS estão configurados no adaptador de rede.

NDIS_QOS_PARAMETERS_ETS_CHANGED
Se esse sinalizador estiver definido, significa que um ou mais parâmetros do ETS foram alterados nos seguintes membros:

  • NumTrafficClasses

  • PriorityAssignmentTable

  • TcBandwidthAssignmentTable

  • TsaAssignmentTable

NDIS_QOS_PARAMETERS_PFC_CONFIGURED
Se esse sinalizador estiver definido, o driver de miniporta definiu o adaptador de rede com as configurações do PFC contidas no membro PfcAble.

Observação O driver de miniporta deve dar suporte ao PFC para oferecer suporte a QoS do NDIS para DCB. A configuração desse sinalizador não especifica se o adaptador de rede dá suporte ao PFC. Em vez disso, a configuração desse sinalizador especifica apenas se os parâmetros do PFC estão habilitados no adaptador de rede.

NDIS_QOS_PARAMETERS_PFC_CHANGED
Se esse sinalizador estiver definido, significa que uma ou mais configurações do PFC foram alteradas no membro PfcAble.

NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
Se esse sinalizador estiver definido, o driver de miniporta configurou o adaptador de rede com os parâmetros de classificações de tráfego de QoS especificados nos seguintes membros:

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED
Se esse sinalizador estiver definido, significa que um ou mais parâmetros de classificação de tráfego de QoS foram alterados nos seguintes membros:

  • NumClassificationElements

  • ClassificationElementSize

  • FirstClassificationElementOffset

Observação Os sinalizadores NDIS_QOS_PARAMETERS_Xxx_CONFIGURED deverão ser definidos se a estrutura NDIS_QOS_PARAMETERS contiver configurações de parâmetros de QoS do NDIS. O driver de miniporta deve definir esses sinalizadores, independentemente de as configurações terem sido alteradas. No entanto, o driver deve definir os sinalizadores NDIS_QOS_PARAMETERS_Xxx_CHANGED somente para as configurações que foram alteradas.