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


Функция NdisEnumerateFilterModules (ndis.h)

Функция NdisEnumerateFilterModules перечисляет все модули фильтров и промежуточные экземпляры драйвера фильтра в стеке фильтров.

Синтаксис

NDIS_STATUS NdisEnumerateFilterModules(
  [in]      NDIS_HANDLE NdisHandle,
  [in]      PVOID       InterfaceBuffer,
  [in]      ULONG       InterfaceBufferLength,
  [in, out] PULONG      BytesNeeded,
  [in, out] PULONG      BytesWritten
);

Параметры

[in] NdisHandle

Дескриптор NDIS, полученный во время инициализации вызывающего объекта. Дополнительные сведения об этом дескрипторов см. в разделе Получение дескрипторов пула.

Если дескриптор является дескриптором адаптера мини-порта NDIS, NDIS возвращает сведения обо всех модулях интерфейса, которые в настоящее время подключены к адаптеру мини-порта, начиная с самого верхнего модуля фильтра.

Если дескриптор является дескриптором привязки NDIS, NDIS возвращает сведения обо всех модулях фильтров, которые в настоящее время подключены к базовому адаптеру мини-порта, начиная с самого верхнего модуля фильтра.

Если дескриптор является дескриптором модуля фильтра NDIS, NDIS возвращает сведения обо всех модулях фильтров, которые в настоящее время подключены к базовому адаптеру мини-порта, к которому подключен указанный модуль фильтра, начиная с самого верхнего модуля фильтра.

[in] InterfaceBuffer

Указатель на блок памяти, выделенный вызывающим объектом, в котором NDIS возвращает сведения для всех модулей фильтра в стеке фильтров, начиная с самого верхнего фильтра. Этот буфер содержит структуру NDIS_ENUM_FILTERS , за которой следует ноль или более NDIS_FILTER_INTERFACE структур, по одной для каждого модуля фильтра в стеке.

[in] InterfaceBufferLength

Длина (в байтах) блока памяти, предоставленного вызывающей стороны, в элементе InterfaceBuffer .

[in, out] BytesNeeded

Указатель на переменную, предоставляемую вызывающей стороны, где NDIS записывает общее количество байтов, необходимое NDIS для успешного возврата сведений об интерфейсе для всех фильтров в стеке фильтров.

[in, out] BytesWritten

Указатель на переменную, предоставляемую вызывающей стороны, где NDIS записывает общее количество байтов, записанных NDIS в памяти в InterfaceBuffer.

Возвращаемое значение

NdisEnumerateFilterModules возвращает одно из следующих значений состояния:

Код возврата Описание
NDIS_STATUS_SUCCESS
Операция выполнена успешно.
NDIS_STATUS_INVALID_PARAMETER
Ошибка NdisEnumerateFilterModules , так как параметр NdisHandle не был допустимым мини-адаптером NDIS, привязкой протокола или дескриптором модуля фильтра.
NDIS_STATUS_BUFFER_TOO_SHORT
Ошибка NdisEnumerateFilterModules , так как буфер, предоставленный в параметре InterfaceBuffer , был слишком коротким для NDIS, чтобы вернуть все сведения. Если частичный результат был записан в InterfaceBuffer, значение параметра BytesWritten содержит длину частичных результатов.

Комментарии

Драйвер мини-порта NDIS, драйвер протокола или драйвер фильтра может вызывать функцию NdisEnumerateFilterModules для перечисления всех фильтров в стеке фильтров.

NdisEnumerateFilterModules возвращает список модулей фильтров и промежуточных драйверов фильтрации от верхней до нижней части стека драйверов. Например, если модули фильтров (F1 и F2) подключены к адаптеру miniport (M1), а F2 выше F1, NdisEnumerateFilterModules возвращает список в следующем порядке: F2, F1. Если есть также промежуточный драйвер фильтра (M2), привязанный к M1, если M2 выше F2 и если к M2 присоединен другой фильтр (F3), NdisEnumerateFilterModules возвращает список фильтров в следующем порядке: F3, M2, F2, F1.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Целевая платформа Персональный компьютер
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL PASSIVE_LEVEL
Правила соответствия DDI Irql_Filter_Driver_Function(ndis)

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

NDIS_ENUM_FILTERS

NDIS_FILTER_INTERFACE