What does HRESULT 0x801F0019 (ERROR_FLT_NO_DEVICE_OBJECT) mean?

 
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 FltGetDiskDeviceObject only 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 FltGetDiskDeviceObject call with ObDereferenceObject; otherwise the reference can prevent deletion of the object.

References


Looking for a different code? Search another status or error code.