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

Структура NDIS_RECEIVE_QUEUE_PARAMETERS содержит параметры конфигурации очереди получения.

Синтаксис

typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS {
  NDIS_OBJECT_HEADER          Header;
  ULONG                       Flags;
  NDIS_RECEIVE_QUEUE_TYPE     QueueType;
  NDIS_RECEIVE_QUEUE_ID       QueueId;
  NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
  GROUP_AFFINITY              ProcessorAffinity;
  ULONG                       NumSuggestedReceiveBuffers;
  ULONG                       MSIXTableEntry;
  ULONG                       LookaheadSize;
  NDIS_VM_NAME                VmName;
  NDIS_QUEUE_NAME             QueueName;
  ULONG                       PortId;
  ULONG                       InterruptCoalescingDomainId;
  NDIS_QOS_SQ_ID              QosSqId;
} NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS;

Члены

Header

Тип, редакция и размер структуры NDIS_RECEIVE_QUEUE_PARAMETERS . Этот элемент отформатирован как структура NDIS_OBJECT_HEADER .

Драйвер мини-порта должен задать для элемента Typeзаголовка значение NDIS_OBJECT_TYPE_DEFAULT. Чтобы указать версию структуры NDIS_NIC_SWITCH_CAPABILITIES , драйвер должен задать для элемента Revisionзаголовка одно из следующих значений:

NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3

Добавлено поле QosSqId для NDIS 6.50.

Задайте для элемента Размерзначение NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3.

NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2

Добавлены дополнительные члены для NDIS 6.30.

Задайте для элемента Размерзначение NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2.

NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1

Исходная версия для NDIS 6.20.

Задайте для элемента Размерзначение NDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1.

Flags

Значение ULONG , содержащее побитовое ИЛИ следующих флагов. Следующие флаги допустимы для OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID, а также для набора OID_RECEIVE_FILTER_QUEUE_PARAMETERS и идентификатора запроса:

NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION

Драйвер мини-порта не должен смешивать сетевые пакеты для других очередей получения с пакетами для этой очереди в одном вызове функции NdisMIndicateReceiveNetBufferLists .

NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED

Сетевой адаптер должен разделить полученный пакет со смещением, равным или превышающим запрошенный размер lookahead, и использовать DMA для передачи данных lookahead и данных post-lookahead в отдельные сегменты общей памяти.

Примечание

Начиная с версии NDIS 6.30 разделение данных пакетов на отдельные буферы lookahead больше не поддерживается. Драйверы miniport, поддерживающие NDIS 6.30 или более поздних версий, должны игнорировать этот флаг.

Следующие флаги допустимы для OID_RECEIVE_FILTER_QUEUE_PARAMETERS заданного идентификатора идентификатора и указания состояния NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS :

NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED

Параметр в элементе Flags изменился.

NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED

Параметр в элементе ProcessorAffinity изменен.

NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED

Параметр в элементе NumSuggestedReceiveBuffers изменен.

NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED

Параметр в элементе QueueName изменен.

Примечание

Драйвер определяет, какие параметры очереди получения были изменены, выполняя побитовую операцию AND между определением NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK и значением в элементе Flags . Если результат равен нулю, параметры очереди получения не были изменены.

QueueType

Значение перечисления NDIS_RECEIVE_QUEUE_TYPE , указывающее тип очереди получения.

QueueId

Значение типа NDIS_RECEIVE_QUEUE_ID , содержащее идентификатор очереди получения. Этот идентификатор представляет собой целочисленное значение от нуля до количества очередей, поддерживаемых сетевым адаптером. Значение NDIS_DEFAULT_RECEIVE_QUEUE_ID указывает очередь получения по умолчанию.

QueueGroupId

Этот элемент зарезервирован для NDIS.

ProcessorAffinity

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

NumSuggestedReceiveBuffers

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

MSIXTableEntry

Этот элемент зарезервирован для NDIS.

LookaheadSize

Значение ULONG для размера (в байтах) требования к размеру lookahead для этой очереди. Сетевой адаптер, поддерживающий lookahead в очередях виртуальных машин, разделяет полученный пакет со смещением, равным или превышающим запрошенный размер lookahead, и использует DMA для передачи данных lookahead и данных после просмотра в отдельные сегменты общей памяти. Если lookaheadSize равно нулю, драйвер мини-порта не должен разделять пакет.

LookaheadSize является допустимым , если NDIS устанавливает флаг NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED в элементе Flags . То есть драйвер мини-порта должен разделить пакет на указанный размер lookahead, если также установлен флаг . Если флаг не задан, недопустимое ненулевое значение для LookaheadSize .

Примечание

Начиная с версии NDIS 6.30 разделение данных пакетов на отдельные буферы lookahead больше не поддерживается. Значение этого элемента должно быть равно нулю.

VmName

Значение NDIS_VM_NAME , содержащее описание виртуальной машины, которую считывают пользователи.

QueueName

Значение NDIS_QUEUE_NAME , содержащее описание очереди, которую считывают пользователи.

PortId

Значение ULONG, содержащее уникальный идентификатор порта на расширяемом коммутаторе Hyper-V, к которому подключена очередь виртуальной машины.

InterruptCoalescingDomainId

Этот элемент зарезервирован для NDIS.

QosSqId

Связывает очередь виртуальных машин (VMQ) с очередью планировщика (SQ). Присвойте этому полю нулевое значение, чтобы не было связи SQ. Дополнительные сведения о NDIS_QOS_SQ_ID см. в разделе OID_QOS_OFFLOAD_CREATE_SQ.

Поддержка качества обслуживания оборудования (QoS) для устаревшей виртуальной машины не требуется. Драйвер мини-порта может возвращать NDIS_STATUS_NOT_SUPPORTED, если QosSqId не равен нулю.

Комментарии

Структура NDIS_RECEIVE_QUEUE_PARAMETERS используется в OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE и OID OID_RECEIVE_FILTER_QUEUE_PARAMETERS .

В NDIS 6.30 структура NDIS_RECEIVE_QUEUE_PARAMETERS также используется в NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS указаниях состояния.

Требования

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

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

NDIS_OBJECT_HEADER

NDIS_RECEIVE_QUEUE_TYPE

NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS

NdisMIndicateReceiveNetBufferLists

OID_RECEIVE_FILTER_ALLOCATE_QUEUE

OID_RECEIVE_FILTER_QUEUE_PARAMETERS