Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Написание драйвера   Найти похожие ветки 

 
Xerx ©   (2004-07-16 04:39) [0]

Привет всем! Кто-нибудь писал драйвера? Мне нужно написать что-то типа драйвера Daemon"а т.е. драйвер виртуального CD-ROM. Подкитьте мыслишки и/или ссылки. Хорохо бы на Delphi ну или на Си (DDK)
Должен работать и в NT и в 9x. Наверное нужно 2 драйвера.


 
SammIk ©   (2004-07-16 06:37) [1]

DDK тебе в любом случае нужет.
К томуже ты пришел не по адресу.
Делаем редирект на  wasm.ru там в статьях есть про драиверы.


 
Ihor Osov'yak ©   (2004-07-16 17:22) [2]

>  Хорохо бы на Delphi

Судя по реплике - придется читать много и долго.

Недавно вышла книжечка Солдатова, точного названия не помню, кажется, "Разработка драйверов" - довольно хорошее введение в тему, особенно там хорош раздел библиографии, перечислено почти все, что издавалось на соотв. тематику.  Но Солдатов - это в части натив дайверов, и WDM, то есть для NT, W2k, XP, в некоторых случаях для 98, Me (но не для случая виртуального СD).
Для 9x - VxD, это совсем отдельная тема. Литературы поменьше будет, русскоязычной - не уверен, что есть вообще. Хотя статей в рунете на тему VxD будет больше, чеи на тему WDM.

Еще. пишущая драйвера русскоговорящая публика тусуется на www.rsdn.ru в форуме низкоуровневое програмированние, и когда-то, может даже сейчас - fido7.su.windows.nt.prog.


 
Burmistroff   (2004-07-16 21:08) [3]

club.shelek.com

>Ihor Osov"yak
Кстати была какая-то коммерческая фишка, позволяющая писать драйвера WDM на Delphi


 
Рамиль ©   (2004-07-16 21:25) [4]


> Burmistroff   (16.07.04 21:08) [3]

DriverStudio, например.


 
Ihor Osov'yak ©   (2004-07-17 02:04) [5]

2 [3] Burmistroff   (16.07.04 21:08)

Неферю.

2 [4] Рамиль ©   (16.07.04 21:25)

Неужели?

ЗЫ
http://cs.stu.cn.ua/~tarvo/articles/WDM_NuMega.html
http://www.ntshop.ru/shop/subdept.asp?dept=1003 :-)

Зы2. Хвакт наличия драйвстудио не отменит необходимости разборки с премудраями архитектуры драйверов и соотв. литературы и ддк до дырок.. А после соотв. разборки вполне может возникнуть вопрос, а на кой ляд мне этот драйв студио.. Ну, разве что из-за софтайса, я не знаю, поставляется ли он отдельно.


 
SammIk ©   (2004-07-17 04:13) [6]

Квжись, уже нет((


 
Burmistroff   (2004-07-17 21:30) [7]

Ну не знаю, я бы с удовольствием юзаль Delphi с его IDE для написания драйверов. Что-то в Си мне не нравится, хоть застрелись :)

Правда пожалуй что эффективно отлаживать (точнее анализировать bucheck"овские и прочие minidump"ы) с помощью kd по любому получится только написанные на VStudio проекты, а это крайне важно. Тонкости объявления структур/API в DDK по сути фигня ;)


 
Ihor Osov'yak ©   (2004-07-17 23:46) [8]

2 [7] Burmistroff   (17.07.04 21:30)

чесно, я не знаю, плакать или смеяться.. Если верить вашему постингу, то вы как бы разбираетесь в тонкостях ддк-овских структур, а не знаете, что не делает линкер делфи нужного формата... Что компилятор делфи в код по-любому несколько вызовов апи реального режима подбросит..  Да и представление об обьеме деклараций из ддк как бы должно быть..


 
Burmistroff   (2004-07-18 20:43) [9]

Не надо ни плакать, ни смеяться. Надо быть адекватным.
Я же высказал идеальную концепцию, т.е. что бы я хотел в принципе ;)

Объем - это уже формальность. Объем объявлений WinAPI ф-ций тоже не мал, не говоря уж о том, что для работы со многими частями системы в добавок были написаны объекты, однако ж ниче - Borland справился...


 
Ihor Osov'yak ©   (2004-07-18 22:57) [10]

2  Burmistroff

уважаемый, я осмелюсь задать несколько вопросов:

1. Вы имеете представление об области, о которой пытаетесь рассуждать (я имею ввиду факт наличия некоторых знаний об функционировании драйверов "внутри", об особенностях их разработки)?
2. Если бы я сказал, что завтра я пройдусь огурцы пособирать на дачке, которая у меня на одном из марсиансих вулканов (а че смееnесь, ведm летают же на Марс, по телевизору даже показывали, да и дачи в принцыпе существуют) - вы бы меня адекватным посчитали? Ведь я не дурачусь, ведь я же высказываю идеальную концепцию, то бишь то, что бы я хотел в принцыпе.. Я же не об Альфа Центавра, а только о Марсе, и даже не сегодня, а только завтра.


 
Burmistroff   (2004-07-19 21:31) [11]

Не надо переворачивать все с ног на голову.

Не стану лукавить, у меня небогатый опыт работы с драйверами (1 свой, пара изученных чужих + бегло изученная книжка Walter Oney), но не думаю, что больший бы опыт перевернул с ног на голову (или наоборот) мои представления об их функционировании "внутри".

Все же мне непонятно:
1) почему нельзя компилировать код драйвера с языка того же поколения и с такими же возможностями, что и "Си"
2) что мешает писать код в среде разработки Delphi (я имею ввиду частоиспользуемые мной code-autocomplete, поиск ctrl+e, и кое-что еще), подобно тому, как в Delphi пишутся консольные приложения.

Фактически что не хватает Delphi сейчас:
1) Компоновщика, "специальной" версии юнитов вроде "system" и адекватной реализации некоторых встроенных "фишек" языка. В принципе задача разрешимая. (когда я говорю "в принципе" я рассуждаю не в отрыве от земных реалий)
2) Набора *.h и *.lib файлов из DDK. Большая часть их может быть сконвертирована в *.pas автоматически (у Borland есть многолетний опыт), да и за последние годы уж точно можно было разработать элементарный конвертор (если его еще не было лет 10 назад)
3) лицензии + сотрудничества со стороны microsoft.


 
Ihor Osov'yak ©   (2004-07-20 02:20) [12]

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.
ну да, совсем малость.


 
Ihor Osov'yak ©   (2004-07-20 04:14) [13]

Зы. о  [12].

Я, обычно в похожих случаях дискуссии не продолжаю, ну очень уж оторванной от действительности дисскусия есть, но один коллега намекнул, что я с  Burmistroff  в реале почти знаком.. Интересно стало..Но почитал через час, даже неудобно стало, за переливание с пустого в порожнее. Так что сорри за флейм.

Burmistroff,  если версия о землячестве верная - может бы и интересно было встретиться..


 
Суслик ©   (2004-07-20 10:51) [14]


> Burmistroff,  если версия о землячестве верная - может бы
> и интересно было встретиться..

мордобой не светит?


 
Ihor Osov'yak ©   (2004-07-20 11:37) [15]

2 [14] Суслик ©   (20.07.04 10:51)

а почему такой вывод?

зы.. а веточку в потрепаться пора бы уже, или вообще, того.. Имхо..
Вероятно, Игорь где-то по отпускам загулял :-)


 
Anatoly Podgoretsky ©   (2004-07-20 11:42) [16]

Свети и еще как.


 
Суслик ©   (2004-07-20 11:44) [17]

Зачем в потрепаться?
Что за мания: как вопрос не по апи, значит в потрепаться.
Хороший и интересный тематический разговор.
Думаю многим (и мне в том числе) полезен.

Не надо в потрепаться.
Я например узнал много новых, бесполезных для меня, правда, сведений. Но для общего образования ничего не вредно...


 
Ihor Osov'yak ©   (2004-07-20 11:55) [18]

2 [17] Суслик ©   (20.07.04 11:44)

Да может и так. Но мне немного стыдно за свой словесный понос, хотя по существу говорилось и верно, имхо, конечно. Мною, конечно :-)

2 [16] Anatoly Podgoretsky ©   (20.07.04 11:42)

Добрейшей души человек Анатолий :-)


 
Суслик ©   (2004-07-20 12:04) [19]

Да ладно - понос не понос, главное информативно для тех кто вообще в этом не смыслит.

режим ядра для меня - совершенно не знаком.
а тут столько нового.


 
Ihor Osov'yak ©   (2004-07-20 12:21) [20]

в плане оффтопа -  провели "расследование", похоже версия о землячестве - фальшивая, так что драчки не будет уже точно :-).. Хорошая раньше фишка была, можно было ай-пи посмотреть, душа бы не терзалась..


 
Burmistroff   (2004-07-20 23:10) [21]

>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) сайте ;)


 
Anatoly Podgoretsky ©   (2004-07-21 00:11) [22]

Язык ограничений не имет, нужна только переделка компоновцика, частично компилятора, особенно что бы не пихал свой startup код в драйвер и конечно заголовочные файлы. Но намериний таких у Борланда нет, продукт позиционируется для другого.


 
Ihor Osov'yak ©   (2004-07-21 02:08) [23]

2 [22] Anatoly Podgoretsky ©   (21.07.04 00:11)

ну а о чем я здесь флеймю, не о том же? :-)

2 Burmistroff, уж извините мою наглость  - уж очень много в Ваших высказываниях не вяжется одно с другим. Разрешите, я не буду приводить конкретных примеров, ок?  Еще раз извините за прямоту.


 
Burmistroff   (2004-07-21 19:06) [24]

>Ihor Osov"yak
Ээх, как жаль что на этом форуме нет private message"ов... На самом деле мне бы очень хотелось посмотреть на ошибки в своих рассуждениях... Но ни в коем случае на воспринимайте это как просьбу "привести" эти самые примеры, оставим это тайну истории ;)

А прямота - достойное качество, если оно не выражает какую-то необъяснимую неприязнь...


 
Суслик ©   (2004-07-21 19:20) [25]

Никаких прайвэйтов! :))))))

Сделать все достоянием общественности!!!!!!


 
Ihor Osov'yak ©   (2004-07-21 22:02) [26]

> какую-то необъяснимую неприязнь...

если интересно - в общем-то причина моего "наезда" - несколько слышком бравурно-самоуверенный шапкозакидательный стиль изложения, к тому же изложение имело, скажем дипломатически, оттенок недостоверности и искажения реального положения вещей...

> Сделать все достоянием общественности!!!!!!

Зачем? Некоторые моменты уже прокоментированные, читателю, который разбирается в сабжевой тематике - и так понятно, читателю - который не разбирается - аргументы достоверные и недостоверные отличить трудно будет, если же у такого человека возникнет желание разобраться с сабжевой тематикой - ему довольно быстро станет понятно и без моих комментариев..

зы.. только вот как устоена поддержка строк -  был один из первых моих вопросов при знакомстве и с паскалем, и с делфи... Буквально в первые дни.


 
Burmistoff   (2004-07-22 20:38) [27]

>Ihor Osov"yak
Ну ладно, ладно, мое любопытство взяло верх. Конкретезируйте, пожалуйста эти самые искожения


 
Klev   (2004-07-23 05:06) [28]

Доказано, что на Delphi 3 VXD-драйвера под win 98 писать можно.
Вот ссылочка: http://lae.pp.ru/pub/users/asd/vxd.phtml.htm
Но вот только стоит ли?


 
Ihor Osov'yak ©   (2004-07-23 16:53) [29]

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)

Может, если будет "час та натхнення" (в переводе на русский - "время и энтузиазм" - но этот перевод теряет некоторую изюминку :-)) .


 
Burmistroff   (2004-07-23 17:11) [30]

>Ihor Osov"yak
Кстати, у меня немного все-таки украинские корни. У Тернополе мы не бывали, зато в Киеве - много раз. Кстати, я много раз говорил (правда не здесь) что он мне намного больше Москвы нравится, хотя надо признать что и Москва в последнее время большой прогресс сделала. Но это так, к слову ;)



Страницы: 1 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.045 c
6-1088772058
Soft
2004-07-02 16:40
2004.09.05
Отсылка письма через нажатие кнопки в другом письме.


1-1093025592
shc
2004-08-20 22:13
2004.09.05
Копирование значений в динамический массив


14-1092643121
Anton15
2004-08-16 11:58
2004.09.05
Word


1-1092727923
Cosinus
2004-08-17 11:32
2004.09.05
Корректное создание и вывод сообщений об исключительных ситуациях


9-1084454894
matsic
2004-05-13 17:28
2004.09.05
Статистическая обработка