“The parameter is incorrect. (0x80070057)” and other Windows Defrag issues.
I’ve tried to defrag a 2TB hard drive for a couple of days now.
When defragging with /A /H /U /V /O, defrag nears completion, but throws a “The parameter is incorrect. (0x80070057)” error instead. This also happens when using the GUI, but defrag silently logs an error to the Event Log.
Another serious issue is the speed of defragmentation. As of right now (while consolidating free space), the defrag service spends the majority of it’s time eating 100% of a single core, and very little time on actual I/O. A quick bit of investigatory ProcMon work suggests a cause:
The only filter I’m using is:With that many BUFFER OVERFLOW events, there must be something wrong. Eventually, a Read Metadata DOES succeed, but that’s after several pages of BUFFER OVERFLOWs!
The Windows Dev Center gives us some insight:
If you really want to go deep, Mark Roddy has written a great article: Adventures in Luserland: Finding Disk Sectors Associated with File Records.
Mirrored here: Adventures in Luserland
I’ll conjecture that Microsoft needs to review any defrag code related to FSCTL_GET_RETRIEVAL_POINTERS – but for now, I’ll just have to wait. And wait. And wait.