Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.77 MB
Время: 0.031 c
7-43206           Alexander Beliy       2001-12-08 02:03  2002.03.14  
Вопрос


1-43103           tovSuhov              2002-02-28 09:16  2002.03.14  
Каким компонентом можно реализовать вид как в Дельфях?


3-42982           Люк                   2002-02-15 11:45  2002.03.14  
Работа ADO под WindowsXP


4-43232           Evgeny                2002-01-11 13:39  2002.03.14  
Margin и PopupMenu


1-43088           MONIKER               2002-02-26 21:17  2002.03.14  
TCompressionStream