![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Написание драйвера [Win95/98, WinME, WinXP]
Xerx © (2004-07-16 04:39:00)Привет всем! Кто-нибудь писал драйвера? Мне нужно написать что-то типа драйвера Daemon'а т.е. драйвер виртуального CD-ROM. Подкитьте мыслишки и/или ссылки. Хорохо бы на Delphi ну или на Си (DDK)
Должен работать и в NT и в 9x. Наверное нужно 2 драйвера.
Burmistroff (2004-07-23 17:11:00) [1]>Ihor Osov'yak
Кстати, у меня немного все-таки украинские корни. У Тернополе мы не бывали, зато в Киеве - много раз. Кстати, я много раз говорил (правда не здесь) что он мне намного больше Москвы нравится, хотя надо признать что и Москва в последнее время большой прогресс сделала. Но это так, к слову ;)
Ihor Osov'yak (2004-07-23 16:53:00) [2]2 [28] Klev (23.07.04 05:06)
это один из упорно неумираемых мифов. Вернее реалий. Класса "рвем гланды не через горло, а через противоположное отверствие".
Кстати, зачем там "Microsoft® Macro Assembler ver. 6.11d и Microsoft® Incremental Linker"? Еще маленькое уточнение. "При написании данного материала были использованы Microsoft® Macro Assembler ver. 6.11d и Microsoft® Incremental Linker" - типичный пример полуправды.
Верным будет "Для посторения бинарного кола vxd-драйвера Вам будет также нужен Microsoft® Macro Assembler ver. 6.11d или выше и Microsoft® Incremental Linker, а вот присутствие Delphi совсем не обязательно. Даже не то, что необязателльно, а противопоказано. Хотя бы потому, что за время, которые Вы попратите на игры вокруг Делфи в этом контесте можно сделать несколько соответствующих проектов в случае использования штатных средств.".
2 [27] Burmistoff (22.07.04 20:38)
Может, если будет "час та натхнення" (в переводе на русский - "время и энтузиазм" - но этот перевод теряет некоторую изюминку :-)) .
Klev (2004-07-23 05:06:00) [3]Доказано, что на Delphi 3 VXD-драйвера под win 98 писать можно.
Вот ссылочка: http://lae.pp.ru/pub/users/asd/vxd.phtml.htm
Но вот только стоит ли?
Burmistoff (2004-07-22 20:38:00) [4]>Ihor Osov'yak
Ну ладно, ладно, мое любопытство взяло верх. Конкретезируйте, пожалуйста эти самые искожения
Ihor Osov'yak (2004-07-21 22:02:00) [5]> какую-то необъяснимую неприязнь...
если интересно - в общем-то причина моего "наезда" - несколько слышком бравурно-самоуверенный шапкозакидательный стиль изложения, к тому же изложение имело, скажем дипломатически, оттенок недостоверности и искажения реального положения вещей...
> Сделать все достоянием общественности!!!!!!
Зачем? Некоторые моменты уже прокоментированные, читателю, который разбирается в сабжевой тематике - и так понятно, читателю - который не разбирается - аргументы достоверные и недостоверные отличить трудно будет, если же у такого человека возникнет желание разобраться с сабжевой тематикой - ему довольно быстро станет понятно и без моих комментариев..
зы.. только вот как устоена поддержка строк - был один из первых моих вопросов при знакомстве и с паскалем, и с делфи... Буквально в первые дни.
Суслик (2004-07-21 19:20:00) [6]Никаких прайвэйтов! :))))))
Сделать все достоянием общественности!!!!!!
Burmistroff (2004-07-21 19:06:00) [7]>Ihor Osov'yak
Ээх, как жаль что на этом форуме нет private message'ов... На самом деле мне бы очень хотелось посмотреть на ошибки в своих рассуждениях... Но ни в коем случае на воспринимайте это как просьбу "привести" эти самые примеры, оставим это тайну истории ;)
А прямота - достойное качество, если оно не выражает какую-то необъяснимую неприязнь...
Ihor Osov'yak (2004-07-21 02:08:00) [8]2 [22] Anatoly Podgoretsky © (21.07.04 00:11)
ну а о чем я здесь флеймю, не о том же? :-)
2 Burmistroff, уж извините мою наглость - уж очень много в Ваших высказываниях не вяжется одно с другим. Разрешите, я не буду приводить конкретных примеров, ок? Еще раз извините за прямоту.
Anatoly Podgoretsky (2004-07-21 00:11:00) [9]Язык ограничений не имет, нужна только переделка компоновцика, частично компилятора, особенно что бы не пихал свой startup код в драйвер и конечно заголовочные файлы. Но намериний таких у Борланда нет, продукт позиционируется для другого.
Burmistroff (2004-07-20 23:10:00) [10]>Ihor Osov'yak
Уфф сколько тут флейма произошло :)) Как уже стало известно, версия о земляечестве действительно немного фальшивая, ну ни чего, двумя хорошими людьми на свете останется больше ;))
Ну а теперь к вопросам:
>И я о том же. Все таки о чем спич идет?
Немного покопав поглубже я понял, что коммерческая фишка действительно оказалась фальшивкой, так что далее я просто задался вопросом, а почему бы ни... :)
///почти ОФФТОП
Поясняю: отношения с VStudio у меня ужаснейшие. Я ни когда не забуду, как я устанавливал ее окло дня. То просто с Cd, то скопировав файлы с CD на диск (это заняло порядко 2 часов). И еще ни когда не прощу тех, 7 гигов, что она в итоге "съела". Ну да ладно: вообщем что меня не устроило в мой опыт написания драйвера:
1) VStudio как-то в общем и не знал о DDK - и потому autocomplete не было
2) дурацкий принцип компиляции в VStudio (эти вопросы "компилировать или нет", которые пришлось прибить жестким вмешательством в msenv.dll). Но, к слову сказать, компилировал я каждый раз вообще с командной строки
В общем в худших традициях linux - не user-friendly
3) ну и в общем-то самое главное - язык "си".
---
Резюме:
Delphi для меня имеет самый удобный IDE. Конечно у VStudio тоже много хороших фишек, которые можно было бы перенять (как в прочем и паскалю у си), но все равно нет в нем той "удобочитаемости" что-ли. Потому я и заговорил о том, как бы здорово было-бы, если...
///
>есть упоминание о делфи - так там просто пример взаимодействия делфийского приложения с драйвером режима ядра, не более.
Хмм... вопрос в сторону -- а накой для взаимодействия с драйвером нужен DriverStudio...
>Если о делфи - то во первых<...> смерти подобно для кода режима ядра.
Ну так это решается не такой уж и серьезной коррекцией компилятора. При правильном подходе пробную версию можно было бы сбацать за месяц, с учетом отловки багов - за 6 ;)
Просто когда-то я писал простенький компилятор и имею приблизительное представление о том как "это" происходит, да и книжки читал, опять же немного, но все же.
>Если кто-то проделает титаническую работу по конвертации ддковских хидеров
Ну и не такую уж титаническую -- это ж всего лишь хидеры, причем написанные в одном хорошем стиле. Кроме того объем рутины значительно сократится бы даже с примитивным ковертором. Хотя, это лишь мой взгляд. С jedi-xxx я не знаком ;)
Опять, просто я когда-то писал простенький транслятор с Си :). Но на своем взгляде я не настаиваю.
>а на кой ляд он там нужен?
Он... ну чтобы с меньшим "гемором" использовать стандартные там getmem'ы, поддержку стрингов (если это там). Вообщем-то я имел ввиду, что этот юнит всегда прикомпиливается, и его реализацию нужно наверное будет проверить на предмет "подходимости" для работы в режиме ядра. Хотя раз пошла такая пьянка, может лучше и вообще без него :) ...
А насчет фишек -- я имел ввиду динамические массивы/стринги. Не смотрел как реализована их поддержка, но почти уверен, что какие-нибудь "поправки" вносить да придется.
Насчет многолетнего опыта -- ну так делфи ж уж лет 10.
Ну а насчет лицензий -- у борланда неплохие отношения с MS, судя по всяким баннерам на их (borland) сайте ;)
Ihor Osov'yak (2004-07-20 12:21:00) [11]в плане оффтопа - провели "расследование", похоже версия о землячестве - фальшивая, так что драчки не будет уже точно :-).. Хорошая раньше фишка была, можно было ай-пи посмотреть, душа бы не терзалась..
Суслик (2004-07-20 12:04:00) [12]Да ладно - понос не понос, главное информативно для тех кто вообще в этом не смыслит.
режим ядра для меня - совершенно не знаком.
а тут столько нового.
Ihor Osov'yak (2004-07-20 11:55:00) [13]2 [17] Суслик © (20.07.04 11:44)
Да может и так. Но мне немного стыдно за свой словесный понос, хотя по существу говорилось и верно, имхо, конечно. Мною, конечно :-)
2 [16] Anatoly Podgoretsky © (20.07.04 11:42)
Добрейшей души человек Анатолий :-)
Суслик (2004-07-20 11:44:00) [14]Зачем в потрепаться?
Что за мания: как вопрос не по апи, значит в потрепаться.
Хороший и интересный тематический разговор.
Думаю многим (и мне в том числе) полезен.
Не надо в потрепаться.
Я например узнал много новых, бесполезных для меня, правда, сведений. Но для общего образования ничего не вредно...
Anatoly Podgoretsky (2004-07-20 11:42:00) [15]Свети и еще как.
Ihor Osov'yak (2004-07-20 11:37:00) [16]2 [14] Суслик © (20.07.04 10:51)
а почему такой вывод?
зы.. а веточку в потрепаться пора бы уже, или вообще, того.. Имхо..
Вероятно, Игорь где-то по отпускам загулял :-)
Суслик (2004-07-20 10:51:00) [17]
> Burmistroff, если версия о землячестве верная - может бы
> и интересно было встретиться..
мордобой не светит?
Ihor Osov'yak (2004-07-20 04:14:00) [18]Зы. о [12].
Я, обычно в похожих случаях дискуссии не продолжаю, ну очень уж оторванной от действительности дисскусия есть, но один коллега намекнул, что я с Burmistroff в реале почти знаком.. Интересно стало..Но почитал через час, даже неудобно стало, за переливание с пустого в порожнее. Так что сорри за флейм.
Burmistroff, если версия о землячестве верная - может бы и интересно было встретиться..
Ihor Osov'yak (2004-07-20 02:20:00) [19]2 Burmistroff (19.07.04 21:31) [11]
> Не надо переворачивать все с ног на голову.
И я о том же. Все таки о чем спич идет?
О том, что "Кстати была какая-то коммерческая фишка, позволяющая писать драйвера WDM на Delphi" - см [3], или о принципиальной возможности писать драйвера для 32 битной винды на делфи? На том делфи, который сейчас в природе существует, На всякий случай, я все же напомню, что мы ведем речь о драйверах режима ядра, верно?
Если о коммерческой фишке - нету такой в природе. А то, что в контесте драйв студио есть упоминание о делфи - так там просто пример взаимодействия делфийского приложения с драйвером режима ядра, не более.
Если о принципиальной возможности/невозможности - см. далее.
>Не стану лукавить, у меня небогатый опыт работы с драйверами (1 свой, пара изученных чужих + бегло изученная книжка Walter Oney), но не думаю, что больший бы опыт перевернул с ног на голову (или наоборот) мои представления об их функционировании
"внутри".
Оставляю право за собой не поверить.
>Все же мне непонятно:
>1) почему нельзя компилировать код драйвера с языка того же поколения и с такими же возможностями, что и "Си"
Если в принцыпе рассматривать какой-то паскалеобразный язык и случай разработки нового компилятора и линковщика - то ничто не мешает поддержать такую возможность. В принцыпе. А на практике - деньги, время. И целесообразность.
Если о делфи - то во первых, линковщик не поддерживает соотв. структуры бинарника. Во вторых - нет гарантии что компилятор в свои компилер-магик фишки не сунет вызов какой-то функции реального режима. Что есть смерти подобно для кода режима ядра.
Почему борланды не подддержали возможности разработки для режима ядра? Не знаю, вероятно все же вопрос целесообразности - ведь делфи все же позиционируется в первую очередь как RAD.
> 2) что мешает писать код в среде разработки Delphi
в качестве блокнота - никто и ничто.
>(я имею ввиду частоиспользуемые мной code-autocomplete
autocomplete все же работает на основании компиляции, хотя бы частичной. Если кто-то проделает титаническую работу по конвертации ддковских хидеров с целью поддержки автокомплит... Не знаю, есть более полезные и более осмышленные занятия. И это на том фоне, что визуал студио с этой задачей довольно хорошо справляется (всякого рода навигация по исходникам и автокомплит при наборе исходного кода драйвера, в дополнение - как приспособить визуалстудио как среду для разработки драйверов - есть много решений, но кстати, везде рекомендуют финишную сборку все же делать средствами ддк, студио рассматривается как удобный редактор, слегка интегрированный с компилятором, не более).
> подобно тому, как в Delphi пишутся консольные приложения.
эта.. Глубокая мысль.. Дай подумаю. Таки да. И при написании консоли, и при разрабоке драйвера компоненты бросать не получится. Таки что-то в этом есть.
>Фактически что не хватает Delphi сейчас:
>1) Компоновщика,
слава алаху.
>"специальной" версии юнитов вроде "system"
а на кой ляд он там нужен?
>и адекватной реализации некоторых встроенных "фишек" языка.
а вот здесь поподробней..
> В принципе задача разрешимая. (когда я говорю "в принципе" я рассуждаю не в отрыве от земных реалий)
Вот Вы это борлану раскажите. а чтобы быть на земных реалиях, несколько вагонов с зеленью подгоните.
>2) Набора *.h и *.lib файлов из DDK. Большая часть их может быть сконвертирована в *.pas автоматически (у Borland есть многолетний опыт)
надо полагать, Вы свечу держали в процессе конвентации тех хидеров, что в поставке с дельфи идут..
> да и за последние годы уж точно можно было разработать элементарный конвертор (если его еще не было лет 10 назад)
ну так сделайте его, и цены Вам не будет, и пускай эти балаболы с www.delphi-jedi.org уйдут в туман..
3) лицензии + сотрудничества со стороны microsoft.
ну да, совсем малость.
Burmistroff (2004-07-19 21:31:00) [20]Не надо переворачивать все с ног на голову.
Не стану лукавить, у меня небогатый опыт работы с драйверами (1 свой, пара изученных чужих + бегло изученная книжка Walter Oney), но не думаю, что б ольший бы опыт перевернул с ног на голову (или наоборот) мои представления об их функционировании "внутри".
Все же мне непонятно:
1) почему нельзя компилировать код драйвера с языка того же поколения и с такими же возможностями, что и "Си"
2) что мешает писать код в среде разработки Delphi (я имею ввиду частоиспользуемые мной code-autocomplete, поиск ctrl+e, и кое-что еще), подобно тому, как в Delphi пишутся консольные приложения.
Фактически что не хватает Delphi сейчас:
1) Компоновщика, "специальной" версии юнитов вроде "system" и адекватной реализации некоторых встроенных "фишек" языка. В принципе задача разрешимая. (когда я говорю "в принципе" я рассуждаю не в отрыве от земных реалий)
2) Набора *.h и *.lib файлов из DDK. Большая часть их может быть сконвертирована в *.pas автоматически (у Borland есть многолетний опыт), да и за последние годы уж точно можно было разработать элементарный конвертор (если его еще не было лет 10 назад)
3) лицензии + сотрудничества со стороны microsoft.