Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
4-43227
otari
2002-01-07 12:32
2002.03.14
как поимать HWND если у приложений две edit


6-43133
GHF
2001-12-26 13:27
2002.03.14
Закачка страницы html


1-43009
kislov
2002-02-28 08:42
2002.03.14
немогу нормально очистить лист в F1Book


1-43106
Michael C
2002-02-28 10:45
2002.03.14
Народ, как сравнить текущий выбираемый элемент массива


1-43048
asl
2002-02-21 16:17
2002.03.14
Требуется поставить простенькую защиту на прогу.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский