QXL 驱动分析报告 1
Window s 基本开发框架和驱动运行原理 1
1 Windows 基本开发框架 WDM 采用分层结构,核心模型来描述设备驱动程序的标准结构,其次微软为常见类型的设备提供一些列的总线驱动程序和类型驱动程序
核心模型描述驱动程序如何安装和启动,类驱动则具有为许多标准类型设备所需的基本功能
标准的WDM 驱动包含一个总线驱动和一个功能驱动 总线驱动:包含在Windows 中,不需另行安装,总线包括PCI、AGP、并口、串口、 IEEE 1394 接口等
它主要负责管理总线设备,例如当在PCI插槽上插入新硬件,开启电脑并进入系统后总线驱动开始工作——报告发现新硬件、并提示用户安装驱动程序
另外,总线驱动还会实时向操作系统报告总线设备状态,检测总线上有什么类型的设备,这就是即插即用
总线设备还负责设备的电源管理(ACPI),比如windows 的休眠功能
当我们通过控制面板选择不同电源管理模式时,电源管理器就会通过系统发出的电源命令向总线驱动发出改变电源状态的请求,总线驱动就会响应这些请求并设置相应设备的电源状态
功能驱动,就是常说的驱动程序,由类驱动程序和Mini 驱动程序组成
类驱动程序用来处理常规系统事务,如电源管理和即插即用,这都是微软定义好的,程序开发者只需要编写 Mini 驱动
功能驱动一般由设备生产厂商提供,用以实现硬件设备的具体功能
Windows 驱动程序开发提供了两种框架:用户模式驱动程序框架(User-Mode Driver Framework)和内核模式驱动程序框架(Kernel-Mode Driver Framework) 用户模式驱动程序和内核模式驱动程序具有不同的结构、入口点和系统接口
设备是需要用户模式驱动程序还是内核模式驱动程序取决于设备的类型,以及操作系统中为设备提供的支持
KMDF 是一个库,可用它