Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Написание драйвера [Win95/98, WinME, WinXP]


Страницы:   1 2

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.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо