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

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

Синтаксис

NTSTATUS FLTAPI FltGetDeviceObject(
  [in]  PFLT_VOLUME    Volume,
  [out] PDEVICE_OBJECT *DeviceObject
);

Параметры

[in] Volume

Непрозрачный указатель на том.

[out] DeviceObject

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

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

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

Код возврата Описание
STATUS_FLT_NO_DEVICE_OBJECT Запрошенный объект устройства не существует для заданного тома. Это код ошибки.

Комментарии

FltGetDeviceObject возвращает указатель на объект устройства тома (VDO) диспетчера фильтров для заданного тома.

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

VDO диспетчера фильтров не совпадает с объектом дискового устройства базового драйвера хранилища или VDO базовой файловой системы. Чтобы получить указатель на объект дискового устройства, вызовите Метод FltGetDiskDeviceObject для тома, указанного в параметре Volume . Чтобы получить указатель на VDO базовой файловой системы, вызовите IoGetDeviceAttachmentBaseRef в объекте RetDeviceObject , возвращенном FltGetDeviceObject.

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

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

Требования

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

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

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject