Форум: "Система";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизПосекторная запись на диск. Хм. Есть проблема. Найти похожие ветки
← →
незнайка © (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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 2.89 c