Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.037 c
8-1087466421
ПсихЪ
2004-06-17 14:00
2004.09.05
Wave.pas, Wave.dcu - где взять?


14-1092725070
VMcL
2004-08-17 10:44
2004.09.05
Конф. Media


4-1090356969
[ping]VIN
2004-07-21 00:56
2004.09.05
GetLogicalDrivers


14-1092417468
Piter
2004-08-13 21:17
2004.09.05
Тихие исключения


1-1092677011
AlexZ
2004-08-16 21:23
2004.09.05
external variable | {$L MyFile.obj}





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский