Форум: "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.033 c