структура 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 сетевого адаптера. Драйвер мини-порта может указать следующие флаги:
Значение | Значение |
---|---|
|
Установите этот флаг, если сетевой адаптер поддерживает прерывания с сигналом сообщения (MSIs). Этот флаг указывает, что сетевой адаптер может создать отдельное прерывание для каждого ЦП после того, как он помещает в очередь пакеты, назначенные этому ЦП. |
|
Установите этот флаг, если сетевой адаптер может указать функции MiniportInterrupt , какие целевые ЦП помещали в очередь полученные пакеты. |
|
Установите этот флаг, если сетевой адаптер использует прерывания с сигналом сообщения (MSIs). Этот флаг поддерживается в NDIS 6.20 и более поздних версиях. |
|
Установите этот флаг, если сетевой адаптер поддерживает MSIs. Этот флаг поддерживается в NDIS 6.30 и более поздних версиях. |
|
Установите этот флаг, если драйвер мини-порта может определить, какие целевые ЦП в очереди получают пакеты от своей функции MiniportInterruptDPC . |
|
Установите этот флаг, если сетевой адаптер может идентифицировать IPv4-пакет (с параметрами или без параметров). Кроме того, сетевой адаптер поддерживает вычисление хэш-значения по полям заголовка IPv4 и заголовка TCP. |
|
Установите этот флаг, если сетевой адаптер может идентифицировать пакет IPv6 и вычислить хэш-значение по полям в пакете IPv6. Сетевой адаптер должен иметь возможность вычислять хэш-значение по полям в базовом заголовке IPv6 и по полям в заголовке TCP. Используйте этот флаг, если сетевой адаптер не может вычислить хэш-значение по полям, расположенным в заголовках расширения IPv6. |
|
Установите этот флаг, если сетевой адаптер может идентифицировать пакет IPv6 и вычислять хэш-значение по полям в пакете IPv6, который содержит заголовки расширения IPv6. Сетевой адаптер может вычислять хэш-значение по полям в базовом заголовке IPv6, заголовках расширения IPv6 и заголовке TCP. Сетевой адаптер должен иметь возможность вычислять хэш-значения по полям в параметре "Домашний адрес" и заголовку маршрутизации типа 2 в заголовках расширения IPv6. |
|
Установите этот флаг, если сетевой адаптер может идентифицировать IPv4-пакет с параметрами или без него, а также если сетевой адаптер поддерживает вычисление хэш-значения по полям заголовка IPv4 и полям заголовка UDP. |
|
Установите этот флаг, если сетевой адаптер может идентифицировать пакет IPv6 и вычислить хэш-значение по полям в пакете IPv6. Сетевой адаптер должен иметь возможность вычислять хэш-значение по полям в базовом заголовке IPv6 и по полям в заголовке UDP. Используйте этот флаг, если сетевой адаптер не может вычислить хэш-значение по полям, расположенным в заголовках расширения IPv6. |
|
Установите этот флаг, если сетевой адаптер может идентифицировать пакет IPv6 и вычислять хэш-значение по полям в пакете IPv6, который содержит заголовки расширения IPv6. Сетевой адаптер может вычислить хэш-значение по полям в базовом заголовке IPv6, заголовках расширения IPv6 и заголовке UDP. Сетевой адаптер должен иметь возможность вычислять хэш-значения по полям в параметре "Домашний адрес" и заголовку маршрутизации типа 2 в заголовках расширения IPv6. |
|
Установите этот флаг, если сетевой адаптер поддерживает хэш-функцию toeplitz. Если сетевой адаптер поддерживает RSS, поддержка хэш-функции является обязательной. Дополнительные сведения о хэш-функциях см. в разделе NDIS_RSS_HASH_FUNC_FROM_HASH_INFO. |
|
Этот флаг зарезервирован для использования в будущем. |
|
Этот флаг зарезервирован для использования в будущем. |
|
Этот флаг зарезервирован для использования в будущем. |
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) |