Windows驱动程序的分类

有两类Windows驱动程序:

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

下图把核心态驱动分成了若干部分:

核心态驱动程序分类
如图,有三种核心态驱动:最高层、中间层和最低层。它们在结构上相差很小,但功能相差很大:

  1. 最高层驱动程序 包括文件系统驱动程序,如:
    • NTFS
    • 文件分区表(File allocation table,FAT)
    • CD-ROM 文件系统(CDFS)
  2. 最高层往往依赖于下一层的支持,例如中间层的功能性驱动、最低层硬件总线驱动
中间层驱动程序 中间层驱动程序 如虚拟磁盘、镜像。中间层又可以分为:
  • 功能驱动 控制I/O总线上指定的外设。
  • 过滤型驱动 附在功能驱动前后
  • 软件总线驱动 控制设备集
  • 系统补充驱动 支持系统定义的接口
最低层驱动程序 控制连接外设的I/O总线
  • 硬件总线驱动 系统补充性,常控制动态总线
  • 老式驱动 直接控制最低层设备

你可能感兴趣的:(驱动开发)