Compartilhar via


estrutura NDIS_RECEIVE_SCALE_CAPABILITIES (ntddndis.h)

A estrutura NDIS_RECEIVE_SCALE_CAPABILITIES especifica os recursos de RSS (dimensionamento lateral de recebimento) de um adaptador de miniporta.

Sintaxe

typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_RSS_CAPS_FLAGS CapabilitiesFlags;
  ULONG               NumberOfInterruptMessages;
  ULONG               NumberOfReceiveQueues;
  USHORT              NumberOfIndirectionTableEntries;
} NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;

Membros

Header

A estrutura NDIS_OBJECT_HEADER para a estrutura NDIS_RECEIVE_SCALE_CAPABILITIES . Defina o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_RSS_CAPABILITIES.

Para o NDIS 6.60 e posterior, defina o membro Revision como NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 e o membro Size como NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3.

Para o NDIS 6.30 e posterior, defina o membro Revision como NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 e o membro Size como NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2.

Para NDIS 6.0, 6.1 e 6.20, defina o membro Revision como NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 e o membro Size como NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1.

CapabilitiesFlags

Uma máscara de bits de sinalizadores que especificam os recursos RSS da NIC. O driver de miniporta pode especificar os seguintes sinalizadores:

Valor Significado
NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
Defina esse sinalizador se a NIC der suporte a MSIs (interrupções sinalizadas por mensagem). Esse sinalizador indica que a NIC pode gerar uma interrupção separada para cada CPU depois de enfileirar os pacotes atribuídos a essa CPU.
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
Defina esse sinalizador se a NIC puder indicar para a função MiniportInterrupt que as CPUs de destino enfileiraram pacotes recebidos.
NDIS_RSS_CAPS_USING_MSI_X
Defina esse sinalizador se a NIC estiver usando MSIs (interrupções sinalizadas por mensagem). Esse sinalizador tem suporte no NDIS 6.20 e posterior.
NDIS_RSS_CAPS_SUPPORTS_MSI_X
Defina esse sinalizador se a NIC der suporte a MSIs. Esse sinalizador tem suporte no NDIS 6.30 e posterior.
NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
Defina esse sinalizador se o driver de miniporto puder detectar quais CPUs de destino enfileiraram pacotes de recebimento de sua função MiniportInterruptDPC .
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4
Defina esse sinalizador se a NIC puder identificar um pacote IPv4 (com ou sem opções). Além disso, a NIC dá suporte ao cálculo do valor de hash sobre os campos de cabeçalho IPv4 e campos de cabeçalho TCP.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
Defina esse sinalizador se a NIC puder identificar um pacote IPv6 e calcular um valor de hash em campos em um pacote IPv6. A NIC deve ser capaz de calcular um valor de hash em campos no cabeçalho IPv6 básico e em campos no cabeçalho TCP. Use esse sinalizador se a NIC não puder calcular um valor de hash em campos localizados em cabeçalhos de extensão IPv6.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
Defina esse sinalizador se a NIC puder identificar um pacote IPv6 e calcular um valor de hash em campos em um pacote IPv6 que contenha cabeçalhos de extensão IPv6. A NIC pode calcular um valor de hash em campos no cabeçalho IPv6 básico, cabeçalhos de extensão IPv6 e cabeçalho TCP. A NIC deve ser capaz de calcular valores de hash em campos na opção de endereço residencial e o cabeçalho de roteamento tipo 2 nos cabeçalhos de extensão IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4
Defina esse sinalizador se a NIC puder identificar um pacote IPv4, com ou sem opções, e se a NIC der suporte ao cálculo do valor de hash sobre os campos de cabeçalho IPv4 e campos de cabeçalho UDP.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6
Defina esse sinalizador se a NIC puder identificar um pacote IPv6 e calcular um valor de hash em campos em um pacote IPv6. A NIC deve ser capaz de calcular um valor de hash em campos no cabeçalho IPv6 básico e em campos no cabeçalho UDP. Use esse sinalizador se a NIC não puder calcular um valor de hash em campos localizados em cabeçalhos de extensão IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX
Defina esse sinalizador se a NIC puder identificar um pacote IPv6 e calcular um valor de hash em campos em um pacote IPv6 que contenha cabeçalhos de extensão IPv6. A NIC pode calcular um valor de hash em campos no cabeçalho IPv6 básico, cabeçalhos de extensão IPv6 e o cabeçalho UDP. A NIC deve ser capaz de calcular valores de hash em campos na opção de endereço residencial e o cabeçalho de roteamento tipo 2 nos cabeçalhos de extensão IPv6.
NdisHashFunctionToeplitz
Defina esse sinalizador se a NIC der suporte à função de hash toeplitz. Se a NIC der suporte ao RSS, o suporte para a função de hash será obrigatório. Para obter mais informações sobre funções de hash, consulte NDIS_RSS_HASH_FUNC_FROM_HASH_INFO.
NdisHashFunctionReserved1
Esse sinalizador é reservado para uso futuro.
NdisHashFunctionReserved2
Esse sinalizador é reservado para uso futuro.
NdisHashFunctionReserved3
Esse sinalizador é reservado para uso futuro.

NumberOfInterruptMessages

O número de mensagens de interrupção compatíveis com a NIC se a NIC der suporte a MSIs. Se a NIC não der suporte a MSIs, mas der suporte a interrupções baseadas em linha, defina esse número como 1.

NumberOfReceiveQueues

O número de filas de recebimento de hardware às quais a NIC dá suporte.

NumberOfIndirectionTableEntries

O número máximo de entradas às quais o driver de miniporto dá suporte na tabela de indireção. Esse valor deve ser uma potência de 2. Todos os adaptadores de miniporta NDIS 6.30 e posterior devem dar suporte a esse membro, que é necessário para funções virtuais.

Comentários

Drivers de sobreposição podem usar o OID_GEN_RECEIVE_SCALE_CAPABILITIES OID para consultar os recursos de RSS (dimensionamento lateral de recebimento) de uma NIC e seu driver de miniporta.

O driver de miniporta retorna as funcionalidades do RSS em uma estrutura NDIS_RECEIVE_SCALE_CAPABILITIES .

Para algumas cargas de trabalho, um subconjunto de pacotes UDP pode ser fragmentado devido a alterações de rota ou o remetente não aderindo às limitações de MTU. Nesses casos raros, pacotes do mesmo fluxo podem ser indicados em processadores diferentes com base no hash de 4 tuplas ou de 2 tuplas. Portanto, os drivers de miniport que anunciam NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4, NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6 e NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX devem fornecer uma maneira de desabilitar os recursos do UDP RSS por meio de Propriedades Avançadas.

Requisitos

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

Confira também

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

RSS (Receive Side Scaling)