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


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

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

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

RSSv2 доступна только в Windows 10 версии 1803.

Структура NDIS_RSS_SET_INDIRECTION_ENTRY представляет команду для задания одной записи таблицы косвенного обращения. Он содержится в структуре NDIS_RSS_SET_INDIRECTION_ENTRIES, которая используется в OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES OID. 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 был недопустимым.
  • Элемент флагов недопустим.
  • Элемент DirectionTableIndex превышает текущий настроенный элемент 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 (include Ndis.h)

См. также

NDIS_RSS_SET_INDIRECTION_ENTRIES

OID_GEN_RSS_SET_INDIRECTION_TABLE_ENTRIES

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

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