С помощью драйвера поменять функциональность устройства пользовательского интерфейса (HID)

Требуется с помощью драйвера поменять функциональность устройства пользовательского интерфейса (HID), то есть грубо говоря, сделать так, чтобы в Windows можно было использовать геймпад вместо мышки.

Можно было бы для этого написать минидрайвер на замену HIDUSB, однако не хочется дополнительно заморачиваться именно с взаимодействием с USB.

Логичнее всего в этом свете выглядит вариант написания фильтрующего драйвера, который должен перехватывать отчеты, посылаемые геймпадом и изменять их формат на отчеты для мыши. Отсюда собственно говоря ряд вопросов:

1) На каком уровне должен быть этот фильтрующий драйвер?

2) Возможно ли встроить его между драйвером класса HIDCLASS и его минидрайвером HIDUSB и как это сделать?

3) Есть ли в открытом виде код минидрайвера HIDUSB или аналогичного ему для обеспечения взаимодействия драйвера класса HIDCLASS с драйвером шины USB, чтобы можно было встроить требуемую функциональность именно в него?

Буду особо признателен за наставление на путь истинный и любые примеры решения подобных задач, да и вообще написания фильтрующих драйверов и драйверов устройств класса HID

P.S.: Заранее извиняюсь за возможную неосведомленность по теме)