estrutura NDIS_RSS_SET_INDIRECTION_ENTRY (ntddndis.h)

Aviso

Algumas informações neste tópico estão relacionadas 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 1803.

A estrutura NDIS_RSS_SET_INDIRECTION_ENTRY representa um comando para definir uma única entrada de tabela de indireção. Ele está contido em uma estrutura NDIS_RSS_SET_INDIRECTION_ENTRIES , que é usada no OID do OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES . OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES é um OID síncrono para RSS versão 2 (RSSv2).

Sintaxe

typedef struct _NDIS_RSS_SET_INDIRECTION_ENTRY {
  NDIS_NIC_SWITCH_ID       SwitchId;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
  ULONG                    Flags;
  USHORT                   IndirectionTableIndex;
  PROCESSOR_NUMBER         TargetProcessorNumber;
  NDIS_STATUS              EntryStatus;
} NDIS_RSS_SET_INDIRECTION_ENTRY, *PNDIS_RSS_SET_INDIRECTION_ENTRY;

Membros

SwitchId

Um valor NDIS_NIC_SWITCH_ID que representa a opção NIC em que o VPort reside.

O identificador de comutador é um inteiro entre zero e o número de opções compatíveis com o adaptador de rede. Um valor NDIS_DEFAULT_SWITCH_ID indica o comutador de adaptador de rede padrão.

Esse campo deve ser definido como 0 no caso RSS nativo.

VPortId

Um valor NDIS_NIC_SWITCH_VPORT_ID que representa o identificador VPort.

Esse campo deve ser definido como 0 no caso RSS nativo.

Flags

Um valor ULONG que contém um OR bit a bit de sinalizadores. Esse membro qualifica as informações nessa estrutura.

Os sinalizadores possíveis são os seguintes:

Valor Significado
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
Indica que o NDIS_RSS_SET_INDIRECTION_ENTRY está se referindo ao processador primário da entidade de dimensionamento. A tabela de indireção não é usada. Quando o processador primário está *inativo* (o RSS está habilitado), o driver de miniporta deve acompanhar as atualizações das entradas com esse sinalizador definido para que ele saiba qual processador será o principal quando o RSS estiver desabilitado.
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
Indica que o NDIS_RSS_SET_INDIRECTION_ENTRY está se referindo ao processador padrão da entidade de dimensionamento. O processador padrão lida com pacotes unhed. A tabela de indireção não é usada. Quando o processador padrão é *inativo* (o RSS está desabilitado), o driver de miniporta deve acompanhar as atualizações das entradas com esse sinalizador definido para que ele saiba qual processador será padrão quando o RSS estiver habilitado.

IndirectionTableIndex

O índice de hash do ITE que atualmente aponta para a CPU atual e está sendo modificado para apontar para outro processador. Quando a tabela de indireção está inativa (o RSS está desabilitado), o driver de miniporta deve acompanhar as atualizações para entradas de tabela de indireção para que ele tenha a tabela de indireção correta quando o RSS estiver habilitado.

TargetProcessorNumber

O número do processador de destino para o qual o ITE deve apontar após a conclusão. O driver de miniporta deve ter êxito nas movimentações de ITE do processador atual para o atual.

EntryStatus

Um código NDIS_STATUS que indica o status da operação de movimentação para essa entrada. Como NDIS_RSS_SET_INDIRECTION_ENTRY é usado no contexto de uma chamada OID síncrona, o driver de miniporto não pode retornar NDIS_STATUS_PENDING para esse membro.

Para simplificar a implementação dos drivers de miniport, o protocolo de camada superior inicializará esse campo para NDIS_STATUS_PENDING. Os drivers de miniporto devem substituir NDIS_STATUS_PENDING por um código de status NDIS com êxito ou falha. Se a camada superior detectar que esse campo ainda está NDIS_STATUS_PENDING após a conclusão do OID do OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES, isso causará um bug no sistema marcar e indicará que o driver de miniporto está em falha.

Importante

Todas as estruturas NDIS_RSS_SET_INDIRECTION_ENTRY em um grupo, contidas em uma estrutura NDIS_RSS_SET_INDIRECTION_ENTRIES , devem ser marcadas com o mesmo EntryStatus.

Se ocorrer um erro com esse comando de movimentação, defina EntryStatus como um dos seguintes códigos de status para essa condição de erro:

Código de status Condição de erro
NDIS_STATUS_INVALID_PARAMETER
  • O membro SwitchId ou VPortId era inválido.
  • O membro Flags era inválido.
  • O membro IndirectionTableIndex excede o NumberOfIndirectionTableEntries configurado no momento da estrutura NDIS_RECEIVE_SCALE_PARAMETERS_V2 .
NDIS_STATUS_INVALID_PORT_STATE O VPort não está ativado ou está em algum outro estado que o impede de aceitar OIDs RSSv2.
NDIS_STATUS_NOT_ACCEPTED A CPU do ator era inválida.
NDIS_STATUS_INVALID_DATA Para um parâmetro de direção ativo , o novo processador não faz parte do conjunto de processadores RSS do adaptador. Observe que os parâmetros inativos só precisam ser rastreados. Eles são validados posteriormente, durante a transição de estado RSS (para ativar ou desativar).
NDIS_STATUS_NO_QUEUES Um grupo de entradas de comando falha no "número de filas" marcar para o VPort especificado por esse grupo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.80 e posterior.
Cabeçalho ntddndis.h (inclua Ndis.h)

Confira também

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

RSSv2 (Receive Side Scaling Version 2)

Interface de solicitação OID síncrona no NDIS 6.80