Transport Drivers: Windows team does not recommend creating additional HID Transport minidriver as they are complex drivers to write/maintain. Only load on the specific vendor’s hardware.Filter drivers are not recommended as a filter between HIDCLASS and HID Transport minidriverįunction Drivers: Alternatively vendors can create a function driver (instead of a filter driver) but only for vendor specific HID PDOs (with a user mode service if necessary).įunction drivers are allowed in the following scenarios:.As an upper filter to kbdclass/mouclass.Filter drivers are allowed in the following scenarios:.The criteria are described below:įilters Drivers: Driver developers should ensure that their value-add driver is a filter driver and does not replace (or be used in place of) existing Windows HID drivers in the input stack. Microsoft provides the following guidance for IHVs writing drivers:ĭriver developers are allowed to add additional drivers in the form of a filter driver or a new HID Client driver. The system provides support for horizontal/vertical wheels with smooth scrolling capabilities.The system prevents disable/enabling a keyboard.The system opens all keyboard and mouse collections for its exclusive use.Avoid using filter drivers unless critical.
The figure above includes the following components:
The following figure illustrates the system-supplied driver stacks for USB keyboard and mouse/touchpad devices. Windows provides system-supplied HID mapper drivers for HID keyboard, and HID mice devices. The mapper driver maps the I/O requests and data protocols of one to the other. A HID mapper driver is a kernel-mode WDM filter driver that provides a bidirectional interface for I/O requests between a non-HID Class driver and the HID class driver. Keyboard and mouse HID client drivers are implemented in the form of HID Mapper Drivers. Keyboards and mice represent the first set of HID clients that were standardized in the HID Usage tables and implemented in Windows operating systems. This topic discusses keyboard and mouse HID client drivers. Troubleshoot a wireless mouse that does not function correctly.Mouse, touchpad, and keyboard problems in Windows.If you are looking to fix a mouse or keyboard, see: This topic is for developers who are creating drivers for keyboard and mouse HID clients.