estrutura NDIS_RECEIVE_HASH_PARAMETERS (ntddndis.h)
A estrutura NDIS_RECEIVE_HASH_PARAMETERS especifica os parâmetros de hash de recebimento para um adaptador de miniporto que dá suporte a cálculos de hash de recebimento.
Sintaxe
typedef struct _NDIS_RECEIVE_HASH_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG HashInformation;
USHORT HashSecretKeySize;
ULONG HashSecretKeyOffset;
} NDIS_RECEIVE_HASH_PARAMETERS, *PNDIS_RECEIVE_HASH_PARAMETERS;
Membros
Header
A estrutura NDIS_OBJECT_HEADER para a estrutura de NDIS_RECEIVE_HASH_PARAMETERS. Defina o membro Type da estrutura especificada por Header como NDIS_OBJECT_TYPE_DEFAULT, o membro Revision como NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1 e o membro Size como NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1.
Flags
Um valor USHORT que indica o que o driver de miniporto deve fazer com os parâmetros de hash. O driver de miniporte pode usar esses sinalizadores para determinar rapidamente quais parâmetros foram alterados e atualizar as configurações de hash adequadamente.
Em uma solicitação definida, os sinalizadores são definidos da seguinte maneira:
NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH
Se esse sinalizador estiver definido, habilite o cálculo de valores de hash em quadros recebidos e coloque o valor de hash calculado nas informações do OOB NetBufferListHashValue na estrutura NET_BUFFER_LIST.
Se esse sinalizador estiver claro, desabilite o cálculo de valores de hash em quadros recebidos.
Se o cálculo de hash de recebimento estiver habilitado, o driver de miniporte deverá definir esse sinalizador; caso contrário, esse sinalizador deve ser claro.
NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED
O membro HashInformation não foi alterado. As informações de hash incluem os tipos de hash e a função de hash.
Se esse sinalizador for definido, o membro HashInformation da estrutura NDIS_RECEIVE_HASH_PARAMETERS deverá ser ignorado.
Se esse sinalizador for limpo, o membro HashInformation conterá um novo valor que o driver de miniporto deve usar para calcular valores de hash em quadros recebidos.
NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED
A chave secreta e os membros de dados associados não foram alterados.
Se esse sinalizador estiver definido, a chave secreta e os membros de dados associados deverão ser ignorados.
Se esse sinalizador for limpo, a chave secreta ou os membros de dados associados foram alterados e o driver de miniporto deverá usar as novas informações.
Em uma solicitação de consulta, os sinalizadores são definidos da seguinte maneira:
HashInformation
Em uma solicitação definida, o tipo de hash e a função de hash que a NIC deve usar para calcular os valores de hash para os pacotes de entrada.
Em uma solicitação de consulta, o tipo de hash e a função de hash que a NIC está usando.
Drivers e NDIS em excesso podem usar o NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC macro para combinar o tipo de hash e a função de hash em informações de hash e definir o membro HashInformation .
Os drivers de miniporte podem usar o NDIS_RSS_HASH_TYPE_FROM_HASH_INFO macro para obter o tipo de hash de HashInformation e o NDIS_RSS_HASH_FUNC_FROM_HASH_INFO macro para obter a função de hash.
HashSecretKeySize
O tamanho da matriz de chaves secretas da função de hash, em bytes. O tamanho da matriz é de 40 bytes para NdisHashFunctionToeplitz.
HashSecretKeyOffset
O deslocamento da matriz de chaves secretas da função de hash desde o início da estrutura NDIS_RECEIVE_HASH_PARAMETERS. Use esse deslocamento para obter a chave secreta de 320 bits (40 bytes).
Em uma solicitação definida, a chave secreta pode conter todos os dados escolhidos pelo driver sobressocida.
Em uma solicitação de consulta, a chave secreta contém os dados que a NIC está usando.
Comentários
A estrutura NDIS_RECEIVE_HASH_PARAMETERS define os parâmetros de hash para o OID OID_GEN_RECEIVE_HASH .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.0 e posterior. |
Cabeçalho | ntddndis.h (inclua Ndis.h) |