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


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

Программа FltEnumerateInstanceInformationByFilter предоставляет сведения об экземплярах заданного драйвера минифильтра.

Синтаксис

NTSTATUS FLTAPI FltEnumerateInstanceInformationByFilter(
  [in]  PFLT_FILTER                Filter,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Параметры

[in] Filter

Непрозрачный указатель фильтра для вызывающего объекта.

[in] Index

Отсчитываемый от нуля индекс экземпляра, для которого запрашиваются сведения.

[in] InformationClass

Тип запрошенной информации. Этот параметр может иметь одно из следующих значений.

Ценность Значение
InstanceBasicInformation Буфер, на который указывает параметр буфера , получает структуру INSTANCE_BASIC_INFORMATION для экземпляра.
InstanceFullInformation Буфер, на который указывает параметр буфера, получает INSTANCE_FULL_INFORMATION структуру для экземпляра.
InstancePartialInformation Буфер, на который указывает параметр буфера , получает структуру INSTANCE_PARTIAL_INFORMATION для экземпляра.
InstanceAggregateStandardInformation Буфер, на который указывает параметр буфера , получает INSTANCE_AGGREGATE_STANDARD_INFORMATION структуру для экземпляра. устаревшей части структуры не используется. Эта структура доступна начиная с Windows Vista.

[out] Buffer

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

[in] BufferSize

Размер буфера в байтах, на который указывает параметр буфера. Вызывающий объект должен задать этот параметр в соответствии с заданным значением InformationClass.

[out] BytesReturned

Указатель на выделенную вызывающим переменную, которая получает количество байтов, возвращаемых в буфере, на который буфер указывает. Если входное значение BufferSize слишком мало, FltEnumerateInsterateInformationByFilter возвращает STATUS_BUFFER_TOO_SMALL и задает для этой переменной количество байтов, необходимых для хранения запрошенных сведений. Этот параметр является обязательным и не может быть null.

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

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

Возвращаемый код Описание
STATUS_BUFFER_TOO_SMALL
Буфер, на который указывает параметр буфера, недостаточно велик для хранения запрошенных сведений. Это код ошибки.
STATUS_FLT_DELETING_OBJECT
Обнаружен соответствующий экземпляр, но он отключается. Это код ошибки.
STATUS_INVALID_PARAMETER
Недопустимое значение было указано для параметра InformationClass. Например, если FilterAggregateStandardInformation указан в операционной системе до Windows Vista, подпрограмма вернет STATUS_INVALID_PARAMETER. Это код ошибки.
STATUS_NO_MORE_ENTRIES
В списке экземпляров мини-фильтра драйвера больше нет записей. Это код предупреждения.

Замечания

Параметр индекса — это просто способ FltEnum erateInsterateInformationByFilter, чтобы выбрать среди экземпляров в списке экземпляров драйвер минифильтра, указанный фильтром. Так как экземпляры драйвера минифильтра в списке экземпляров могут изменяться в любое время, два вызова FltEnum erateInsterateInformationByFilter с теми же индексом и значения фильтра не гарантированно возвращают тот же результат.

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

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

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

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

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

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

.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка fltkernel.h (include FltKernel.h)
библиотеки FltMgr.lib
IRQL <= APC_LEVEL

См. также

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION