Функция 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 Буфер, на который указывает параметр Buffer , получает структуру INSTANCE_BASIC_INFORMATION для экземпляра .
InstanceFullInformation Буфер, на который указывает параметр Buffer , получает структуру INSTANCE_FULL_INFORMATION для экземпляра .
InstancePartialInformation Буфер, на который указывает параметр Buffer , получает структуру INSTANCE_PARTIAL_INFORMATION для экземпляра .
InstanceAggregateStandardInformation Буфер, на который указывает параметр Buffer , получает структуру INSTANCE_AGGREGATE_STANDARD_INFORMATION для экземпляра . Часть legacyFilter структуры не используется. Эта структура доступна начиная с Windows Vista.

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

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

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

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

Комментарии

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

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

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

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

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

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

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

.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая 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