Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: 6323
Последний выпуск: 19.06.2015

Драйвер клавиатуры ps/2

20K
15 декабря 2008 года
sja
22 / / 08.01.2007
Утра всем!

Есть необходимость обмениваться данными с клавиатурой (клавиатура нашей разработки, программируемая).
Какой лучший вариант решения этого вопроса?
Я увидел, что используя стандартный драйвер клавы, можно передавть и принимать данные по 3 бита, выставляя/читая состояние светодоиодов, но нашему боссу хочется "как у всех"
Чтобы был свой драйвер.

Насколько я понимаю, мне надо в ДДК, в папке src/input/i8042 поправить один из файлов, и включить свой IOCTL для обработки моего запроса, и в нем сделать что-то типа:

outp(keyboardPort, data);


и, в принципе-то и все. или в чем-то я заблуждаюсь?
И еще такая трабла: у меня венда xp, скачал winddk 3790.1830 и запускаю компиляцию i8042 в ддк'шной папке, а он не создает .sys, а выводит такое в файл buildchk_wxp_x86.wrn:

1>BUILDMSG: Warning : The sample "c:\winddk\3790.1830\src\input\pnpi8042\daytona" is not valid for the current OS target.
100>BUILDMSG: Warning : The sample "c:\winddk\3790.1830\src\input\pnpi8042\daytona" is not valid for the current OS target.



это мой первый опыт в драйверах под вендой, буду рад любому совету заранее всем спасибо.
261
15 декабря 2008 года
ahilles
1.5K / / 03.11.2005
Цитата: sja

Насколько я понимаю, мне надо в ДДК, в папке src/input/i8042 поправить один из файлов, и включить свой IOCTL для обработки моего запроса, и в нем сделать что-то типа:
outp(keyboardPort, data);
и, в принципе-то и все. или в чем-то я заблуждаюсь?


да, так и надо. считается что для работы с портами лучше юзать функции: READ_PORT_*** и WRITE_PORT_***

20K
15 декабря 2008 года
sja
22 / / 08.01.2007
отлично! только вот теперь вопрос такой:
а почему не компилтся pnpi8042 в папке сэмлов ДДК ?
я пробовал его отдельно, пробовал компилить все примеры из корня :(
может есть какой-то секрет?
14
15 декабря 2008 года
Phodopus
3.3K / / 19.06.2008
Цитата: sja
Warning : The sample "c:\winddk\3790.1830\src\input\pnpi8042\daytona" is not valid for the current OS target.



Для 2003 DDK есть 6 режимов 2000/XP/2003 checked/free. Вот о неверном выборе режима и говорится в сообщении.

20K
15 декабря 2008 года
sja
22 / / 08.01.2007
хм странно. у меня венда xp, и я выбираю build xp checked/free
что я понимаю равносильно debug/release
и в обоих случая резальтат тот же. например, kbdclass - компилится и запускается без проблем, а вот этот никак :(
и еще такой вопрос, чтобы заменить полностью драйвер Клавиатуры под вендой что нужно собрать воедино? я имею в виду тот, ктороый для ps/2 - венда зовет его Стандартная Клавиатура 101-102 клавиши.
261
16 декабря 2008 года
ahilles
1.5K / / 03.11.2005
для того чтобы сама винда это сделала через кнопку "обновить драйвер" в диспетчере устройств, надо писать INF файл. В общем, нужно помимо твоего SYS файла ещё INF файл
20K
18 декабря 2008 года
sja
22 / / 08.01.2007
Хм... так и не компилится у меня пример с ДДК, который input/pnpi8042 :(

Подскажите плиз как сделать "ислючительную блокировку порта".
Я думаю что если я со своего "пустого" драйвера (который будет просто окном в кернел-моде) сделаю исключительную блокировку порта клавиатуры, то все обработки данных придутся на мой драйвер.
Поправьте, плиз, если я не прав.

А может быть просто при старте софтины отключать стандартный драйвер клавы ? или есть good way иной? :rolleyes:
14
18 декабря 2008 года
Phodopus
3.3K / / 19.06.2008
Цитата: sja
Хм... так и не компилится у меня пример с ДДК, который input/pnpi8042 :(


Достань XP-шный DDK, посмотри в чем там отличия. Также попробуй target os - Win2003.

20K
22 декабря 2008 года
sja
22 / / 08.01.2007
всяко пробовал. отклатился до xp sp2 - результат тот же :(
может на фильтре построить всё дело ?
а ддк как рах 2003, xpsp2.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог