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


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

Структура NDIS_RECEIVE_SCALE_CAPABILITIES указывает возможности масштабирования на стороне (RSS) мини-адаптера.

Синтаксис

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;

Члены

Header

Структура NDIS_OBJECT_HEADER для структуры NDIS_RECEIVE_SCALE_CAPABILITIES. Задайте элемент типа структуры, заголовка, для NDIS_OBJECT_TYPE_RSS_CAPABILITIES.

Для NDIS 6.60 и более поздних версий установите редакции NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 и элемент размераNDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3.

Для NDIS 6.30 и более поздних версий задайте для члена редакции значение NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2, а размерNDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2.

Для NDIS 6.0, 6.1 и 6.20 задайте для элемента редакции значение NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1, а для элемента размераNDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1.

CapabilitiesFlags

Битовая маска флагов, указывающая возможности RSS сетевого адаптера. Минипорт-драйвер может указать следующие флаги:

Ценность Значение
NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
Установите этот флаг, если сетевой адаптер поддерживает прерывания, сигнализированные сообщением (MSIs). Этот флаг указывает, что сетевой адаптер может создать отдельное прерывание для каждого ЦП после очереди пакетов, назначенных этому ЦП.
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
Установите этот флаг, если сетевой адаптер может указать функции MiniportInterrupt, в которой целевые ЦП получили пакеты.
NDIS_RSS_CAPS_USING_MSI_X
Установите этот флаг, если сетевой адаптер использует сигнальные прерывания сообщений (MSIs). Этот флаг поддерживается в NDIS 6.20 и более поздних версиях.
NDIS_RSS_CAPS_RSS_AVAILABLE_ON_PORTS
Установите этот флаг, если сетевой адаптер поддерживает независимую конфигурацию RSS портов. Этот флаг поддерживается в NDIS 6.30 и более поздних версиях.
NDIS_RSS_CAPS_SUPPORTS_MSI_X
Установите этот флаг, если сетевой адаптер поддерживает MSIs. Этот флаг поддерживается в NDIS 6.30 и более поздних версиях.
NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
Установите этот флаг, если мини-драйвер может определить, какие целевые ЦП получили пакеты из функции MiniportInterruptDPC.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4
Установите этот флаг, если сетевой адаптер может идентифицировать пакет IPv4 (с параметрами или без нее). Кроме того, сетевой адаптер поддерживает вычисление хэш-значения по полям заголовка IPv4 и полям заголовка TCP.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
Установите этот флаг, если сетевой адаптер может определить пакет IPv6 и вычислить хэш-значение по полям в пакете IPv6. Сетевой адаптер должен иметь возможность вычислять хэш-значение по полям в базовом заголовке IPv6 и по полям в заголовке TCP. Используйте этот флаг, если сетевой адаптер не может вычислить хэш-значение по полям, расположенным в заголовках расширения IPv6.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
Установите этот флаг, если сетевой адаптер может определить пакет IPv6 и вычислить хэш-значение по полям в пакете IPv6, который содержит заголовки расширения IPv6. Сетевой адаптер может вычислять хэш-значение по полям в базовом заголовке IPv6, заголовках расширения IPv6 и заголовке TCP. Сетевой адаптер должен иметь возможность вычислять хэш-значения по полям в параметре домашнего адреса и заголовке маршрутизации типа 2 в заголовках расширения IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4
Установите этот флаг, если сетевой адаптер может идентифицировать пакет IPv4, с параметрами или без параметров, и если сетевой адаптер поддерживает вычисление хэш-значения по полям заголовка IPv4 и полям заголовка UDP.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6
Установите этот флаг, если сетевой адаптер может определить пакет IPv6 и вычислить хэш-значение по полям в пакете IPv6. Сетевой адаптер должен иметь возможность вычислять хэш-значение по полям в базовом заголовке IPv6 и полях в заголовке UDP. Используйте этот флаг, если сетевой адаптер не может вычислить хэш-значение по полям, расположенным в заголовках расширения IPv6.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX
Установите этот флаг, если сетевой адаптер может определить пакет IPv6 и вычислить хэш-значение по полям в пакете IPv6, который содержит заголовки расширения IPv6. Сетевой адаптер может вычислять хэш-значение по полям в базовом заголовке IPv6, заголовках расширений IPv6 и заголовке UDP. Сетевой адаптер должен иметь возможность вычислять хэш-значения по полям в параметре домашнего адреса и заголовке маршрутизации типа 2 в заголовках расширения IPv6.
NdisHashFunctionToeplitz
Установите этот флаг, если сетевой адаптер поддерживает хэш-функцию toeplitz. Если сетевой адаптер поддерживает RSS, поддержка хэш-функции является обязательной. Дополнительные сведения о хэш-функциях см. в NDIS_RSS_HASH_FUNC_FROM_HASH_INFO.
NdisHashFunctionReserved1
Этот флаг зарезервирован для дальнейшего использования.
NdisHashFunctionReserved2
Этот флаг зарезервирован для дальнейшего использования.
NdisHashFunctionReserved3
Этот флаг зарезервирован для дальнейшего использования.

NumberOfInterruptMessages

Количество сообщений прерываний, поддерживаемых сетевой картой, если сетевой адаптер поддерживает MSIs. Если сетевой адаптер не поддерживает MSIs, но поддерживает прерывания на основе строк, задайте для этого числа значение 1.

NumberOfReceiveQueues

Количество очередей получения оборудования, поддерживаемых сетевой картой.

NumberOfIndirectionTableEntries

Максимальное количество записей, поддерживаемых драйвером минипорта в таблице непрямого обращения. Это значение должно иметь значение 2. Все адаптеры NDIS 6.30 и более поздних версий должны поддерживать этот элемент, который необходим для виртуальных функций.

Замечания

Более избыточные драйверы могут использовать OID_GEN_RECEIVE_SCALE_CAPABILITIES OID для запроса возможностей масштабирования на стороне приема (RSS) сетевого адаптера и его мини-порта.

Мини-порт возвращает возможности RSS в структуре NDIS_RECEIVE_SCALE_CAPABILITIES.

Для некоторых рабочих нагрузок подмножество пакетов UDP может быть фрагментировано из-за изменений маршрута или отправителя, не примечающего к ограничениям MTU. В таких редких случаях пакеты одного потока могут быть указаны на разных процессорах на основе хэша 4-кортежа или 2 кортежа. Таким образом, минипорт-драйверы, объявляющие NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4, NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6и NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX, должны предоставлять способ отключения возможностей RSS UDP через расширенные свойства.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
заголовка ntddndis.h (include Ndis.h)

См. также

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

масштабирование на стороне получения (RSS)