| Previous | Next |
| ERROR_FLT_NAME_CACHE_MISS | ERROR_FLT_VOLUME_ALREADY_MOUNTED |
ERROR_FLT_NO_DEVICE_OBJECT
The volume is not backed by a usable disk device object
ERROR_FLT_NO_DEVICE_OBJECT can be returned when a minifilter asks Filter Manager for the storage device object associated with a volume. It does not mean that the filter itself is missing. It means the requested volume does not expose the disk-device relationship needed by the operation. Network-backed volumes are one documented example where an associated disk device object may not exist.
FltGetDiskDeviceObject returns the storage device object for the physical disk that hosts a volume, while FltGetDeviceObject retrieves Filter Manager's own volume device object. They answer different questions. A minifilter that only needs the filter stack's VDO should not request a physical-disk object and then interpret this status as a storage fault.
What to check
- Confirm why the driver needs a disk device object. A network or virtual volume can support file I/O without having a physical-disk object appropriate for this API.
- Call
FltGetDiskDeviceObjectonly from an I/O-related callback. Microsoft notes that device-object fields might not be valid in instance teardown callbacks. - Use the API that matches the intended layer: a disk device object for storage-stack work, or a Filter Manager volume device object for filter-stack work.
- Balance every successful
FltGetDiskDeviceObjectcall withObDereferenceObject; otherwise the reference can prevent deletion of the object.
References
- Microsoft: FltGetDiskDeviceObject
- Microsoft: FltIsVolumeSnapshot and volumes without disk device objects
- OSR: Filter Manager volume abstractions
Looking for a different code? Search another status or error code.