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