Partilhar via


OID_GEN_RECEIVE_SCALE_PARAMETERS_V2

Advertência

Algumas informações neste tópico referem-se ao produto pré-lançado, que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui.

RSSv2 é pré-visualização apenas no Windows 10, versão 1809.

O OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 OID é enviado para drivers de miniporta compatíveis com RSSv2para definir parâmetros de tempo de execução, além da tabela indirection, para uma entidade de dimensionamento. OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 substitui o OID_GEN_RECEIVE_SCALE_PARAMETERS OID do RSSv1 e não é visível para os filtros leves (LWFs) do NDIS antes do NDIS 6.80. Este OID é um OID regular e pode ser emitido como uma solicitação de consulta ou conjunto. É emitido no IRQL == PASSIVE_LEVEL. Ele pode ter como alvo um determinado VPort, quando o sinalizador de NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID é definido na criação do switch NIC. Caso contrário, ele tem como alvo a NIC física no caso RSS nativo.

Como uma consulta, NDIS e drivers sobrepostos podem usar OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 para consultar os parâmetros RSS de uma NIC. O NDIS retorna uma estrutura NDIS_RECEIVE_SCALE_PARAMETERS_V2 que define os parâmetros RSS atuais.

Como um conjunto, o objetivo deste OID é executar as seguintes ações:

  • Configure inicialmente a entidade de dimensionamento (um adaptador de miniporta no modo RSS nativo ou um VPort no modo VMQ).
  • Ative ou desative o RSS.
  • Quando estiver no modo RSS, execute funções de gerenciamento não críticas de tempo, como alterar a chave de hash, o tipo de hash e a função de hash, o número de filas ou o número de entradas de tabela de indireção para a entidade de dimensionamento.

Comentários

A ativação do RSS e a definição de parâmetros RSS podem ser executadas em uma única etapa. Depois que a camada superior habilita o RSS usando esse OID, o estado inicial da entidade de dimensionamento é o seguinte:

  • O processador principal torna-se inativo.
  • O processador padrão torna-se ativo.
  • Todos os ITE tornam-se ativos.
  • O driver de miniporta inicia o cálculo do hash RSS, a configuração do OOB correspondente para todos os pacotes e direciona os pacotes para um processador especificado pela entrada da tabela indirection ou pelo parâmetro padrão do processador.

Depois que o RSS é ativado, a camada superior emite o OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID para mover ITEs para processadores diferentes. No RSSv2, o DefaultQueue e PrimaryProcessor também são movidos para um processador diferente usando OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES.

Durante o processo de desativação do RSS, a camada superior apontará todos os ITEs para o processador primário antes de invocar este OID para desligar o RSS. Após esse ponto, o tráfego de recebimento deve ter como alvo o processador primário. No entanto, os drivers de miniporta não devem esperar a desativação do RSS antes da exclusão do VPort. A camada superior pode definir o filtro de recebimento no VPort como zero, garantindo assim que nenhum tráfego de recebimento esteja fluindo através do VPort, em seguida, prossiga para excluir o VPort sem desativar o RSS.

A camada superior garantirá que invariantes importantes não sejam violados antes de executar funções de gerenciamento. Por exemplo:

  • Antes de alterar o número de filas, a camada superior garantirá que a tabela indirection não faça referência a mais processadores do que os configurados para um VPort. Antes de alterar o número de entradas da tabela indirection para adaptadores VMMQ-RESTRICTED, a camada superior garantirá que o conteúdo da tabela indirection seja normalizado para a potência de 2.

Condições de erro e códigos de status

Este OID retorna os seguintes códigos de status quando ocorre um erro:

Código de status Condição de erro
NDIS_STATUS_INVALID_LENGTH O OID estava malformado.
NDIS_STATUS_NO_QUEUES O número de filas está sendo alterado quando o RSS está habilitado, mas a tabela de indireção atual faz referência a mais processadores do que o novo número de filas.
NDIS_STATUS_INVALID_DATA
  • A tabela indirection está sendo reduzida em tamanho, mas não contém um padrão de repetição de potência de dois.
  • Durante uma transição de estado RSS (para no ou desligado), um processador de um parâmetro de direção que se torna ativo não pertence ao conjunto de processadores RSS do adaptador. Observe que parâmetros de direção inativos estão apenas rastreando gravações no processador e não são impostos. A imposição acontece durante a transição de estado RSS quando o parâmetro se torna ativo.
NDIS_STATUS_INVALID_PARAMETER Outros campos, no cabeçalho ou no próprio OID, contêm valores inválidos.

Requerimentos

Versão: Windows 10, versão 1709 de cabeçalho : Ntddndis.h (incluir Ndis.h)

Ver também