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


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

Структура NDIS_QOS_SQ_PARAMETERS содержит параметры очереди планировщика качества обслуживания (QoS) NDIS.

Синтаксис

typedef struct _NDIS_QOS_SQ_PARAMETERS {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  NDIS_QOS_SQ_ID     SqId;
  NDIS_QOS_SQ_TYPE   SqType;
  BOOLEAN            TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
  ULONG              CrossTcTransmitBandwidthCap;
  ULONG              MaxNumSqInputs;
} NDIS_QOS_SQ_PARAMETERS, *PNDIS_QOS_SQ_PARAMETERS;

Члены

Header

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

Драйвер мини-порта должен задать для элемента Typeзаголовка значение NDIS_OBJECT_TYPE_DEFAULT, для элемента Revision — NDIS_QOS_SQ_PARAMETERS_REVISION_2, а для элемента Size — NDIS_SIZEOF_QOS_SQ_PARAMETERS_REVISION_2.

Flags

Значение ULONG, содержащее побитовое ИЛИ флагов. Эти флаги указывают прочие возможности и атрибуты функций разгрузки качества обслуживания оборудования, включенных на SQ. Определены следующие флаги:

NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED

Если этот флаг установлен, для этого SQ включены ограничения пропускной способности передачи.

NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED

Если этот флаг установлен, резервирование пропускной способности передачи включено на этом sq.

NDIS_QOS_SQ_RECEIVE_CAP_ENABLED

Если этот флаг установлен, для этого SQ включены ограничения пропускной способности получения.

SqId

NDIS_QOS_SQ_ID, содержащий идентификатор SQ этого sq. NDIS назначает этот идентификатор.

SqType

NDIS_QOS_SQ_TYPE, содержащий тип этого SQ. Это может быть NdisQSQosSqSQTypeStandard из определения перечисления NDIS_QOS_SQ_TYPE.

TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

Массив значений BOOLEAN, указывающих, включен ли для каждого класса трафика (от 0 до NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES) планирование на этом sq.

Любой класс трафика (TC), для которого это поле имеет значение TRUE , должен считываться и проверяться в приведенных ниже таблицах, а скорость также ограничена CrossTcTransmitBandwidthCap.

Любой TC, для которого это поле имеет значение FALSE , не участвует в ограничении скорости качества обслуживания из CrossTcTransmitBandwidthCap или таблиц per-TC ниже.

TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

Массив элементов ULONG, указывающих ограничения пропускной способности передачи для каждого TC в Мбит/с. Элементы допустимы только в NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED том случае, если установлен флаг и соответствующий им элемент в TcEnabledTable имеет значение TRUE. Элемент со значением 0 не имеет ограничения.

Сетевой адаптер должен ставить в очередь все передаваемые пакеты на этом SQ для заданного TC, если они превышают скорость, указанную в этой таблице.

TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

Массив элементов ULONG, определяющих резервирование пропускной способности передачи для каждого TC, в относительных значениях от 0до ULONG_MAX. Элементы допустимы только в NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED том случае, если установлен флаг и соответствующий им элемент в TcEnabledTable имеет значение TRUE. Элемент со значением 0 означает, что передача пакетов в этом SQ/TC совместно использует резервирование SQ по умолчанию для этого TC.

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

TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]

Массив элементов ULONG, определяющих ограничения пропускной способности приема для каждого TC в Мбит/с. Элементы допустимы только в NDIS_QOS_SQ_RECEIVE_CAP_ENABLED том случае, если установлен флаг и соответствующий им элемент в TcEnabledTable имеет значение TRUE. Элемент со значением 0 не имеет ограничения.

Это необязательная функция для включения ограничения пропускной способности приема. Сетевые адаптеры, объявляющие поддержку ограничения на получение, должны удалять любой полученный пакет после того, как определенный TC на этом SQ превысил скорость, указанную в этом массиве (на основе реализации планирования сетевой карты).

CrossTcTransmitBandwidthCap

Значение ULONG, указывающее ограничение пропускной способности передачи для трафика между TCs, соответствующий элемент которого в TcEnabledTable имеетзначение TRUE, если NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED флаг установлен.

MaxNumSqInputs

Значение ULONG, которое предлагает "подсказку" для мини-порта о вероятном количестве виртуальных портов, которые ос будет связать с SQ. Это значение нельзя изменить после создания SQ.

Минипорт может использовать это указание для лучшего управления своими ресурсами. Мини-порт будет предоставлять службу с наилучшими усилиями для удовлетворения запроса, но может завершиться сбоем из-за нехватки ресурсов во время создания SQ или во время сопоставления vPort.

Мини-порт должен возвращать ошибку, если это значение превышает значение MaxNumSQInputs , заданное минипортом в NDIS_QOS_OFFLOAD_CAPABILITIES.

Комментарии

Структура NDIS_QOS_SQ_PARAMETERS возвращается в OID_QOS_OFFLOAD_ENUM_SQS запроса OID, который перечисляет SQ, созданные в коммутаторе сетевой карты.

NDIS_QOS_SQ_PARAMETERS также возвращается в OID_QOS_OFFLOAD_CREATE_SQ запроса метода OID, который создает новый SQ на адаптере минипорта.

Требования

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

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

OID_QOS_OFFLOAD_ENUM_SQS

OID_QOS_OFFLOAD_CREATE_SQ

NDIS_QOS_OFFLOAD_CAPABILITIES

NDIS_QOS_SQ_ARRAY

NDIS_OBJECT_HEADER

Классы трафика QoS NDIS