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

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

Синтаксис

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

Параметры

[in] Filter

Указатель непрозрачного фильтра для драйвера мини-фильтра. Этот указатель однозначно идентифицирует драйвер минифильтра и остается константой до тех пор, пока драйвер минифильтра загружается.

[in] Index

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

[in] InformationClass

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

Ценность Значение
FilterVolumeBasicInformation Параметр буфера получает структуру FILTER_VOLUME_BASIC_INFORMATION для тома.
FilterVolumeStandardInformation Параметр buffer получает FILTER_VOLUME_STANDARD_INFORMATION структуру тома. Эта структура доступна начиная с Windows Vista.

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

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

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

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

Замечания

Использование параметра индекса — это просто способ подпрограммы FltEnumerateVolumeInformation выбрать между томами в глобальном списке томов диспетчера фильтров. Два вызова FltEnumerateVolumeInformation с одинаковым значением параметра Index не обязательно возвращают тот же результат, так как тома могут быть подключены или отключены в любое время.

Если FltEnumerateVolumeInformation используется для создания списка структур сведений о томах, то для двух или более этих структур можно содержать идентичные имена томов. Дополнительные сведения см. в статье Общие сведения о перечислении томов с использованием повторяющихся имен томов.

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

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

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

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

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

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

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

Требования

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

См. также

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation