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


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

Подпрограмма FltGetVolumeFromDeviceObject возвращает непрозрачный указатель для тома, представленного объектом устройства тома (VDO).

Синтаксис

NTSTATUS FLTAPI FltGetVolumeFromDeviceObject(
  [in]  PFLT_FILTER    Filter,
  [in]  PDEVICE_OBJECT DeviceObject,
  [out] PFLT_VOLUME    *RetVolume
);

Параметры

[in] Filter

Указатель непрозрачного фильтра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.

[in] DeviceObject

Указатель на объект устройства тома.

[out] RetVolume

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

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

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

Код возврата Описание
STATUS_FLT_DELETING_OBJECT Том сносится. Это код ошибки.
STATUS_INVALID_PARAMETER Объект устройства тома, указанный в параметре DeviceObject , не является допустимым указателем на объект устройства тома, или соответствующий том не найден. Это код ошибки.

Комментарии

Параметр DeviceObject может быть указателем на фильтр или объект устройства тома файловой системы (VDO). Если он указывает на объект запоминающего устройства, Функция FltGetVolumeFromDeviceObject возвращает STATUS_INVALID_PARAMETER.

Дополнительные сведения об объектах устройства томов см. в разделе Стеки файловой системы.

FltGetVolumeFromDeviceObject добавляет ссылку на очистку указателя непрозрачного тома, возвращаемого в параметре RetVolume . Если этот указатель больше не нужен, вызывающий объект должен освободить его, вызвав FltObjectDereference. Таким образом, каждый успешный вызов FltGetVolumeFromDeviceObject должен соответствовать последующему вызову FltObjectDereference.

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

Требования

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

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

FltGetDeviceObject

FltGetDiskDeviceObject

FltObjectDereference