Помогите разобраться с драйвером клавы и PICом

Тема в разделе "LANGS.C", создана пользователем botcser, 15 ноя 2011.

  1. botcser

    botcser New Member

    Публикаций:
    0
    Регистрация:
    25 янв 2011
    Сообщения:
    4
    Здравствуйте. Прошу немедвежьего совета помощи в проблеме:
    Имеется стандартный драйвер клавиатуры DDK, контроллер на pic(USB), который прошит и распознается как стандартная клавиатура.
    Задача - передавать байты контроллеру в реальном времени.
    Я узнал, что обращаться к устройству можно только через этот драйвер. Только, как я подразумеваю, в стандартном драйвере не предусмотренные функции отправки всякой информации клаве. Что pic при подключении по USB отправляет дескрипторы, определяющие его как хид клаву, затем он передает байты в пакетах на конечную точку компа, обработчик конечной точки пересылает эту информацию драйверу.
    Мои вопросы:
    1. есть ли какие дополнения или исправления в моем мышлении.
    2. Драйвер обрабатывая инфу с КТ передает команды другой программе или сам выполняет "нажатия клавиши"? (читал что - отправляет команды другой проге, но хочется уточнить)
    3. Возможно добавить свой код в стд драйвер, позволяющий передавать байты на pic. Как или что почитать?
    4. Или же проще свой драйвер написать с 0?
    Спасибо.

    PS - C# не поможет в апгрейде стд драйверов, потому что там чистый C?

    Ух, а я об этом не подумал, спасибо valterg.
     
  2. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Драйвер клавиатуры должен уметь передавать данные в нее - например для включения светодиодов режимов Numlock, Capslock и ScrollLock.
    Про остальное не скажу - не спец по драйверам
     
  3. ASMatic

    ASMatic New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2010
    Сообщения:
    233
    botcser
    а поиск заюзать??
    http://wasm.ru/forum/viewtopic.php?id=30326, например..
     
  4. botcser

    botcser New Member

    Публикаций:
    0
    Регистрация:
    25 янв 2011
    Сообщения:
    4
    поиск, заюзаю.
    Все что нового узнал из статьи - прочитать про WRITE_PORT_UCHAR и IOCTRL. Там же контроллер другой и интерфес другой, значит порты, прерывания и фу-ии другиие, а мне то какраз и фу-ии нуны. Причем принимать я уже могу, мне бы только научится передавать из компа в usb(через драйвер клавы). Благодарю за помощь.
     
  5. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    botcser
    Тут в другой теме кто-то утверждал, что драйвер USB-клавиатуры тупо пихает байты в порты PS/2 Значит писать байты надо в порты PS/2 тоже...
     
  6. botcser

    botcser New Member

    Публикаций:
    0
    Регистрация:
    25 янв 2011
    Сообщения:
    4
    но у меня клава на USB сидит.
    http://junglewin.narod.ru/usb.html - прочитал, кто ее решил, можете помочь в ней - 4й пункт, ни как не могу наладить, ругается когда пытаюсь определить ntstatus структуру. Мне то нужно пользовательское ПО для разговора с драйвером, а если я буду компилить DDK компилятором он выдаст sis.
    Говорят что просто можно как через файл обращаться к драйверу. Поделитесь Хорошей статьей про это.
    А еще нашел статью и проект работающий с USB HID на C#, но автор пишет что с мышами и клавами не работает, хотя и коннектится, я проверял, не вызывается EventBuffer, при получении в буфер приема данных, который должен вызываться.
     
  7. botcser

    botcser New Member

    Публикаций:
    0
    Регистрация:
    25 янв 2011
    Сообщения:
    4
    valterg - пихать байты в порт ps/2, можно конечно попробовать. а если у компа всего один ps/2 под клаву, а клавы две(по USB)... ссылку на статью бы на всякий, а то вдруг не найду.

    Кароче, я читал читал и пришел к выводу, что использовать готовый драйвер клавы kbusbhid.sys не получится, в этом варианте придется переписывать этот драйвер с помошью DDK.