Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |  |
Сорри, я глюканул 09.03.02 16:21 Число просмотров: 972
Автор: xiv Статус: Незарегистрированный пользователь
|
|
Извиняюсь, я до того зациклился, что ошибок не видел. Надо было сразу отвлечься.
|
|
<programming>
|
[Win32] проблеме с чтением диска 04.03.02 22:33
Автор: xiv Статус: Незарегистрированный пользователь
|
|
Читаю диск через DeviceIoControl, Int 21h 7305 (Ext_ABSDiskReadWrite), и все время область FAT читается немного неправильно. Что делать и кто виноват?
|
 |
[Win32] А что значит - "немного неправильно" ? 05.03.02 03:00
Автор: Chingachguk <Chingachguk> Статус: Member
|
|
|
 |  |
[Win32] А что значит - "немного неправильно" ? 06.03.02 16:32
Автор: xiv Статус: Незарегистрированный пользователь
|
|
читал секторами и по 1, и по кол-ву на кластер. Несколько кластеров правильно, а потом полная фигня, чего в принципе в FAT быть не может. Причем разным кол-вом секторов читаешь, разные ошибки. И diskedit'ом проверял, он-то правильно читает.
|
 |  |  |
[Win32] Может, поможет... 06.03.02 17:38
Автор: Chingachguk <Chingachguk> Статус: Member
|
> читал секторами и по 1, и по кол-ву на кластер. Несколько > кластеров правильно, а потом полная фигня, чего в принципе > в FAT быть не может. Причем разным кол-вом секторов > читаешь, разные ошибки. И diskedit'ом проверял, он-то > правильно читает.
Насколько я понял, там же задаешь номер сектора:
StartSector dd 0 ; // starting logical sector number - так эта хрень нумерует от ПЕРВОГО_СЕКТОРА_АКТИВНОГО_РАЗДЕЛА(Т.е. 0 - Это не mbr, а бут активного раздела). А еще эта фича с нумерами драйвов:
reg.reg_EDI = bDrive - 1; (или mov edx,0h ; 0-"C", 1-"A" ?!) - 0 у нее текущий раздел...
Может, в этом дело ?
А проще всего поставить бряк на вызов этой:
fResult = DeviceIoControl(hDev, VWIN32_DIOC_DOS_IOCTL,®, sizeof(reg),®,
sizeof(reg), &cb, 0);
(Это из кода Zef-а),
апи и посмотреть, какой параметр передает твой правильно читающий сектора DiskEdit в этом самом StartSector - е.
|
 |  |  |  |
Сорри, я глюканул 09.03.02 16:21
Автор: xiv Статус: Незарегистрированный пользователь
|
|
Извиняюсь, я до того зациклился, что ошибок не видел. Надо было сразу отвлечься.
|
|
|