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