Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Посекторная запись на диск. Хм. Есть проблема.   Найти похожие ветки 

 
незнайка ©   (2004-01-13 20:01) [0]

Привет всем..

Ситуация такая...   Есть форматированный диск (1 раздел) и на него я посекторно записываю сохраненные раннее сектора (несколько разделов). Если я открываю диск в начале это процедуры, закрываю в конце и перезагружаюсь - все нормально.. все данные восстанавливаются, НО если в процессе записи я закрываю диск и открываю , прерывая и продолжая процесс записи секторов, то начинаются проблемы: Win при перезагрузки находит потерянные кластеры и т.п... Какие то данные остаются, какие то исчезают. Так вот вопрос: чем Win занимается, когда я в процессе записи прерываю процесс и закрываю диск?


 
Alex Konshin ©   (2004-01-13 20:06) [1]

Кеш?


 
незнайка ©   (2004-01-13 20:13) [2]

В смысле? Ты имеешь в виду, что данные из кеша еще не ушли на диск, а я его уже закрыл? Да нет.. Кеш вроде должен нормально записаться на диск и после закрытия..  хм..


 
Alex Konshin ©   (2004-01-13 22:23) [3]

А эти сектора часть существующих файлов или самой файловой системы?


 
Незнайка ©   (2004-01-13 22:31) [4]

и то и другое..  это снятый посекторно образ диска...


 
Alex Konshin ©   (2004-01-14 04:11) [5]

Ну тогда точно кеш. Ты подменяешь то, что система уже прочитала и держит в кеше. Как сбросить - не знаю. Думаю, что нужно как-то брать диск в монопольное владение и потом сообщить, что давай перечитай все на фиг. Как - не знаю. Но должно быть что-то типа юниксовского mount, надо посмотреть в каких-нибудь исходниках что делается до и после форматирования диска.
Да, ты перезаписываешь данные раздела (volume) или вообще весь физический диск?


 
Незнайка ©   (2004-01-14 07:42) [6]

Весь физический диск.. полностью.


 
Alex Konshin ©   (2004-01-14 10:39) [7]

Тогда еще хуже. Нужно же по крайней мере сказать системе, чтоб перечитала таблицу разделов.
Короче, читай сам
http://msdn.microsoft.com/library/en-us/fileio/base/storage_overview.asp
Я тут не великий гуру, много не насоветую, но копать явно нужно в эту сторону.
Например, тебе явно понадобится http://msdn.microsoft.com/library/en-us/fileio/base/ioctl_disk_update_properties.asp


 
незнайка ©   (2004-01-14 10:57) [8]

Cпасибо.. попробую.. кстати, где можно найти winioctl.h чтоб посмотреть как вычисляется IOCTL_DISK_UPDATE_PROPERTIES?


 
Alex Konshin ©   (2004-01-14 11:43) [9]

В Windows DDK.
В IFS Kit тоже есть.


 
Alex Konshin ©   (2004-01-14 11:51) [10]

http://home.earthlink.net/~akonshin/files/ntdddisk.h


 
незнайка ©   (2004-01-14 12:32) [11]

СПАСИБО! Сейчас буду пробовать...   посмотрим..


 
незнайка ©   (2004-01-15 13:03) [12]

Все заработало ;) Причем достаточно только команды IOCTL_DISK_UPDATE_PROPERTIES...


 
Alex Konshin ©   (2004-01-15 20:24) [13]

Ууу как я крут! :-) Угадал!


 
Незнайка ©   (2004-01-15 23:43) [14]

Ага :))  это то, что нужно: This operation is used in synchronizing the system view of the specified disk device when the partition table of the disk is directly modified.



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
7-1074013301
незнайка
2004-01-13 20:01
2004.04.04
Посекторная запись на диск. Хм. Есть проблема.


6-1074956009
aser
2004-01-24 17:53
2004.04.04
Конект по диалапу на комп. без сетевой карты


7-1074007088
_наблюдатель_
2004-01-13 18:18
2004.04.04
crHandPoint


1-1079433269
Rem
2004-03-16 13:34
2004.04.04
Русские шрифты в Formula One Ver. 3.0.4


7-1074427195
Magician
2004-01-18 14:59
2004.04.04
Где ошибка в LOGONUSER