доброго!
0. попытаться вкурить раздел msdn
Human Input Devices Design Guide и в частности
Driver Stacks for USB Keyboard, Mouse, and Joystick Devices Driver Stacks for Non-HIDClass Keyboard and Mouse Devices1. как достать имя.
имя вам наверное доставать не надо). драйвер
\src\input\Moufiltr ставится через inf как UpperFilters (с использованием стандартного msmouse.inf)
путем добавления секции
[moufiltr.HW.AddReg]
HKR,,"UpperFilters",0x00010000,"moufiltr"
в реестр.
если доставать самому - то видимо это делается через ClassGUID={4D36E96F-E325-11CE-BFC1-08002BE10318} видимо он же GUID_CLASS_MOUSE .... можно что то подобное провернуть.
посмотрите
раздел msdn2. как отсылать.
надо подумать.... сгоряча чуть не напредлагал всякого. но опомнился)
быть может, стоит покопать в сторону МouseClass.... либо через HID...
я с ходу не вижу как через фильтр можно новые данные слать, если реальных нет. там вроде только через калбэк все фильтруется. но вы посмотрите на всякий случай его IOCTL. и что там в IOCTL_INTERNAL_MOUSE_CONNECT передается.
... ааа. вот. там же процедура сервиса задается PSERVICE_CALLBACK_ROUTINE devExt->UpperConnectData.ClassService().
если ее можно вызывать самостоятельно, не дожидаясь прихода реальных сообщений... то почему бы и нет?
3. что позволит сделать фильтр.
он позволит помимо отправки новых событий, еще и фильтровать реальные.
отдельно стоящий драйвер фильтровать соответственно не сможет. но отправлять - можно.
но я все таки рекомендовал бы начать с имеющегося примера фильтра:
1. он уже написан, его только скомпилировать (заодно научитесь).
2. вашу задачу он ТОЖЕ может решить (помимо фильтрации).
3. в общем то вы ничего не потеряете, даже если пример вам не понравится) но зато сможете посмотреть отладчиком(DbgPrint-ом) что и когда там происходит)
далее.... если решите смотреть фильтры - рекомендую еще смотреть исходники CPNMouse(если не найдете - выложу). он решает обратную задачу, но до кучи, мельком посмотреть стоит, там наглядно сама процедура перехвата расписана - что где находится видно.
второй вариант. начать не с фильтра а с драйвера... в принципе возможно наверное. если тот драйвер более чем один открытый хендл позволяет сделать.
тогда получить ссылку на девайс (через GUID)... а вот как сообщения вставить пока не соображу. тут msdn еще покопать надо, а у меня сейчас времени - совсем опаньки)
может быть через HID...
в любом случае - посмотрите сначала msdn)
будут еще вопросы - постараюсь ответить...
PS PMOUSE_INPUT_DATA - что значит в реальные? реальными вы называете мышиный курсор на экране? тогда, тот, кто его выводит на экран) честно говоря кто выводит - не интересовался.... посмотрите по стеку кто там вверху...