Функция 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 (включая Fltkernel.h) |
Библиотека | Fltmgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |