2.4.1.2 Keyboard and Mouse Configurations and Driver Layers

Figure 2.7 shows two possible hardware configurations for the keyboard and mouse devices:

Figure 2.7 Keyboard and Mouse Hardware Configurations

Figure 2.8 illustrates the corresponding layered drivers for I/O operations on the devices shown in Figure 2.7.

Figure 2.8 Keyboard and Mouse Driver Layers

Note that NT drivers of keyboard and mouse devices, whatever the hardware configuration, can use the system’s higher-level NT keyboard class and mouse class drivers to handle hardware-independent operations. These are called class drivers because each supplies system-required but hardware-independent support for a particular class of device.

A corresponding port driver implements the device-specific support to carry out required I/O operations on each physical device. The system’s (i8042) keyboard and auxiliary device port driver for x86-based Windows NT platforms manages device-specific operations for both mouse and keyboard. In a hardware configuration where each device is separately connected, as shown in Figure 2.7, each system class driver can be layered over separate device-specific port drivers, or a single driver for each device could be implemented as a separate, monolithic (lowest-level) driver.