Создание драйверов устройств

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ReDetection
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 07.08.2006 (Пн) 0:36
Откуда: НоВосибирск

Создание драйверов устройств

Сообщение ReDetection » 07.08.2006 (Пн) 0:51

Ребятя, столкнулся с такой проблемой: нужно создать драйвер для устройства ввода. Кто-нибудь писал драйвер? Расскажите, пожалуйста.
Заранее благодарен.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.08.2006 (Пн) 0:53

Даже если кто-то здесь писал драйвер (а кто-то здесь наверняка писал драйвер), вопрос определённо не имеет отношения к форуму по VB.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 07.08.2006 (Пн) 5:39

ИМХО, прежде чем писать драйвер, нужно понимать, почему этого нельзя сделать на VB. Ну а если по теме, то на WASM.ru есть целая серия статей от four-f посвященная написанию драйверов...
А я все практикую лечение травами...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 6:33

Во-первых, я здесь уже выкладывал ссылку на какой-то (платный) тулкит, который по заявлениям создателей позволяет писать драйвера на VB.

Во-вторых, статьи от four-f посвящены конкретно написанию драйверов на ассемблере, т.е. стоя на лыжах в гамаке. Тем, кому и без этого достаточно геморроя, и кто пишет на Сях, большая часть его статей окажется бесполезной.
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 07.08.2006 (Пн) 7:00

tyomitch
Почему стоя на лыжах в гамаке? Используя МАСМовские директивы типа INVOKE, .IF, .WHILE сложность программирования приближается к Сям. Да и вообще, программируя на АСМе отподает нужда во вставках __asm, получается даже удобнее. Вообщем, каждому свое - я, например, органически не перевариваю С++...

А я бы взглянул на тот тулкит, где ты давал линк?
А я все практикую лечение травами...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 7:08

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

Линк тут: http://bbs.vbstreets.ru/viewtopic.php?t=19726
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 07.08.2006 (Пн) 7:33

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

За линк спасибо, гляну. Просто интересно, как смогли ужиться msvbvm60 и ring0 :) ...
А я все практикую лечение травами...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 07.08.2006 (Пн) 7:42

Basically, they have a "universal" driver that runs in kernel mode. Your user-mode driver is basically a DLL which calls the kernel-mode component of WinDriver
Халтура...
А я все практикую лечение травами...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 7:44

Twister писал(а):
Например потому, что для сишников есть готовый DDK, а любителям ассемблера даже его нужно создавать самим.
Это пожалуй единственная проблема, но она вполне решаема...

Не единственная. Ещё есть вызовы fastcall-функций, объявления UNICODE_STRING и прочие вещи, для которых в асме приходится наворачивать тонны макросов на ровном месте.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 7:44

Twister писал(а):
Basically, they have a "universal" driver that runs in kernel mode. Your user-mode driver is basically a DLL which calls the kernel-mode component of WinDriver
Халтура...

Тебе шашечки или ехать? :-)
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 07.08.2006 (Пн) 7:55

Тебе шашечки или ехать? :)
Конечно ехать. Но писать драйвер на VB, ИМХО, не только изврат, но и геморой. Гораздо проще это сделать на Сях или Асме.
приходится наворачивать тонны макросов на ровном месте
Ну, большинство из них уже написаны.
А я все практикую лечение травами...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 8:12

Twister писал(а):
Тебе шашечки или ехать? :)
Конечно ехать. Но писать драйвер на VB, ИМХО, не только изврат, но и геморой. Гораздо проще это сделать на Сях или Асме.

Кто бы спорил.

Twister писал(а):
приходится наворачивать тонны макросов на ровном месте
Ну, большинство из них уже написаны.

Угу, только баги в них приходится вылавливать самому...
Изображение

ReDetection
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 07.08.2006 (Пн) 0:36
Откуда: НоВосибирск

Сообщение ReDetection » 07.08.2006 (Пн) 22:43

Ребята! Мне не принципиально программирование дровов именно в VB.
Допустим, я знаю порт по которому нужно обращатся, мне говорили, что такие мелочи можно прописать в inf-файле. Кто-нить в курсе?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 08.08.2006 (Вт) 5:11

Ну, для доступа к портам можно драйвер и не писать. В юзермоде есть возможность обратиться к секции \Device\PhysicalMemory и изменить GDT, засунув туда свой шлюз. Так же в юзермоде можно дать процессу права на использование привилегированных инструкций In и Out. Линки не помню, гугл тебе поможет...
А я все практикую лечение травами...

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 08.08.2006 (Вт) 5:56

Ладно, я сегодня добрый, и не смотря на катастрофическую нехватку траффика, провел гуглевание...
Тут есть про выход в Ring0 через модификацию GDT.
Тут описан способ прямого Input-а и Output-a.
А я все практикую лечение травами...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.08.2006 (Вт) 6:57

ReDetection писал(а):Ребята! Мне не принципиально программирование дровов именно в VB.
Допустим, я знаю порт по которому нужно обращатся, мне говорили, что такие мелочи можно прописать в inf-файле. Кто-нить в курсе?

Предположу: речь о портах процессора, о которых подумал Twister, или об обычных портах COM/LPT/USB/... :?:
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 08.08.2006 (Вт) 10:09

Я не вник в это:
я знаю порт по которому нужно обращатся, мне говорили, что такие мелочи можно прописать в inf-файле
Скорее всего, действительно, речь идет об обычных портах.
Тогда причем тут драйвера? :?
А я все практикую лечение травами...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 78

    TopList