Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Драйвер джойстика  (Прочитано 12119 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Cluster
Гость
« : 19-09-2009 14:31 » 

Уже много лет занимаюсь программированием под различные платформы, но написание драйверов понадобилось только сейчас. Читал различную литературу на эту тему, копался в MSDN, но в итоге в голове куча несвязанной информации, очень много непонятно. Подскажите куда копать.
Что имеется: bluetooth джойстик, который Windows видит как игровое HID устройство... И не более. Управлять им нельзя. У меня есть подробная документация по его HID репортам, и я без особых проблем могу из своей программы читать данные о нажатых кнопках, осях и пр.
Что я хочу: написать под это устройство драйвер, чтобы оно виделоcь виндой именно как игровой контроллер, чтобы игры его понимали. На данный момент драйверов под Windows для этого устройства не существует.

Я так понимаю, что kernel-mode мне и не нужен, достаточно UMDF драйвера, так?
Есть ли хоть какой-то простейший пример драйвера хотя бы виртуального джойстика? В примерах WDK я ничего такого не нашёл...
Каким образом Windows ассоциирует устройство с установленным драйвером? По информации в .inf файле? По каким именно критериям? Будет ли Windows ассоциировать драйвер с HID устройством, которое подключено по bluetooth?

Подскажите хоть в какую сторону копать...
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 20-09-2009 14:46 » 

в DDK 6001.18001 эти примеры почему то убрали, выкладываю из версии  DDK3790.1830\src\wdm\hid\hidgame\
вроде бы это - пример драйвера для аналогового джойстика. но с интерфейсом HID?(см прикрепленный файл)
не уверен что это сильно поможет, и кстати это WDM а не UMDF... но почему бы и нет?
http://msdn.microsoft.com/en-us/library/ms789873.aspx
http://msdn.microsoft.com/en-us/library/ms790189.aspx
и второй пример который возможно стоит посмотреть или поискать VHIDMINI http://msdn.microsoft.com/en-us/library/dd163259.aspx

я так понимаю он должен формировать стандартный интерфейс джойстика для винды... осталось его приладить в качестве надстройки над HID который есть?

направление для копания - ключевые слова HIDGAME и может быть IDirectInputJoyConfig8(не уверен) но по DirectInput DirectX надо отдельно копать...
и кучка примеров каких то.. не разбирался. http://en.pudn.com/downloads62/sourcecode/windows/directx/detail217552_en.html
ну и http://www.microsoft.com/whdc/archive/hidgame.mspx- но подозреваю, что это несколько устаревшее..

* hidgame.zip (47.38 Кб - загружено 832 раз.)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Cluster
Гость
« Ответ #2 : 20-09-2009 15:09 » 

Спасибо, это именно то, что нужно Улыбаюсь Да, надо формировать стандартный интерфейс джойстика, который будет надстройкой над HID. Сегодня купил несколько книжек по программированию драйверов, буду изучать...

А пример hidgame убрали по понятной причине - начиная с висты в панели управления даже нет аплета для добавления джойстиков. Т.е. контроллеры на игровой порт более не поддерживаются...
« Последнее редактирование: 20-09-2009 15:31 от Sel » Записан
Cluster
Гость
« Ответ #3 : 27-09-2009 07:39 » 

А где теперь можно взять исходники примера VHIDMINI? Из WDK его сейчас тоже убрали Жаль
Записан
roma_
Гость
« Ответ #4 : 30-09-2009 14:41 » 

Пример VHIDMINI из последнего WDK 7600 действительно убрали, мне пришлось качать WDK Server2003, там есть этот пример.
Вот выложил его отдельно  http://www.megaupload.com/?d=R7Y7BNSK но для компиляции все равно надо WDK

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

В связи с этом возникли вопросы:
1) какая из функций примера получает данные от виртуального устройства ?
2) как этот пример переделать чтобы данные отправлялись в класс мыши ?


Записан
Cluster
Гость
« Ответ #5 : 30-09-2009 14:56 » 

Спасибо огромное Улыбаюсь Похоже, что у нас похожие задачи. Тебе тоже надо сделать виртуальное HID устройство...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines