Главная страница
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.024 c
1-1079382820
HepB
2004-03-15 23:33
2004.04.04
Старт в свёрнутом виде


14-1078468956
Goida
2004-03-05 09:42
2004.04.04
Чуть-чуть о наследовании...


14-1078889519
Думкин
2004-03-10 06:31
2004.04.04
С днем рождения! 10 марта.


1-1079425364
Rule
2004-03-16 11:22
2004.04.04
Непонятки с МDI приложением ...


1-1079632852
senya
2004-03-18 21:00
2004.04.04
Удаление компонентов в Run-Time