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 |
---|---|
|
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. |
|
Defina esse sinalizador se a NIC puder indicar para a função MiniportInterrupt que as CPUs de destino enfileiraram pacotes recebidos. |
|
Defina esse sinalizador se a NIC estiver usando MSIs (interrupções sinalizadas por mensagem). Esse sinalizador tem suporte no NDIS 6.20 e posterior. |
|
Defina esse sinalizador se a NIC der suporte a MSIs. Esse sinalizador tem suporte no NDIS 6.30 e posterior. |
|
Defina esse sinalizador se o driver de miniporto puder detectar quais CPUs de destino enfileiraram pacotes de recebimento de sua função MiniportInterruptDPC . |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
Esse sinalizador é reservado para uso futuro. |
|
Esse sinalizador é reservado para uso futuro. |
|
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) |