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


структура 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 . Задайте для элемента Type структуры, указанной в заголовке, значение NDIS_OBJECT_TYPE_RSS_CAPABILITIES.

Для NDIS 6.60 и более поздних версий задайте для элемента Revisionзначение NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 , а для элемента Sizeзначение NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3.

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

Для NDIS 6.0, 6.1 и 6.20 задайте для элемента Revisionзначение NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 , а для элемента Size— 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_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 и более поздних версий должны поддерживать этот элемент, необходимый для виртуальных функций.

Комментарии

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

Драйвер мини-порта возвращает возможности 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 , должны предоставлять способ отключения возможностей UDP RSS с помощью дополнительных свойств.

Требования

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

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

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

Receive Side Scaling (RSS)