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


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

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

Синтаксис

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 диспетчера фильтров не совпадает с объектом дискового устройства драйвера хранилища или виртуальным доменом базовой файловой системы. Чтобы получить указатель на объект устройства диска, вызовите FltGetDiskDeviceObject на томе, указанном в параметре тома тома. Чтобы получить указатель на VDO базовой файловой системы, вызовите IoGetDeviceAttachmentBaseRef на RetDeviceObject, возвращенной FltGetDeviceObject.

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

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

Требования

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

См. также

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject