использую overlapped IO. Так вот - на любой readfile/writefile/deviceiocontrol при таком раскладе в IO_STATUS_BLOCK, который есть часть структуры overlapped, приезжает код ошибки. Грамотно программно закрыть - как всегда - CloseHandle. Оно никогда зависнуть не может :)