Compartilhar via


OID_GEN_RECEIVE_SCALE_PARAMETERS_V2

Aviso

Algumas informações neste tópico referem-se ao produto pré-relacionado, 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.

O RSSv2 é visualizado apenas no Windows 10, versão 1809.

O OID do OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 é enviado para drivers de miniporto com capacidade paraRSSv2 para definir parâmetros de tempo de execução, além da tabela de indireção, para uma entidade de dimensionamento. OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 substitui o OID OID_GEN_RECEIVE_SCALE_PARAMETERS do RSSv1 e não é visível para LWFs (Filtros de Peso Leve) do NDIS antes do NDIS 6.80. Essa OID é uma OID regular e pode ser emitida como uma solicitação de Consulta ou Defina. Ele é emitido em IRQL == PASSIVE_LEVEL. Ele pode ter como destino um determinado VPort, quando o sinalizador de NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID é definido na criação do comutador NIC. Caso contrário, ele destina-se à NIC física no caso RSS nativo.

Como uma consulta, o NDIS e drivers em excesso 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, a finalidade dessa OID é executar as seguintes ações:

  • Inicialmente, configure a entidade de dimensionamento (um adaptador de miniporto no modo RSS nativo ou um VPort no modo VMQ).
  • Habilitar ou desabilitar 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.

Observações

Habilitar rss e definir parâmetros RSS pode ser executado em uma etapa.. Depois que a camada superior habilita o RSS usando essa OID, o estado inicial da entidade de dimensionamento é o seguinte:

  • O processador primário torna-se inativo.
  • O processador padrão torna-se ativo.
  • Todos os ITEs se tornam ativos.
  • O driver de miniporto 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 de indireção ou pelo parâmetro de processador padrão.

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

Durante o processo de desabilitar o RSS, a camada superior apontará todos os ITEs para o processador primário antes de invocar essa OID para desativar o RSS. Após esse ponto, o tráfego de recebimento deve ser direcionado ao processador primário. No entanto, os drivers de miniporto não devem esperar a desabilitaçã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 pelo VPort e, em seguida, prossiga para excluir o VPort sem desabilitar o RSS.

A camada superior garantirá que invariáveis 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 de indireção não faça referência a mais processadores do que configurado para um VPort. Antes de alterar o número de entradas de tabela de indireção para VMMQ-RESTRICTED adaptadores, a camada superior garantirá que o conteúdo da tabela de indireção seja normalizado com a potência de 2.

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

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

Código de status Condição de erro
NDIS_STATUS_INVALID_LENGTH A OID estava malformada.
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 de indireção 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 em ou ), 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 impostas. A imposição ocorre durante a transição de estado do 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.

Requisitos

versão: Windows 10, versão 1709 Header: Ntddndis.h (include Ndis.h)

Consulte também