Re[6]: Остановить выполнение DeviceIoControl
От: StrangerOk  
Дата: 01.04.07 09:54
Оценка:
Здравствуйте, MShura, Вы писали:

MS>>>Попробуйте перемещать файл не за раз, а более мелкими кусочками, тогда время реакции на прерывание будет адекватным.


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


MS>Можно двигать только часть файла.

MS>StartingVcn — это и есть смещение этой части относительно начала файла.

MS>Пусть файл занимает 13 кластеров.

MS>Указываешь StartingVcn = 0, ClusterCount = 5. Двигаешь в свободное место
MS>Указываешь StartingVcn = 5, ClusterCount = 5. Двигаешь в свободное место
MS>Указываешь StartingVcn = 10, ClusterCount = 3. Двигаешь в свободное место


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




я тут читал и у меня появилося вопрос:
-а если файл который мы перемещаем большой и все кластеры раскиданы по винту групами, то как их перемещать? как узнать сколько кластеров в групе?
имея:
2*number of extents array — the vcn and the lcn as pairs
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.