Chkdsk ändert nichts an den Handles, sondern sperrt einfach den Zugriff auf's Laufwerk. Daher kann ChkDsk nicht auf einem Datenträger arbeiten, wenn auf diesem gerade exklusiv eine Datei geschrieben wird.
Und zum Entsperren von Handles. Der ProzessExplorer von SysInternals nutzt dazu einen in die Anwendung integrierten Mini-Usermode-Treiber, der die entsprechenden Einträge der Fremdanwendungen manipuliert. Es gibt zwar über Prozess-Embbedding (InjectMe der uallCollection z.B.) Möglichkeiteen für einen Prozess bestimmte Handle zu schließen, aber nur, wenn deren Ordinal-Wert selbst bekannt ist.
Ansonsten empfehle ich an dieser Stelle einfach mal einen Blick ins MSDN in Bezug auf Dateien\Handles sowie ins DDK für die Hintergründe zum Zugriff jenseits der ntdll.dll

Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.