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


структура 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.

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

NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3

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

Задайте для элемента size значение 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, содержащее побитовое OR следующих флагов. Следующие флаги допустимы для OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID и OID_RECEIVE_FILTER_QUEUE_PARAMETERS набора и запроса OID:

NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION

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

NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED

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

Заметка

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

Следующие флаги допустимы для OID_RECEIVE_FILTER_QUEUE_PARAMETERS задания OID и указания состояния 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

Параметр в имя_очереди изменен.

Заметка

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

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 и данных post-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_RECEIVE_FILTER_ALLOCATE_QUEUE OID и OID_RECEIVE_FILTER_QUEUE_PARAMETERS OID.

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.20 и более поздних версиях.
минимальный поддерживаемый сервер Windows Server 2022
заголовка ntddndis.h (include 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