структура 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 сетевого адаптера. Минипорт-драйвер может указать следующие флаги:
Ценность | Значение |
---|---|
|
Установите этот флаг, если сетевой адаптер поддерживает прерывания, сигнализированные сообщением (MSIs). Этот флаг указывает, что сетевой адаптер может создать отдельное прерывание для каждого ЦП после очереди пакетов, назначенных этому ЦП. |
|
Установите этот флаг, если сетевой адаптер может указать функции MiniportInterrupt, в которой целевые ЦП получили пакеты. |
|
Установите этот флаг, если сетевой адаптер использует сигнальные прерывания сообщений (MSIs). Этот флаг поддерживается в NDIS 6.20 и более поздних версиях. |
|
Установите этот флаг, если сетевой адаптер поддерживает независимую конфигурацию RSS портов. Этот флаг поддерживается в NDIS 6.30 и более поздних версиях. |
|
Установите этот флаг, если сетевой адаптер поддерживает 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 и более поздних версий должны поддерживать этот элемент, который необходим для виртуальных функций.
Замечания
Более избыточные драйверы могут использовать 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) |