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

Программа FltGetVolumeProperties возвращает сведения о свойстве тома для заданного тома.

Синтаксис

NTSTATUS FLTAPI FltGetVolumeProperties(
  [in]  PFLT_VOLUME            Volume,
  [out] PFLT_VOLUME_PROPERTIES VolumeProperties,
        ULONG                  VolumePropertiesLength,
  [out] PULONG                 LengthReturned
);

Параметры

[in] Volume

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

[out] VolumeProperties

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

VolumePropertiesLength

Размер буфера в байтах, на который указывает параметр VolumeProperties. Этот параметр является необязательным и может быть равен нулю. Если значение равно нулю, LengthReturned получает размер в байтах буфера, необходимого для хранения свойств тома. Если этот параметр является ненулевой, он должен быть по крайней мере значением sizeof(FLT_VOLUME_PROPERTIES).

[out] LengthReturned

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

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

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

Возвращаемый код Описание
STATUS_BUFFER_OVERFLOW
Буфер, на который указывает параметр VolumeProperties, достаточно велик для хранения фиксированной части структуры FLT_VOLUME_PROPERTIES, но не FileSystemDriverName, FileSystemDeviceNameили элементов RealDeviceName. В этом случае в буфере возвращается только фиксированная часть сведений о томе, на которую указывает параметр VolumeProperties. Параметр LengthReturned получает фактическую длину в байтах возвращаемых данных. Это код предупреждения.
STATUS_BUFFER_TOO_SMALL
Буфер, на который указывает параметр VolumeProperties, недостаточно велик для хранения сведений о свойстве тома. Параметр LengthReturned получает требуемый размер буфера. В этом случае данные о томе не возвращаются. Это код ошибки.

Замечания

FltGetVolumeProperties возвращает только сведения, которые можно безопасно запрашивать во время процесса подключения без риска взаимоблокировки системы. Поэтому драйвер мини-фильтра обычно вызывает эту подпрограмму из функции обратного вызова после подключения или подпрограмму InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) для определения необходимости подключения к заданному тому.

Требования

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

См. также

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK