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


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

Предупреждение

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

ВЕРСИЯ RSSv2 доступна только в Windows 10 версии 1803.

Структура NDIS_RSS_SET_INDIRECTION_ENTRY представляет команду для задания одной записи таблицы косвенного обращения. Он содержится в структуре NDIS_RSS_SET_INDIRECTION_ENTRIES , которая используется в OID OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES . OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES — это синхронный OID для RSS версии 2 (RSSv2).

Синтаксис

typedef struct _NDIS_RSS_SET_INDIRECTION_ENTRY {
  NDIS_NIC_SWITCH_ID       SwitchId;
  NDIS_NIC_SWITCH_VPORT_ID VPortId;
  ULONG                    Flags;
  USHORT                   IndirectionTableIndex;
  PROCESSOR_NUMBER         TargetProcessorNumber;
  NDIS_STATUS              EntryStatus;
} NDIS_RSS_SET_INDIRECTION_ENTRY, *PNDIS_RSS_SET_INDIRECTION_ENTRY;

Члены

SwitchId

Значение NDIS_NIC_SWITCH_ID, представляющее коммутатор сетевой карты, в котором находится VPort.

Идентификатор коммутатора — это целое число от нуля до числа коммутаторов, поддерживаемых сетевым адаптером. Значение NDIS_DEFAULT_SWITCH_ID указывает на коммутатор сетевого адаптера по умолчанию.

Это поле должно иметь значение 0 в собственном случае RSS.

VPortId

Значение NDIS_NIC_SWITCH_VPORT_ID, представляющее идентификатор VPort.

Это поле должно иметь значение 0 в собственном случае RSS.

Flags

Значение ULONG , содержащее побитовое ИЛИ флагов. Этот элемент квалифифициирует сведения в этой структуре.

Возможны следующие флаги:

Значение Значение
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_PRIMARY_PROCESSOR
Указывает, что NDIS_RSS_SET_INDIRECTION_ENTRY ссылается на основной обработчик сущности масштабирования. Таблица косвенного обращения не используется. Если основной процессор *неактивен* (включен RSS), драйвер мини-порта должен отслеживать обновления записей с установленным флагом, чтобы знать, какой процессор будет основным при отключении RSS.
NDIS_RSS_SET_INDIRECTION_ENTRY_FLAG_DEFAULT_PROCESSOR
Указывает, что NDIS_RSS_SET_INDIRECTION_ENTRY ссылается на обработчик объекта масштабирования по умолчанию. Обработчик по умолчанию обрабатывает невешированные пакеты. Таблица косвенного обращения не используется. Если процессор по умолчанию является *неактивным* (RSS отключен), драйвер мини-порта должен отслеживать обновления записей с установленным флагом, чтобы знать, какой процессор будет использоваться по умолчанию при включении RSS.

IndirectionTableIndex

Хэш-индекс ITE, который в настоящее время указывает на текущий ЦП и изменяется таким образом, чтобы он указывал на другой процессор. Если таблица косвенного обращения неактивна (RSS отключена), драйвер мини-порта должен отслеживать обновления записей таблицы косвенного обращения, чтобы иметь правильную таблицу косвенного обращения при включении RSS.

TargetProcessorNumber

Целевой номер процессора, на который ИТ-приложение должно указывать после завершения. Драйвер мини-порта должен успешно переместится с текущего на текущий процессор.

EntryStatus

Код NDIS_STATUS, указывающий состояние операции перемещения для этой записи. Так как NDIS_RSS_SET_INDIRECTION_ENTRY используется в контексте синхронного вызова OID, драйвер мини-порта не может возвращать NDIS_STATUS_PENDING для этого элемента.

Чтобы упростить реализацию драйверов минипорта, протокол верхнего уровня инициализирует это поле для NDIS_STATUS_PENDING. Драйверы минипорта должны перезаписывать NDIS_STATUS_PENDING кодом состояния NDIS успешно или неудачно. Если верхний слой обнаруживает, что это поле по-прежнему NDIS_STATUS_PENDING после завершения OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID, это вызовет системную ошибку проверка и указывает на то, что драйвер минипорта неисправен.

Важно!

Все NDIS_RSS_SET_INDIRECTION_ENTRY структуры в группе, содержащиеся в структуре NDIS_RSS_SET_INDIRECTION_ENTRIES , должны быть помечены тем же параметром EntryStatus.

Если при выполнении этой команды перемещения возникает ошибка, задайте для параметра EntryStatus один из следующих кодов состояния для этого условия ошибки:

Код состояния Условие ошибки
NDIS_STATUS_INVALID_PARAMETER
  • Недопустимый элемент SwitchId или VPortId .
  • Недопустимый элемент Flags .
  • Член IndirectionTableIndex превышает текущее значение NumberOfIndirectionTableEntries из структуры NDIS_RECEIVE_SCALE_PARAMETERS_V2 .
NDIS_STATUS_INVALID_PORT_STATE VPort не активирован или находится в другом состоянии, которое не позволяет принимать идентификаторы OID RSSv2.
NDIS_STATUS_NOT_ACCEPTED Недопустимый ЦП субъекта.
NDIS_STATUS_INVALID_DATA Для активного параметра рулевого управления новый процессор не является частью набора процессоров RSS адаптера. Обратите внимание, что неактивные параметры необходимо отслеживать только. Они проверяются позже, во время перехода состояния RSS (в положение включено или выключено).
NDIS_STATUS_NO_QUEUES Группа записей команд завершается ошибкой "количество очередей" проверка для VPort, указанного этой группой.

Требования

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

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

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

Масштабирование на стороне приема версии 2 (RSSv2)

Синхронный интерфейс запроса OID в NDIS 6.80