Поделиться через


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

[out] Buffer

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

[in] BufferSize

Размер буфера в байтах, на который указывает параметр буфера. Вызывающий объект должен задать этот параметр в соответствии с заданным значением 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
Буфер, на который указывает параметр буфера, недостаточно велик для хранения запрошенных сведений. Это код ошибки.

Замечания

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

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Эта подпрограмма доступна начиная с Windows Vista.
целевая платформа Всеобщий
заголовка fltkernel.h (include 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