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


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

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

Синтаксис

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 записывает общее количество байтов, записанных в памяти в InterfaceBuffer.

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

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

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

Замечания

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
целевая платформа Настольный
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL PASSIVE_LEVEL
правил соответствия DDI Irql_Filter_Driver_Function(ndis)

См. также

NDIS_ENUM_FILTERS

NDIS_FILTER_INTERFACE