Re[5]: Остановить выполнение DeviceIoControl
От: MShura  
Дата: 10.05.06 13:47
Оценка:
MS>>Попробуйте перемещать файл не за раз, а более мелкими кусочками, тогда время реакции на прерывание будет адекватным.

А>Это как? Там ведь в функции DeviceIoControl задаются параметры StartingVcn, StartingLcn и ClusterCount. Если укажешь занятые кластера или кластеров будет меньше чем нужно, то процесс переноса завершится неудачей.


Можно двигать только часть файла.
StartingVcn — это и есть смещение этой части относительно начала файла.

Пусть файл занимает 13 кластеров.
Указываешь StartingVcn = 0, ClusterCount = 5. Двигаешь в свободное место
Указываешь StartingVcn = 5, ClusterCount = 5. Двигаешь в свободное место
Указываешь StartingVcn = 10, ClusterCount = 3. Двигаешь в свободное место


Если том не залочен, то всегда есть шанс, что в указанном диапазоне [StartingLcn,StartingLcn+ClusterCount) часть кластеров окажутся занятыми, даже если за секунду до этого этот диапазон был свободен. Это надо учитывать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.