|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 20, 2004 16:26:08 Добрый день всем. У меня возникла потребность редактировать MBR, но как это делать в NT подобных системах я не знаю. Пробовал через CreateFile/WriteFile но результат нулевой хотя и ошибки не возникало. Подскажите пожалуйста в каком направлении копать? Зарание спасибо. dword@nm.ru |
|
|
Дата: Июн 20, 2004 16:57:58 Покапайся в hal.dll, там я видел некоторые функции для работы с таблицей разделов, может, чего нибудь и большее есть. Хотя, на мой взгляд, проще kmd написать и юзать девайс через порты. Можно сделать ioCallDriver к fs драверу, решай сам... |
|
|
Дата: Июн 20, 2004 21:06:39 Есть простой способ из под админа - CreateFile(DEVICE_NAME); |
|
|
Дата: Июн 20, 2004 21:12:48 |
|
|
Дата: Июн 21, 2004 03:30:11 Для CARDINAL Мне кажется что должен быть более простой способ. Вот интересно как это делает format.com (на самом деле он EXE да еще и PE) или defrag.exe? Для Zero Ice Из под админа CreateFile/ReadFile читает MBR прекрасно, а вот как писать в MBR? WriteFile в этом случае не работает хотя и не выдает ошибку. Для volodya Ну нету там ничего про запись. |
|
|
Дата: Июн 21, 2004 09:08:32 Кажись там было какое-то дополнительное требования - при записи размер блока должен быть кратен то-ли размеру сектора, то-ли 512 байтам.... |
|
|
Дата: Июн 21, 2004 09:16:12 format.com PE ехешник ?? Странно, делает он это через int 13h(). хотя,проще взять ice2.8 и им поглядеть, смотря какой версии формат.ком. да , кстати , ты прав , это PEшник, работает как самостоятельный процесс без всяких там ntvdm, щас , погляжу чево он делает.... хм, интересно.. |
|
|
Дата: Июн 21, 2004 09:17:01 а вообще, дравер бы писал и не мучился, там процедура записи MBR занимает строчек 10 на асме.... |
|
|
Дата: Июн 21, 2004 11:35:01 Странно, а почему WriteFile не работает? Может, ты (как и я когда-то) после ReadFile забыл SetFilePointer? Покажи код, подумаем... |
|
|
Дата: Июн 23, 2004 15:55:38 > Пробовал через CreateFile/WriteFile но результат нулевой хотя и ошибки не возникало. странно. если нет ошибки, то все должно быть ок на kpnc.opennet.ru лежит SCSIlib.zip там дока как обращаться к секторам в NT, приведен с десяток различных методов, правда для CD, а не HDD, но для HDD они работают тоже, ибо с точки зрения XP между ними один хрен разница и то, и то SCSI устройства. |
|
|
Дата: Июн 23, 2004 15:58:18 > Покапайся в hal.dll, там я видел некоторые функции для > работы с таблицей разделов, может, чего нибудь и > большее есть. Хотя, на мой взгляд, проще kmd написать и > юзать девайс через порты. Можно сделать ioCallDriver к fs драверу, решай сам... какие порты? господи, ну зачем там сложно... есть же ASPI/SPTI/cookie-mode/scsi mini-port... на худой конец, можно подрихтовать карту портов и сделать их доступными с прикладного уровня, хотя порты это саксь. |
|
|
Дата: Июн 23, 2004 16:01:32 > Из под админа CreateFile/ReadFile читает MBR прекрасно, > а вот как писать в MBR? WriteFile в этом случае не > работает хотя и не выдает ошибку. ты какой диск открываешь? физический или логический? а шаре-доступ стоит? w2k пишет по всяком случае... ес-но, админ должен быть. |
|
|
Дата: Июн 23, 2004 16:02:27 > Кажись там было какое-то дополнительное требования - > при записи размер блока должен быть кратен то-ли > размеру сектора, то-ли 512 байтам.... а сам буфер выровнен на величину гранулярности памяти, т.е. на 46 кб. |
|
|
Дата: Июн 23, 2004 16:04:20 > format.com PE ехешник ?? а то! > Странно, делает он это через int 13h(). хм? ты это серезно? в w2k - через ulib.dll |
|
|
Дата: Июн 23, 2004 16:05:54 > а вообще, дравер бы писал и не мучился, там процедура записи MBR занимает строчек 10 на асме.... лучше отпадчить atapi.sys, выкинув нафиг пару джампов, тогда с диском можно будет делать все что угодно. как падчить - написано в SCSIlib.zip |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.057 |