The system-supplied keyboard and mouse device drivers are implemented as class drivers layered over one or more port drivers. However, keyboard and mouse device drivers could each be designed as monolithic drivers that support the same functionality as the system’s class/port drivers.
The following sections discuss keyboard and mouse drivers separately but describe whether each request is handled within the respective system class driver or passed on to the underlying port device driver.