Функция 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 Параметр Buffer получает структуру FILTER_VOLUME_BASIC_INFORMATION для тома.
FilterVolumeStandardInformation Параметр Buffer получает структуру FILTER_VOLUME_STANDARD_INFORMATION для тома. Эта структура доступна начиная с Windows Vista.

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

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

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

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

Комментарии

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

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

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

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

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

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

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

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

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

Требования

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

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

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation