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

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

Синтаксис

NTSTATUS FLTAPI FltGetDiskDeviceObject(
  [in]  PFLT_VOLUME    Volume,
  [out] PDEVICE_OBJECT *DiskDeviceObject
);

Параметры

[in] Volume

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

[out] DiskDeviceObject

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

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

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

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

Замечания

FltGetDiskDeviceObject получает указатель на объект устройства хранения для физического диска, в котором находится том. Устройство хранения не должно быть фактическим диском.

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

Минифильтр должен вызывать FltGetDiskDeviceObject только в связанном вызове ввода-вывода. В противном случае поля возвращаемого объекта устройства могут быть недопустимыми. В этом случае в подпрограммах обратного вызова, таких как InstanceTeardownStartCallback и InstanceTeardownCompleteCallback.

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

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

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

Требования

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

См. также

FltGetDeviceObject

FltGetVolumeFromDeviceObject

ObDereferenceObject

ObReferenceObject