Драйвер клавиатуры ps/2
Есть необходимость обмениваться данными с клавиатурой (клавиатура нашей разработки, программируемая).
Какой лучший вариант решения этого вопроса?
Я увидел, что используя стандартный драйвер клавы, можно передавть и принимать данные по 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.
это мой первый опыт в драйверах под вендой, буду рад любому совету заранее всем спасибо.
Цитата: sja
Насколько я понимаю, мне надо в ДДК, в папке src/input/i8042 поправить один из файлов, и включить свой IOCTL для обработки моего запроса, и в нем сделать что-то типа:
outp(keyboardPort, data);
и, в принципе-то и все. или в чем-то я заблуждаюсь?
да, так и надо. считается что для работы с портами лучше юзать функции: READ_PORT_*** и WRITE_PORT_***
а почему не компилтся pnpi8042 в папке сэмлов ДДК ?
я пробовал его отдельно, пробовал компилить все примеры из корня :(
может есть какой-то секрет?
Цитата: 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. Вот о неверном выборе режима и говорится в сообщении.
что я понимаю равносильно debug/release
и в обоих случая резальтат тот же. например, kbdclass - компилится и запускается без проблем, а вот этот никак :(
и еще такой вопрос, чтобы заменить полностью драйвер Клавиатуры под вендой что нужно собрать воедино? я имею в виду тот, ктороый для ps/2 - венда зовет его Стандартная Клавиатура 101-102 клавиши.
для того чтобы сама винда это сделала через кнопку "обновить драйвер" в диспетчере устройств, надо писать INF файл. В общем, нужно помимо твоего SYS файла ещё INF файл
Подскажите плиз как сделать "ислючительную блокировку порта".
Я думаю что если я со своего "пустого" драйвера (который будет просто окном в кернел-моде) сделаю исключительную блокировку порта клавиатуры, то все обработки данных придутся на мой драйвер.
Поправьте, плиз, если я не прав.
А может быть просто при старте софтины отключать стандартный драйвер клавы ? или есть good way иной? :rolleyes:
Цитата: sja
Хм... так и не компилится у меня пример с ДДК, который input/pnpi8042 :(
Достань XP-шный DDK, посмотри в чем там отличия. Также попробуй target os - Win2003.
может на фильтре построить всё дело ?
а ддк как рах 2003, xpsp2.