-
Как получить доступ к конкретному лог блоку диска? Хочу быстро написать такую прогу. Грубо идея такая- -пытаюсь прочесть LBA номер N -если не читается (смотрю по таймеру), то добавляю в ВАД файл этот LBA. -перебераю все LBA на винте.
В результате хочу иметь файл ВАД, состоящий целиком из порченных блоков.
-
LBA (Logical Block Addressing) - это название механизма адресации блоков. нельзя "прочесть LBA номер N". прочитать сектор диска можно - открыть диск с помощью CreateFile и прочитать с помощью, как бы неожиданно это не прозвучало, ReadFile.
-
то-то не догнал, извиняюсь. BlockRead(FromF, Buf, SizeOf(Buf), NumRead); Здесь FromF переменная типа file. Там ни дорожек, ни секторов.
-
Ни о каких BlockRead и речи не было, да и конференция то по WinAPI - вот и смотри там CreateFile и ReadFile, возможно также применение IOCTL функций, например для получение геометрии диска. LBA по адресации совместим с понятием Abslolute Sector и известные для ДОС соответствующие операции, не помню вроде функции 25/26 - в Виндоус через ReadFile
-
-
Большущее спасибо! Читаю с наслаждением!
-
> Anatoly Podgoretsky © (16.12.09 16:53) [3] > Ни о каких BlockRead и речи не было, да и конференция то > по WinAPI - вот и смотри там CreateFile и ReadFile, возможно > также применение IOCTL функций, например для получение геометрии > диска. LBA по адресации совместим с понятием Abslolute Sector > и известные для ДОС соответствующие операции, не помню вроде > функции 25/26 - в Виндоус через ReadFile
Вовсе не обязательно прибегать к этим IOCTL функциям, если знаете размещения структур и их порядок на диске, то можно и так "прямым чтением" он и так весь читается от самого нулевого и до самого последнего байта но только блоками по ххх байт.
-
оно конечно хорошо, только нафиг не нужно. ну то есть, вообще нафиг
-
а если вад файл на не читаемом блоке? )
-
> а если вад файл на не читаемом блоке? )
То об этом будет известно.
|