Функция 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

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

VolumePropertiesLength

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

[out] LengthReturned

Указатель на переменную, выделенную вызывающим объектом, которая получает размер в байтах сведений, возвращаемых в VolumeProperties. Если FltGetVolumeProperties возвращает STATUS_BUFFER_TOO_SMALL или значение Length равно нулю для входных данных, этот параметр получает размер буфера, необходимого для хранения свойств тома, в байтах. Этот параметр является обязательным и не может иметь значение 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 (включая Fltkernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

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

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK