Функция FltEnumerateFilters (fltkernel.h)

Подпрограмма FltEnumerateFilters перечисляет все зарегистрированные драйверы минифильтра в системе.

Синтаксис

NTSTATUS FLTAPI FltEnumerateFilters(
  [out] PFLT_FILTER *FilterList,
  [in]  ULONG       FilterListSize,
  [out] PULONG      NumberFiltersReturned
);

Параметры

[out] FilterList

Указатель на буфер, выделенный вызывающим объектом, который получает массив непрозрачных указателей фильтра. Этот параметр является необязательным и может иметь значение NULL , если значение параметра FilterListSize равно нулю. Если параметр FilterListSize равен нулю для входных данных, а FilterList имеет значение NULL, параметр NumberFiltersReturned получает количество найденных драйверов минифильтра.

[in] FilterListSize

Количество непрозрачных указателей фильтра, на которые может храниться буфер, на который указывает параметр FilterList . Этот параметр является необязательным и может быть равен нулю. Если параметр FilterListSize равен нулю для входных данных, а FilterList имеет значение NULL, параметр NumberFiltersReturned получает количество найденных драйверов минифильтра.

[out] NumberFiltersReturned

Указатель на переменную, выделенную вызывающим объектом, которая получает количество непрозрачных указателей фильтра, возвращаемых в массиве, на который указывает параметр FilterList . Если значение параметра FilterListSize слишком мало, а для входных данных FilterList не равно NULL , Функция FltEnumerateFilters возвращает STATUS_BUFFER_TOO_SMALL и задает параметр NumberFiltersReturned , указывающий на количество найденных драйверов минифильтра. Этот параметр является обязательным и не может иметь значение NULL.

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

FltEnumerateFilters возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например следующее:

Код возврата Описание
STATUS_BUFFER_TOO_SMALL
Буфер, на который указывает параметр FilterList , недостаточно велик для хранения запрошенной информации. Это код ошибки.

Комментарии

Так как фильтры могут регистрироваться в любое время, два вызова FltEnumerateFilters не гарантированно возвращают одинаковый результат.

FltEnumerateFilters добавляет ссылку на очистку каждого из непрозрачных указателей фильтра, возвращаемых в массиве, на который указывает параметр FilterList . Если эти указатели больше не нужны, вызывающий объект должен освободить их, вызвав FltObjectDereference для каждого из них. Таким образом, каждый успешный вызов FltEnumerateFilters должен соответствовать последующему вызову FltObjectDereference для каждого возвращаемого указателя фильтра.

Чтобы получить список сведений о фильтрах для всех зарегистрированных драйверов минифильтра, вызовите FltEnumerateFilterInformation.

Чтобы перечислить экземпляры всех драйверов минифильтра на всех томах, вызовите FltEnumerateInstances.

Чтобы перечислить все тома, известные диспетчеру фильтров, вызовите FltEnumerateVolumes.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
IRQL <= APC_LEVEL

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

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference