есть замечательная статья с примером для PS/2 мыши - http://www.wasm.ru/article.php?article=drvw2k16 1. нет ли исходников (asm/C) для usb мышки ? 2. Если нет, то что необходимо доработать чтоб появилась возможность у USB мыши реализовать следующий функционал: при долгом удержании кнопки компьютер шла комнада что кнопку отпустили потом нажали снова ?
В текущей реализации стек для PS/2 мыши используется и для USB мышей. Но добавлен отдельный слой, состоящий из HID Class Driver'а и HID Minidriver'ов. Для мыши это hidclass.sys и hidusb.sys соответственно. Они переводят USB-specific IRP в IRP понятные старому стеку и кидают их туда. Драйвер, описанный в моей статье, теоретически мог бы работать, если бы 1. был PnP и 2. его можно было бы воткнуть между mouclass.sys и i8042prt.sys, т.к. в статье он Upper-level и садится над mouclass, а HID Class Driver и HID Minidriver драйверы шлют IRP именно в mouclass, т.е. все кто сверху их не увидят. Практически я этого не делал, но начал бы с простого. В DDK\src\input\moufiltr есть готовый пример драйвера мыши, который использует специальный интерфейс драйвера i8042prt. Его надо тупо скомпилить, установить и посмотреть идут ли через него IRP от USB мыши. Ссылки по теме: http://msdn2.microsoft.com/en-us/library/ms790189.aspx http://msdn2.microsoft.com/en-us/library/ms790182.aspx http://msdn2.microsoft.com/en-us/library/ms790187.aspx
Возмжно что и upper-level class filter покатит. Всё зависит от того, как hid драйверы к мышиному стеку подключаются. Возьму любой фильтр (например, DDK\src\general\toaster\filter), убери всю специфику, так чтоб он просто редиректил IRP и поставь его как upper-level class и посмотри.