Смещение логического и физического секторов на диске
От: Horzer  
Дата: 27.11.10 21:08
Оценка:
Читаю с SD карты памяти на низком уровне при помощи CreateFile() и ReadFile().

Если диск открывать как логический — CreateFile("\\\\.\\D:"), то при чтении данные в буфере расположены с начала.
Если диск открывать как физический — CreateFile("\\\\.\\PHYSICALDRIVE1"), то данные начинаются с N-го сектора (у моей SD карты, например с 58-го)

Программа WinHex показывает какой-номер сектора (например, Physical sector no: 57, Logical sector no: 0).

Как правильно определять это смещение, чтобы начать чтение данных с нужного места?

Спасибо за внимание!


08.12.10 18:27: Перенесено модератором из 'WIN API' — Valery A. Boronin
Re: Смещение логического и физического секторов на диске
От: Centaur Россия  
Дата: 28.11.10 05:56
Оценка:
Здравствуйте, Horzer, Вы писали:

H>Если диск открывать как логический — CreateFile("\\\\.\\D:"), то при чтении данные в буфере расположены с начала.

H>Если диск открывать как физический — CreateFile("\\\\.\\PHYSICALDRIVE1"), то данные начинаются с N-го сектора (у моей SD карты, например с 58-го)

H>Как правильно определять это смещение, чтобы начать чтение данных с нужного места?


Как минимум, стоит почитать про таблицы разделов (как классические, так и GUID Partition Table, на всякий случай). После этого по меньшей мере часть вопросов отпадёт.
Re: Смещение логического и физического секторов на диске
От: MShura  
Дата: 28.11.10 22:37
Оценка:
H>Как правильно определять это смещение, чтобы начать чтение данных с нужного места?

Если у Вас есть доступ к тому по какому-либо имени и нужно узнать на каких дисках и по каким смещениям этот том расположен, то IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
Re[2]: Смещение логического и физического секторов на диске
От: Pavel Dvorkin Россия  
Дата: 29.11.10 09:13
Оценка:
Здравствуйте, Centaur, Вы писали:

C>Как минимум, стоит почитать про таблицы разделов (как классические, так и GUID Partition Table, на всякий случай). После этого по меньшей мере часть вопросов отпадёт.


А разве на флешке они есть ? Кто их там делал ?
With best regards
Pavel Dvorkin
Re[3]: Смещение логического и физического секторов на диске
От: Horzer  
Дата: 29.11.10 10:08
Оценка:
PD>А разве на флешке они есть ? Кто их там делал ?
Да, оказывается есть — как минимум один раздел.

Я открыв флешку winhex-ом и затерев несколько первых килобайт нулями, думал что сделал из нее неразменный диск. Но теперь я понимаю, что winhex открыл диск как логическое устройство (первый раздел диска) и я потер только данные файловой системы первого раздела. А MBR остался, где данные о разметке диска на разделы.

Centaur, спасибо большое!
Re[2]: Смещение логического и физического секторов на диске
От: Horzer  
Дата: 29.11.10 10:09
Оценка:
Здравствуйте, MShura, Вы писали:

H>>Как правильно определять это смещение, чтобы начать чтение данных с нужного места?


MS>Если у Вас есть доступ к тому по какому-либо имени и нужно узнать на каких дисках и по каким смещениям этот том расположен, то IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS


Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.