MS>>Попробуйте перемещать файл не за раз, а более мелкими кусочками, тогда время реакции на прерывание будет адекватным.
А>Это как? Там ведь в функции DeviceIoControl задаются параметры StartingVcn, StartingLcn и ClusterCount. Если укажешь занятые кластера или кластеров будет меньше чем нужно, то процесс переноса завершится неудачей.
Можно двигать только часть файла.
StartingVcn — это и есть смещение этой части относительно начала файла.
Пусть файл занимает 13 кластеров.
Указываешь StartingVcn = 0, ClusterCount = 5. Двигаешь в свободное место
Указываешь StartingVcn = 5, ClusterCount = 5. Двигаешь в свободное место
Указываешь StartingVcn = 10, ClusterCount = 3. Двигаешь в свободное место
Если том не залочен, то всегда есть шанс, что в указанном диапазоне [StartingLcn,StartingLcn+ClusterCount) часть кластеров окажутся занятыми, даже если за секунду до этого этот диапазон был свободен. Это надо учитывать.