I know this error is infuriating — you try to unmount a volume, run a backup, or swap a drive, and Windows throws STATUS_FLT_DO_NOT_DETACH in your face. Been there. The good news? It's almost always a stuck filter driver, and you can usually clear it without rebooting.
The Fast Fix: Unload the Stuck Filter
Open an elevated Command Prompt (right-click Start, select "Terminal (Admin)"). Then run:
fltmc volume list
That lists every volume with the filters attached to it. Find the volume throwing the error — it'll have a non-zero number next to it. Note the filter name in the "Filter" column.
Now unload that filter:
fltmc unload <FilterName>
For example, if the filter is AVGFSFilter (a common antivirus culprit), you'd run fltmc unload AVGFSFilter. After that, try your operation again. Nine times out of ten, the volume detaches cleanly.
Why This Works
The filter manager (the kernel component that handles minifilters) attaches filters to volumes at mount time. When you try to detach the volume, the system checks for active filters. If one hasn't released its reference count — maybe because it's mid-I/O or hung — it returns 0XC01C0010. Unloading the filter forces it to drop those references. It's the equivalent of gently prying the filter's fingers off the volume handle.
What if Unload Fails?
Sometimes fltmc unload returns "Filter is already unloaded" or just doesn't work. That means the filter is stuck in a deeper state. Don't fight it — here's the escalation path:
1. Disable the Filter from the Service
Most filters are tied to a service. Find the service name (often the filter name minus "Filter"), then stop it:
sc stop <ServiceName>
sc config <ServiceName> start= disabled
This forces the filter to detach during the service stop. Re-enable after you're done with the volume.
2. Use DiskPart to Clean Up
If the volume still won't detach, open DiskPart and clear any lingering state:
diskpart
list volume
select volume <N>
attributes volume clear readonly noerr
This only clears read-only flags, but it sometimes kicks the filter loose. Not a guaranteed fix, but worth a shot.
3. Safe Mode Trick
If you're still stuck, reboot into Safe Mode. Filter drivers that aren't marked as boot-start don't load there. The volume will detach without complaint, letting you clean up any corrupted metadata or run chkdsk. Then boot normal — the offending filter will reload fresh, and the error usually disappears because the reference count resets.
Less Common Triggers (and Their Fixes)
The usual suspect is antivirus or backup software. But I've seen this error pop up from unexpected places:
- Storage Spaces — The
SpacePortdriver occasionally holds on to volumes during rebalance. RunGet-StorageJobin PowerShell to check for stuck jobs, then restart the Storage Spaces service. - Deduplication — If you have Data Deduplication enabled on the volume, the
Dedupfilter can hang during garbage collection. Wait for it to finish or runStart-DedupJob -Type GarbageCollectionto force it. - Hyper-V Hosts — Overlay filters from clustering can get tangled. Check the cluster log (
Get-ClusterLog) for filter errors and consider moving the volume to a different node.
Prevention: Stop It Before It Starts
Most of these hangs come from filters blocking I/O during volume dismount. You can't prevent every case, but these habits cut the odds significantly:
- Always stop backup jobs (VSS snapshots included) before detaching a volume.
- Keep antivirus exclusions updated for your backup and VSS-related processes.
- Set filters to unload on idle if their vendor supports it — e.g., in the filter's registry key under
HKLM\SYSTEM\CurrentControlSet\Services\<Filter>\Instances, add"UnloadOnIdle"=dword:00000001. - Run
fltmc instancesperiodically to see which filters are attached. If you see one that doesn't belong, investigate before it causes trouble.
One more thing: don't ignore this error if it happens repeatedly. A recurring 0XC01C0010 can point to a filter driver with a memory leak or a bug. Check the vendor's release notes for updates. I've seen old AV filters cause this for months before a patch landed — don't wait that long.
Now go free that volume. If anything's still unclear, drop the output of fltmc volume list in the comments and I'll help you decode it.