示例设备和驱动程序配置
本部分以键盘和鼠标设备为例,说明了硬件和驱动程序配置之间的关系。 其他设备的配置有所不同。 有关任何设备配置的完整信息,请参阅 Windows 驱动程序工具包 (WDK) 中的特定于设备的文档。
下图显示了键盘和鼠标设备的两种可能硬件配置:
每个直接连接到系统总线上的某个位置
通过键盘和辅助设备控制器连接
下图演示了上图所示的设备上用于 I/O 操作的相应分层驱动程序。
请注意,无论硬件配置如何,键盘和鼠标设备的驱动程序都可以使用系统的键盘类和鼠标类驱动程序来处理与硬件无关的操作。 这些驱动程序称为 类驱动程序 ,因为每个驱动程序都为特定类别的设备提供系统必需但与硬件无关的支持。
相应的 端口驱动程序 实现特定于设备的支持,以在每个物理设备上执行所需的 I/O 操作。 系统的 (i8042) 键盘和辅助设备端口驱动程序(适用于基于 x86 的平台)管理鼠标和键盘的设备特定操作。 在单独连接每个设备的硬件配置中,如说明键盘和鼠标硬件配置的图所示,每个系统类驱动程序可以分层到单独的特定于设备的端口驱动程序上,或者每个设备的单个驱动程序可以作为单独的整体 (最低级别的) 驱动程序来实现。
图中演示了键盘和鼠标驱动程序层,可以将新的中间驱动程序(如 PnP 筛选器驱动程序)添加到配置中。 例如,在键盘类驱动程序上方添加的筛选器驱动程序可能会在通过 I/O 服务传递到请求它的子系统之前,以特定于平台的方式筛选键盘输入。 此类筛选器驱动程序必须识别与键盘类驱动程序相同的 IRP 和 IOCTL。