структура NDIS_RECEIVE_THROTTLE_PARAMETERS (ndis.h)
Структура NDIS_RECEIVE_THROTTLE_PARAMETERS указывает максимальное число NET_BUFFER_LIST структур, которое драйвер мини-порта должен указать в отложенном вызове процедуры (DPC).
Синтаксис
typedef struct _NDIS_RECEIVE_THROTTLE_PARAMETERS {
ULONG MaxNblsToIndicate;
ULONG MoreNblsPending : 1;
} NDIS_RECEIVE_THROTTLE_PARAMETERS, *PNDIS_RECEIVE_THROTTLE_PARAMETERS;
Члены
MaxNblsToIndicate
Максимальное количество NET_BUFFER_LIST структур, которые водитель минипорта должен включать в индикатор получения. Если это значение равно NDIS_INDICATE_ALL_NBLS, минипорт может указать все NET_BUFFER_LIST структуры, которые у него есть.
MoreNblsPending
Значение , указывающее , что драйвер мини-порта NET_BUFFER_LIST структур, ожидающих обработки максимального числа или структур, запрошенных NDIS в элементе MaxNblsToIndicate .
Комментарии
Параметры ReceiveThrottleParametersminiportInterruptDPC и MiniportMessageInterruptDPC Функции обработчика DPC указывают на NDIS_RECEIVE_THROTTLE_PARAMETERS структуру. Эта структура задает параметры регулирования на стороне получения (RST) в NDIS 6.20 и более поздних версиях.
При входе в обработчик DPC член MaxNblsToIndicate структуры NDIS_RECEIVE_THROTTLE_PARAMETERS указывает максимальное число NET_BUFFER_LIST структур, которые драйвер мини-порта должен указать в DPC. Если это значение равно NDIS_INDICATE_ALL_NBLS, драйвер мини-порта может указать все NET_BUFFER_LIST структуры, имеющиеся в очередях.
После того как драйвер мини-порта обработает указанное максимальное количество NET_BUFFER_LIST структур, драйвер мини-порта может содержать больше пакетов в очередях получения. В этом случае драйвер мини-порта должен задать для члена MoreNblsPendingзначение TRUE и не должен повторно включать прерывания перед возвратом из DPC. Это относится как к прерываниям на основе строк, так и к предвзятым сообщениям.
Драйвер мини-порта должен следовать этим рекомендациям, если для элемента MaxNblsToIndicate задано значение NDIS_INDICATE_ALL_NBLS:
- Значение NDIS_INDICATE_ALL_NBLS позволяет драйверу мини-порта определить количество NET_BUFFER_LIST структур, которые он указывает в вызове DPC. Это дает драйверу мини-порта следующие параметры:
- Драйвер мини-порта может указать все ожидающие структуры NET_BUFFER_LIST из очередей получения.
-
Драйвер мини-порта может ограничить количество NET_BUFFER_LIST структур, которые он указывает на основе его эвристики, чтобы избежать чрезмерного времени в вызове DPC.
В частности, драйвер должен использовать свою эвристическую функцию, чтобы избежать превышения времени ожидания DPC, которое является максимальным временем, которое драйвер может провести в своем DPC. По истечении интервала ожидания в системе выполняется проверка ошибок. Начиная с Windows 7 время ожидания DPC составляет 10 секунд.
- Драйвер мини-порта должен установить для MoreNblsPendingзначение FALSE , прежде чем он возвращается из DPC. Драйвер должен делать это независимо от того, имеет ли он ожидающие NET_BUFFER_LIST структуры в очередях получения, которые не были указаны.
Если драйвер мини-порта использует несколько сообщений MSI для различения различных источников прерываний, он должен игнорировать элемент ReceiveThrottleParameters для сообщений MSI, которые не связаны с указаниями получения. Для получения сообщений прерывания драйвер мини-порта должен указывать не более maxNblsToIndicate NET_BUFFER_LIST структур.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.20 и более поздних версиях. |
Верхняя часть | ndis.h (включая Ndis.h) |