内核模式驱动
Windows系统中的基本驱动程序
内核模式驱动是Windows系统中的基本驱动程序,运行于Ring0特权级别,可直接执行CPU特权指令并访问系统硬件资源。其作为操作系统核心组件,分为最高级别、中间级别(含函数驱动与筛选器驱动)和最低级别驱动程序,架构包含对象管理器内存管理器、I/O管理器等系统组件,支持即插即用PnP)和电源管理功能。驱动程序通过Windows Driver Kit(WDK)开发,遵循WDM编程规范,使用IRP处理流程、DMA传输机制及中断服务例程(ISR)技术。
定义
Intel x86体系结构的处理器定义了4个级别的权限(称为Ring),Windows系统使用了Ring0(供特权模式使用)和Ring3(供用户模式使用),Windows系统只使用了2个级别的权限级别的原因是为了和其他一些硬件系统兼容,这些硬件系统只有2个级别的权限,如Compaq Alpha和Silicon Graphics MIPS等。
每个用户模式的进程有其私有的地址空间,这些进程在最低的权限级别下运行(称为Ring3或者用户模式),它们不允许执行CPU的特权指令,对系统所属的数据、地址空间以及硬件等的访问也是被严格限制的,例如,如果某个用户程序访问4G地址空间中的高位2G,那么系统就会立即将其终止执行。要注意的是,进程调用系统功能的时候,可以切换到内核模式执行,但是调用结束后,就返回到用户模式了。