有两类Windows驱动程序:
- 用户态驱动程序 运行在用户态,它们经常提供Win32程序、核心态驱动(或其它系统组件)之间的接口。比如打印机驱动就是由用户态和核心态驱动组成的。
- 核心态驱动程序 运行在核心态,由核心态系统组件组成。核心态驱动程序大多是分层的。通常,高层驱动从应用程序接收、筛选数据,并将它们送给支持设备功能的更低层驱动。
- 有些核心态驱动程序本身也是WDM驱动。所有的WDM驱动程序都支持即插即用、电源管理。WDM驱动在Win98/Me和Win2000之间是源代码兼容的(不是二进制兼容)
- 和操作系统一样,核心态驱动程序也被设计成分散的、模块化的组件。
下图把核心态驱动分成了若干部分: