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

Подпрограмма FltEnumerateInstanceInformationByVolume предоставляет сведения об экземплярах драйверов минифильтров и устаревших драйверах фильтров (только для Windows Vista), подключенных к заданному тому.

Синтаксис

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolume(
  [in]  PFLT_VOLUME                Volume,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Параметры

[in] Volume

Непрозрачный указатель на том.

[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 структуру для экземпляра драйвера минифильтра или устаревшего драйвера фильтра. Эта структура доступна начиная с Windows Vista.

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

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

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

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

Комментарии

Использование параметра Index позволяет FltEnumerateInstanceInformationByVolume выбрать экземпляры драйверов минифильтра и устаревшие драйверы фильтров в списке экземпляров или фильтров для тома, указанного в томе. Так как экземпляры драйвера минифильтра в списке экземпляров или фильтров могут измениться в любое время, два вызова FltEnumerateInstanceInformationByVolume с одинаковыми значениями Index и Volume не гарантируют получение одного и того же результата.

Начиная с Windows Vista, эта подпрограмма может возвращать как устаревшие сведения о драйвере фильтра, так и сведения об экземпляре драйвера минифильтра, если параметр InformationClass имеет значение InstanceAggregateStandardInformation. Для более ранних операционных систем эта подпрограмма не может возвращать устаревшие сведения о фильтре, так как структура INSTANCE_AGGREGATE_STANDARD_INFORMATION недоступна.

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

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

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

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

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

Требования

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

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

FltEnumerateFilterInformation

FltEnumerateInstanceInformationByFilter

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION