Поделиться через


структура NDIS_RECEIVE_HASH_PARAMETERS (ntddndis.h)

Структура NDIS_RECEIVE_HASH_PARAMETERS задает параметры хэша приема для адаптера минипорта, который поддерживает вычисления хэша приема.

Синтаксис

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;

Члены

Header

Структура NDIS_OBJECT_HEADER для структуры NDIS_RECEIVE_HASH_PARAMETERS. Задайте для элемента Type структуры, указанной в заголовке , значение NDIS_OBJECT_TYPE_DEFAULT, для элемента Revision — NDIS_RECEIVE_HASH_PARAMETERS_REVISION_1, а для элемента Size — значение NDIS_SIZEOF_RECEIVE_HASH_PARAMETERS_REVISION_1.

Flags

Значение USHORT, указывающее, что драйвер мини-порта должен делать с параметрами хэша. Драйвер мини-порта может использовать эти флаги, чтобы быстро определить, какие параметры были изменены, и соответствующим образом обновить параметры хэша.

В запросе набора флаги определяются следующим образом:

NDIS_RECEIVE_HASH_FLAG_ENABLE_HASH

Если этот флаг установлен, включите вычисление хэш-значений для полученных кадров и поместите вычисляемое хэш-значение в сведения об OOB NetBufferListHashValue в структуре NET_BUFFER_LIST.

Если этот флаг не задан, отключите вычисление хэш-значений для полученных кадров.

Если включено вычисление хэша получения, драйвер мини-порта должен установить этот флаг; в противном случае этот флаг должен быть снят.

NDIS_RECEIVE_HASH_FLAG_HASH_INFO_UNCHANGED

Элемент HashInformation не изменился. Сведения о хэшах включают хэш-типы и хэш-функцию.

Если этот флаг установлен, элемент HashInformation структуры NDIS_RECEIVE_HASH_PARAMETERS следует игнорировать.

Если этот флаг снят, элемент HashInformation содержит новое значение, которое драйвер мини-порта должен использовать для вычисления хэш-значений для полученных кадров.

NDIS_RECEIVE_HASH_FLAG_HASH_KEY_UNCHANGED

Секретный ключ и связанные с ним элементы данных не изменились.

Если этот флаг установлен, секретный ключ и связанные с ним элементы данных следует игнорировать.

Если этот флаг снят, секретный ключ или связанные с ним элементы данных были изменены, и драйвер miniport должен использовать новые сведения.

В запросе флаги определяются следующим образом:

HashInformation

В запросе набора хэш-тип и хэш-функция, которые сетевой адаптер должен использовать для вычисления значений хэша для входящих пакетов.

В запросе — хэш-тип и хэш-функция, которые использует сетевой адаптер.

Драйверы overlying и NDIS могут использовать NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC макрос для объединения типа хэша и хэш-функции в хэш-информацию и задания элемента HashInformation .

Драйверы минипорта могут использовать NDIS_RSS_HASH_TYPE_FROM_HASH_INFO макрос для получения типа хэша из HashInformation и NDIS_RSS_HASH_FUNC_FROM_HASH_INFO макрос для получения хэш-функции.

HashSecretKeySize

Размер массива секретных ключей хэш-функции в байтах. Размер массива для NdisHashFunctionToeplitz составляет 40 байт.

HashSecretKeyOffset

Смещение массива секретных ключей хэш-функции от начала структуры NDIS_RECEIVE_HASH_PARAMETERS. Используйте это смещение, чтобы получить 320-разрядный (40 байт) секретный ключ.

В запросе набора секретный ключ может содержать любые данные, выбранные драйвером overlying.

В запросе секретный ключ содержит данные, которые использует сетевой адаптер.

Комментарии

Структура NDIS_RECEIVE_HASH_PARAMETERS определяет параметры хэша для объекта OID_GEN_RECEIVE_HASH OID.

Примечание Драйверы протоколов должны отключить вычисления хэша приема, прежде чем включить RSS. Если rss включена, драйвер протокола отключает RSS перед включением вычислений хэша получения. Драйвер мини-порта должен не выполнить запрос на включение вычислений хэша получения или RSS, если в настоящее время включена другая служба.
 
Примечание Секретный ключ добавляется после элементов структуры NDIS_RECEIVE_HASH_PARAMETERS.
 

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Верхняя часть ntddndis.h (включая Ndis.h)

См. также раздел

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_TYPE_FROM_HASH_INFO NDIS_RSS_HASH_INFO_FROM_TYPE_AND_FUNC NDIS_RSS_HASH_FUNC_FROM_HASH_INFO

NET_BUFFER_LIST

OID_GEN_RECEIVE_HASH