Windows平台下的设备驱动程序开发 .pdf
维普资讯
196计算机与数字工程第35卷
Windows平台下的设备驱动程序开发
吴力炜叶念渝
(华中科技大学控制科学与工程系武汉430074)
摘要以目前Windows平台下主流的WDM(WindowsDriverMode1)驱动程序模型作为切人点进行分析,然后介绍了
相关驱动程序的开发、调试工具,最后以项目要求为例说明驱动程序开发的选择。
关键词WDM设备驱动程序DDKDriverStudio
中图分类号TP273+.5
1引言Instrumentation)等功能,而且可以在不同的平台上
运行,使得开发更快捷,使用更灵活,运行更安全,
设备驱动程序提供了一个连接到计算机硬件这样就克服了VxD、NT式驱动程序技术存在的诸
的软件接口,在装入后成为操作系统内核的一部多缺点。
分,也就是说它成为操作系统的信任部分。因此,微软公司在推出的Windows2000和Windows
任何细小的错误都可能引起操作系统的崩溃,要避XP中已经彻底摒弃了VxD驱动程序,全面支持
免这样的事情发生,只有反复测试所写的代码,遵WDM,WDM已成为设备驱动程序的主流。
循编写驱动程序的规则。2.2WDM驱动程序模型
在Windows中,驱动程序总是使设备看起来像WDM模型继承了NT式驱动程序分层的结构
一个文件。应用程序可以打开设备的一个句柄,然模型,并重新定义了分层,以支持即插即用系统,如
后可以在设备句柄最后关闭之前向驱动程序发出图1所示。这种结构有利于系统的设计、扩展以及
读写请求。用户应用程序可以以一种规范方式访驱动程序的开发。根据这个分层结构,在WDM驱
问硬件,而不必考虑如何控制硬件。动程序模型中,每个硬件设备至少有两个驱动程
2WDM驱动程序模型序,分别是总线驱动程序(BusDriver)和功能驱动
程序(FunctionDriver),另外也还可能有过滤器驱
2.1WDM驱动程序模型的引入动程序(FilterDriver)。其中,总线驱动程序负责管
在DOS平台下,DOS设备驱动程序的控制对理硬件与计算机的连接,发现、枚举总线上的设备,
象是ROM、BIOS和硬件;微软公司推出虚拟设并为新的设备建立一个描述设备与物理总线关系
备驱动程序(VirtualDeviceDriver),简称VxD技的物理设备对象(PhysicalDeviceObject,PDO),存
术,驱动程序通过创建虚拟设备,以支持Win—储该设备的标识符、所需资源等;功能驱动程序负
dow95和Windows98系统下对硬件的操作。在推责初始化I/O设备操作,处理I/O操作完成时所产
出VxD技术的同时,微软公司为WindowsNT提供生的中断,为用户提供一种适当的设备控制方式,
了NT式驱动程序技术,采用一种特有的分层的内并创建一个描述设备逻辑功能的功能设备对象
核模式驱动程序体系结构,用以实现驱动程序的灵(FunctionalDeviceObject,FDO);过滤器驱动程序
活性和健壮性,驱动程序堆栈由最低层、中间层、最负责拦截对具体设备、类设备、总线的请求,做相应
高层驱动程序组成