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