Функция 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 возвращает одно из следующих значений состояния:
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. |
|
Ошибка NdisEnumerateFilterModules , так как параметр NdisHandle не был допустимым мини-адаптером NDIS, привязкой протокола или дескриптором модуля фильтра. |
|
Ошибка 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) |