Есть моё устройство, которое определяется как композитное USB с обычной клавиатурой и Generic HID устройством с 2мя десткрипторами как описано в http://msdn.microsoft.com/en-us/windows/hardware/gg463446 для регулировки Громкости и управления питанием.
Всё работает как есть.
А могу я создать свою собственную виртуальную кнопку на клавиатуре и отсылать её в Windows, чтобы там как-то реагировать на неё? И если могу то как?

Как вариант описать ещё один ReportID в Generic HID устройстве и читать его из Приложения. Но позволит мне Windows открыть из User mode устройство, которое она уже сама использует как клавиатуру, пускай и с другими репортами работая?
Или же придётся писать драйвер-фильтр?