Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма 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 |