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 |
|
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)