文章摘录自《Windows内核原理与实现》一书。
设备驱动程序是操纵设备的内核模块,I/O 管理器、即插即用管理器和电源管理器都需要与设备的驱动程序打交道。
在Windows I/O 系统中,设备驱动程序不仅为操作系统提供了支持各种 I/O 设备的能力, 也是 Windows 内核本身扩展的基础。Windows 可以动态地加载或卸载设备驱动程序,通过这些驱动程序来调整或扩展内核的功能。 Windows I/O 系统规定了设备驱动程序应遵循的接口, 这组接口是通用的,可适用于所有的内核模式驱动程序。设备驱动程序依据用途不同,可以分为以下三类:
1.即插即用驱动程序,也称为 WDM驱动程序。 它们通常为了驱动硬件设备而由硬件厂商提供,与 Windows的 I/O 管理器、即插即用管理器和电源管理器一起工作。Windows 自身携带了大量即插即用驱动程序,用于支持各种常见的存储设备、视频适配器、网络适配器以及输入设备等。
2.内核扩展驱动程序,也称为非即插即用驱动程序。它们扩展内核功能,或者提供了访问内核模式代码和数据的一种途径。它们并没有集成到即插即用管理器和电源管理器的管理框架中。早期的 Windows NT 驱动程序(在引入即插即用机制以前)都属于这一类类型,现在仍然有大量的内核扩展驱动程序。
3.文件系统驱动程序。它们接收针对文件的 I/O 请求,再进一步将这些请求转变成正真对于储存设备或网络设备的 I/O 请求,从而满足客户