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

Подпрограмма FltGetVolumeInformation предоставляет сведения о заданном томе.

Синтаксис

NTSTATUS FLTAPI FltGetVolumeInformation(
  [in]  PFLT_VOLUME                     Volume,
  [in]  FILTER_VOLUME_INFORMATION_CLASS InformationClass,
  [out] PVOID                           Buffer,
  [in]  ULONG                           BufferSize,
  [out] PULONG                          BytesReturned
);

Параметры

[in] Volume

Непрозрачный указатель на том. Этот параметр является обязательным и не может иметь значение NULL.

[in] InformationClass

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

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

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

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

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

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

Комментарии

С учетом непрозрачного указателя тома, например, возвращаемого подпрограммой FltEnumerateVolumeInformation , подпрограмма FltGetVolumeInformation предоставляет сведения о томе, на который указывает непрозрачный указатель тома, передаваемые через параметр Volume . Обратите внимание, что вызывающий объект должен в конечном итоге освободить непрозрачный указатель тома, вызвав подпрограмму FltObjectDereference .

Подпрограмма FltGetVolumeInformation возвращает сведения для одного тома. Однако при наличии списка непрозрачных указателей тома подпрограмму можно итеративно использовать для создания списка соответствующих информационных структур тома. В таком списке две или более структуры могут содержать одинаковые имена томов. Дополнительные сведения см. в разделе Основные сведения о перечислениях томов с повторяющимися именами томов.

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

В следующем списке содержатся связанные сведения, которые могут оказаться бесполезными:

  • Чтобы перечислить все зарегистрированные драйверы минифильтров в системе, вызовите подпрограмму FltEnumerateFilters .
  • Чтобы получить сведения об экземплярах драйвера минифильтра, присоединенных к заданному тому, вызовите подпрограмму FltEnumerateInstanceInformationByVolume .
  • Чтобы перечислить экземпляры драйвера минифильтра для заданного драйвера или тома минифильтра, вызовите подпрограмму FltEnumerateInstances .
  • Чтобы перечислить все тома в системе, вызовите подпрограмму FltEnumerateVolumes .
  • Чтобы получить непрозрачный указатель на том, представленный заданным объектом устройства тома (VDO), вызовите подпрограмму FltGetVolumeFromDeviceObject .
  • Чтобы получить непрозрачный указатель для тома, на котором находится данный файловый поток, вызовите подпрограмму FltGetVolumeFromFileObject .
  • Чтобы получить непрозрачный указатель на том, к которому присоединен данный экземпляр драйвера минифильтра, вызовите подпрограмму FltGetVolumeFromInstance .
  • Чтобы получить непрозрачный указатель для тома, имя которого соответствует заданному имени тома, вызовите подпрограмму FltGetVolumeFromName .

Требования

Требование Значение
Минимальная версия клиента Эта подпрограмма доступна, начиная с Windows Vista.
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая FltKernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

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

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FLT_RELATED_OBJECTS

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeFromDeviceObject

FltGetVolumeFromFileObject

FltGetVolumeFromInstance

FltGetVolumeFromName