Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

чтение конкретного LBA на винте [D7, WinXP]


zvm ©   (2009-12-16 10:08:00) 

Как получить доступ к конкретному лог блоку диска?
Хочу быстро написать такую прогу. Грубо идея такая-
 -пытаюсь прочесть LBA номер N
 -если не читается (смотрю по таймеру), то добавляю в ВАД файл  этот LBA.
 -перебераю все  LBA на винте.

В результате хочу иметь файл ВАД, состоящий целиком из порченных блоков.


Anatoly Podgoretsky   (2009-12-29 02:56:00) [1]


> а если вад файл на не читаемом блоке? )

То об этом будет известно.


SPeller   (2009-12-29 01:09:00) [2]

а если вад файл на не читаемом блоке? )


Игорь Шевченко   (2009-12-25 22:23:00) [3]

оно конечно хорошо, только нафиг не нужно. ну то есть, вообще нафиг


делфиец   (2009-12-25 19:15:00) [4]


> Anatoly Podgoretsky ©   (16.12.09 16:53) [3]
> Ни о каких BlockRead и речи не было, да и конференция то
> по WinAPI - вот и смотри там CreateFile и ReadFile, возможно
> также применение IOCTL функций, например для получение геометрии
> диска. LBA по адресации совместим с понятием Abslolute Sector
> и известные для ДОС соответствующие операции, не помню вроде
> функции 25/26 - в Виндоус через ReadFile


Вовсе не обязательно прибегать к этим IOCTL функциям, если знаете размещения структур и их порядок на диске, то можно и так "прямым чтением" он и так весь читается от самого нулевого и до самого последнего байта но только блоками по  ххх байт.


zvm   (2009-12-17 09:37:00) [5]

Большущее спасибо!
Читаю с наслаждением!


brother   (2009-12-17 04:08:00) [6]

http://www.xakep.ru/post/27724/default.asp?print=1
Удачного изучения!


Anatoly Podgoretsky   (2009-12-16 16:53:00) [7]

Ни о каких BlockRead и речи не было, да и конференция то по WinAPI - вот и смотри там CreateFile и ReadFile, возможно также применение IOCTL функций, например для получение геометрии диска. LBA по адресации совместим с понятием Abslolute Sector и известные для ДОС соответствующие операции, не помню вроде функции 25/26 - в Виндоус через ReadFile


zvm   (2009-12-16 16:47:00) [8]

то-то не догнал, извиняюсь.
       BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
Здесь FromF переменная типа file. Там ни дорожек, ни секторов.


grammar-nazi   (2009-12-16 15:33:00) [9]

LBA (Logical Block Addressing) - это название механизма адресации блоков. нельзя "прочесть LBA номер N".
прочитать сектор диска можно - открыть диск с помощью CreateFile и прочитать с помощью, как бы неожиданно это не прозвучало, ReadFile.


Наверх

Титульная страница Поиск, карта сайта Написать письмо