Форум: "Система";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];
ВнизКак самому написать VXD/SYS драйвер и без DDK это возможно? Найти похожие ветки
← →
Andersen (2001-08-07 01:38) [0]В DOS можно было и с DMA, и с IRQ, и прерывание перехватить
а как-же в Windows к ним подобраться.
Я так понимаю постоянно все ссылаются на DDK + требуется знания Си
Знаю только ASM и PASCAL(DELPHI) в Си ни бум-бум
А где найти на русском подробную информацию
как самому написать VXD/SYS драйвер и без DDK это возможно?
← →
Некто (2001-08-07 02:23) [1]Уверен, что возможно, но только в двух случаях: 1. или ты сотрудник фирмы Билла, или очень крутой программер+хакер.
← →
Almaz (2001-08-07 03:27) [2]Без DDK драйвер написать скорее всего не получится, хотя бы потому, что только там можно найти .INC файлы для MASM, необходимые для написания драйвера. А вот знания Си в данном случае необязательны - Вам хватит знания MASM для написания простейшего драйвера. А что касается русской документации, то Вам стоит поискать перевод DDK. В свое время я его где-то видел, но сейчас сказать не могу - не помню :((( Вспомню - напишу.
Удачи.
← →
Digitman (2001-08-07 10:21) [3]Без знания синтаксиса и назначения некоторых C-конструкций, наверно, тоже не обойдется, поскольку в DDK еще присутствуют C-декларации и C-макросы. Их потребуется тем или иным образом транслировать в PAS.
← →
Almaz (2001-08-08 01:41) [4]>Digitman
Это только в том случае, если Вы решите использовать Delphi в написании драйвера. А этого я Вам настоятельно НЕ РЕКОМЕНДУЮ. Пишите на чистом MASM"е для драйвера это оптимально.
Удачи.
← →
Andersen (2001-08-08 02:12) [5]>Almaz
А вы писали драйвер под винды на ASMe?
Если есть опыт поделитесь.
← →
Digitman (2001-08-08 11:05) [6]>Almaz
Это <Andersen> собирается писать , а не я.
Но уж, коль скоро разговор зашел, приведи свои аргументы оптимальности/неоптимальности того или иного компилятора для этой цели. Готов подискутировать на эту тему. Лично я не вижу никаких препятствий для генерации кода драйвера в среде Делфи. Вопрос об эффективности MASM-кода и Delphi Pascal- кода пока отложим - отдельная тема.
← →
Anatoly Podgoretsky (2001-08-08 12:53) [7]Вопрос простой, конечный результат .vxd как насчет него?, а так с остальным все в порядке, никаких ограничений у компилятора нет.
← →
Digitman (2001-08-08 16:14) [8]>Anatoly Podgoretsky
Ну и что, что VXD ? Тебя собственно результирующее расширение файла волнует ? Или его структура ? Или абс.адресация результирующего кода компановщика ? Уточни.
← →
Anatoly Podgoretsky (2001-08-08 18:55) [9]Его структура, компоновщик Дельфи ее не в состоянии создать
← →
Алексей Петров (2001-08-08 19:07) [10]> Anatoly Podgoretsky
Внешне VXD и SYS выглядят корректной 32битной DLL-ю.
Или в них есть какие-то особенности?
Пока не увижу VXD или SYS на Delphi - не стану утверждать, что это возможно.
Но причин утверждать, что это не возможно - я тоже пока не вижу.
ОФФ: У Вас корректный E-mail есть? anatoly@podgoretsky.com не работает.
← →
Anatoly Podgoretsky (2001-08-08 23:54) [11]Особенности есть, на текущий момент существует три формата исполнимых файлов PE, SE, LE - Дельфи может делать только PE, а VXD должен быть LE.
Это единственное ограничение, которое не позволяет делать VXD на Дельфи.
Email корректный, но вся почта которая не относится к личной оказывается автоматом в мусорнике. Ответы только своим корреспондентам или по приглашению.
А что там с моим email - должно работать, какая ошибка, может что то временное?
Только что проверил, работает, наверно временное.
← →
Алексей Петров (2001-08-09 00:10) [12]Не могли-бы Вы поподробнее про форматы. Или может ссылочку подкините?
С драйверами не приходилось серьезно сталкиваться - а при поверхностном взгляде SYS и VXD выглядит вполне корректной dll-кой.
LE и SE - это надстройка над PE (по аналогии, как PE - Надстройка над exe 16-битным) или все-таки это нечто иное?
А про e-mail - lel как-то с Вами пытался связяться - и не преуспел. А я сам не пробовал - сам не люблю, когда пишут без приглашения :)
← →
Almaz (2001-08-09 01:17) [13]>Andersen
Да, я писал драйвер на MASM. Но это было давно. Найду свои исходники - поделюсь (и исходниками и опытом)
>Digitman
Дело не в оптимальности/неоптимальности, а как уже было сказано в формате файла VxD. Однако, можно (если ОЧЕНЬ нужно) написать основной файл на MASM, а из него вызывать функции на Delphi.
>Алексей Петров
LE - это не надстройка над PE, это особый формат файла (к слову, LE существовал еще до PE). Кстати, создать LE средствами MASM"а в стандартной поставке тоже невозможно - для этого нужен специальный Microsoft Incremental Linker - входящий в состав DDK. (к вопросу о необходимости DDK)
Удачи.
← →
Anatoly Podgoretsky (2001-08-09 01:32) [14]Подробностей выдать не могу, давно было, но надо искать у микрософта
Almaz вот тут тоже немного выдал информации про линкер.
Немного проще с WDM драверами, там формат PE
Но пока не слышал, что бы кто нибудь пытался из делать на Дельфи, все таки наверно проще делать это с помощью DDK
Существует и промежуточный вариант, нижний уровень на MASM, надстройка на Дельфи. Есть такой программист как Эмиль Бисеров он подобное реализовывал, ссылки на его сайт у меня нет, но может кто нибудь другой помнит или попытаться сделать поиск через слуюбы типа deja.com
Сттатья у него интересная и с полными примерами.
← →
GreenOver (2001-11-17 10:29) [15]http://www.infocity.kiev.ua/infocity/prog/delphi/delphi004.zip
← →
paul_shmakov (2001-11-18 15:38) [16]2 Almaz:
"А вот знания Си в данном случае необязательны - Вам хватит знания MASM для написания простейшего драйвера."
в поставке ddk крайне мало inc файлов для masm-а. да и те, что есть только в версии ddk for win9x/me. winnt - кросплатформенная система, поэтому все на си.
← →
Almaz (2001-11-19 00:35) [17]>paul_shmakov
>в поставке ddk крайне мало inc файлов для masm-а. да и те, что
>есть только в версии ddk for win9x/me. winnt - кросплатформенная система,
>поэтому все на си.
Вполне достаточно для написания любого драйвера для любой системы как в версии for Win9x/ME так и в версии for WinNT/2000
← →
paul_shmakov (2001-11-19 01:00) [18]2 Almaz:
не буду спорить. у меня стоит полный ddk win2k (включающий ddk win me). заходим в директорию inc, замеряем объемы соответствующих файлов.
файлы объем (байт)
*.h 20"394"775
*.inc 1"109"076
после этого фраза "Вполне достаточно для написания любого драйвера для любой системы как в версии for Win9x/ME так и в версии for WinNT/2000" наводит на размышления... :)
← →
AKV (2001-11-19 05:38) [19]Driver STudio from NUMEGA
по откликам с созданием в DS драйверов меньше секска чем с DDK
в ряде случаев можно использовать TvickHW
(прямое чтение памяти, порты, прерывания, код в 0-м кольце
и т.д и т. п.)
← →
alexus (2001-11-19 12:03) [20]Народ, я с инета скочал сампл, называется что-то типа разработка VxD на делфи. Сам не смтрел. кто вышлет мне свой емеэл, пришлю тому тот исходник, мож че получится... только потом меня научите тоже :)
← →
paul_shmakov (2001-11-19 13:38) [21]2 alexus:
посмотри немного выше. GreenOver уже дал всем эту ссылку.
← →
Almaz (2001-11-20 00:47) [22]>paul_shmakov
Ну и что ? А попробуйте сравнить 2 файла с одинаковым именем, но с расширениями .inc и .h:
Например:
config.inc 31091 байт
config.h 112285 байт
Чуствуете разницу в размере ? А функциональное содержимое одно и тоже.
Кроме того некоторые .h (но не .INC) файлы на мой взгляд вообще излишне в DDK (Напр. файл WinUser.h - описание функций и структур модуля USER ну и зачем оно ? Эти описание есть в стандартной поставке VC++)
В .inc файла заключены описание лишь того, что нужно для написания драйвера, но чего нет в стандартной поставке MASM"а, тогда как в .h файлах помимо нужной непосредственно для написания драйвера информации заключено еще много чего дублирующего стандартный пакет VC++. (winuser.h, shlobj.h, и т.д.) Таким образом имея DDK, MASM и умную голову на плечах можно написать "любой драйвер для любой системы как в версии for Win9x/ME так и в версии for WinNT/2000" как не смешно это звучит :)
Удачи.
← →
Сергей Чурсин (2001-12-11 13:54) [23]http://www.adwin.ru/dinfo/materials/vxd.phtml
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.004 c