Partilhar 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, das informações aqui fornecidas.

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

O OID_GEN_RECEIVE_SCALE_PARAMETERS_V2 OID é enviado para drivers de miniporto compatíveis com RSSv2 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. Ela é emitida em IRQL == PASSIVE_LEVEL. Ele pode direcionar um determinado VPort, quando o sinalizador NDIS_OID_REQUEST_FLAGS_VPORT_ID_VALID é definido na criação do comutador NIC. Caso contrário, ele tem como destino a NIC física no caso RSS nativo.

Como uma consulta, o NDIS e os drivers overlying 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 desse OID é executar as seguintes ações:

  • Inicialmente, configure a entidade de dimensionamento (um adaptador de miniporte no modo RSS nativo ou uma 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.

Comentários

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

  • O processador primário fica 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, o DefaultQueue e o PrimaryProcessor também são movidos para um processador diferente usando OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES.

Durante o processo de desabilitação do RSS, a camada superior apontará todos os ITEs para o processador primário antes de invocar esse 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 miniport 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 violadas 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 adaptadores VMMQ-RESTRICTED, 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 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 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 ativar ou desativar), 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 os parâmetros de direção inativos estão apenas rastreando gravações no processador e não são impostos. 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 Cabeçalho: Ntddndis.h (include Ndis.h)

Confira também