

Vendors may optionally provide filter drivers in the HID stack to alter/enhance the functionality of these specific TLC.Vendor drivers are not required for keyboards and mice that are compliant with the supported HID Usages and top level collections.The HID mapper drivers create FDOs for keyboard and mouse, and load the class drivers.The keyboard or mouse hid client mapper drivers are loaded on the appropriate FDO.For example, a keyboard with an integrated mouse might have one collection for the standard keyboard controls and a different collection for the mouse. Complex HID devices (more than 1 TLC) are exposed as multiple PDOs created by HID class driver. The HID class driver creates a PDO for each keyboard or mouse TLC.


KBDCLASS.sys: The keyboard class driver maintains functionality for all keyboards and keypads on the system in a secure manner.Converts HID usages into mouse commands (X/Y, buttons, wheel) to interface with the existing keyboard class driver. MOUHID.sys: HID client mapper driver for mice/touchpads.Converts HID usages into scancodes to interface with the existing keyboard class driver. KBDHID.sys: HID client mapper driver for keyboards.

The figure above includes the following components: The following figure illustrates the system-supplied driver stacks for USB keyboard, mouse, and 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.
