Windows 2000/XP WDM设备驱动程序开发
[绝版]
基本信息
内容简介回到顶部↑
本书主要介绍用DriverStudio。开发工具开发Windows 2000/XP下的WDM设备驱动程序的原理及编程方法。本书详细介绍了WDM基本程序框架和编程,IRP的基本概念及编程,WDM和应用程序之间的通信、即插即用、电源管理、WMI的编程技术,IRP串行处理、过滤器驱动程序,WDM访问硬件设备、处理硬件中断、实现DMA操作的编程技术,以及大量的基本编程技术,还有USB接口和PCI接口设备驱动程序WDM的开发。
本书是一本技术性较强的工具书,附有20个典型的编程实例,适合具有一定计算机硬件及C++语言基础的计算机应用开发人员阅读,也是计算机应用爱好者和高等院校学生的实用参考书。
本书是一本技术性较强的工具书,附有20个典型的编程实例,适合具有一定计算机硬件及C++语言基础的计算机应用开发人员阅读,也是计算机应用爱好者和高等院校学生的实用参考书。
目录回到顶部↑
第1章 windows 2000和wdm驱动程序
1.1 windows 2000组件概述
1.2 windows 2000中的驱动程序种类
1.3 wdm驱动程序特点
1.3.1 内核模式驱动程序的设计目标
1.3.2 wdm驱动程序模型
1.3.3 设备和驱动程序的层次结构
1.3.4 中断级别irql
1.3.5 设备接口
第2章 wdm驱动程序的基本结构
2.1 kdriver类
2.1.1 基本函数
2.1.2 基本例程
2.2 kpnpdevice类
2.2.1 基本函数
2.2.2 基本例程
2.2.3 扩展例程
2.3 kpnplowerdevice类
2.4 charsample实例
第3章 irp操作
1.1 windows 2000组件概述
1.2 windows 2000中的驱动程序种类
1.3 wdm驱动程序特点
1.3.1 内核模式驱动程序的设计目标
1.3.2 wdm驱动程序模型
1.3.3 设备和驱动程序的层次结构
1.3.4 中断级别irql
1.3.5 设备接口
第2章 wdm驱动程序的基本结构
2.1 kdriver类
2.1.1 基本函数
2.1.2 基本例程
2.2 kpnpdevice类
2.2.1 基本函数
2.2.2 基本例程
2.2.3 扩展例程
2.3 kpnplowerdevice类
2.4 charsample实例
第3章 irp操作
前言回到顶部↑
2001年9月,电子工业出版社出版了由我主编的《Windows设备驱动程序(VxD与WDM)开发实务》一书,这本书主要介绍了用VtoolsD开发Windows 9x设备驱动程序VxD的原理及编程方法,虽然也介绍了用DriverWorks开发Windows设备驱动程序WDM的原理及编程方法,但仅是入门性的。
WDM(Windows Driver Model)是微软公司全新的驱动程序模式,支持即插即用、电源管理和WMI技术,它的运行平台是Windows 98/2000/XP操作系统。随着Windows操作系统的不断发展,致力于Windows操作系统下微机接口设备开发的广大科技开发人员,必须学习和掌握WDM的原理及编程方法。
我对WDM进行了深入的研究,在学习的过程中,不仅在原理上有许多一时难以理解的问题,而且在编写实例时,也遇到了许多未曾想到的技术困难。虽然最终解决了所有问题,但却花费了大量的时间。可以自信地说,我的经验是宝贵的,读者将会少走很多弯路和节省大量的时间。
我对参考文献中提到的《Windows WDM设备驱动程序开发指南》、《Programming the Microsoft Windows Driver Model》和《Windows 2000驱动程序开发大全》这三本书做了深入的研究,基本掌握了WDM的编程思想。我之所以说编程思想,是因为这三本书所用的是DDK工具,而我所用的是DriverWbrks工具。我不大喜欢用DDK编程,它太复杂了,有点非高手莫入的味道。有人把DDK比做汇编语言,把DriverWorks比做C语言,这比喻比较恰当。也许有人认为还是DDK正宗,话虽如此,但对于大多数的计算机应用开发人员来说,时间及效率可能更重要。这就是我为什么向读者积极推荐使用DriverStudio工具来开发Windows设备驱动程序的原因。
开发工具
下面谈谈WDM设备驱动程序的开发工具。
开发WDM离不开DDK,微软公司提供了Windows 98 DDK,Windows 2000 DDK和
Windows XP DDK三个版本,分别对应相应的三种操作系统。WDM程序仅在源代码级兼容这三个操作系统,但所生成的可执行代码是不同的,必须用相应的DDK来生成某一操作系统下的WDM驱动程序。
本书没有将Windows 98考虑在内,因为Windows 98操作系统对WDM的支持不是特别好,有一些语句它并不支持。关于这一点,请参考附录1和2。
DriverStudio是一个开发工具包,包含VtoolsD,DriverWorks和SoftICE等开发工具,现在其较高的版本为2.5,2.6和2.7,其中,2.6版本以后可用于Windows XP WDM设备驱动程序的开发。用DriverWorks开发WDM必须有DDK的支持。
WDM程序框架有一定的要求,若用DDK开发WDM,读者可参考附录1和2的范例。
用DriverWorks所生成的WDM程序框架对于开发人员来说非常简单。但实质上,仍满足DDK对WDM的要求,调用的仍是DDK所提供的基本函数。
本书还用到Visual C++6.0和Platform SDK(February 2001 Edition)工具。Platform SDK只在编译比PnPEvent和WMISample实例的应用程序时需要。
本书配套光盘
本书的配套光盘含有书中所有实例的驱动程序和应用程序的全部源代码,以及生成的驱动程序和可执行的应用程序。除USBCounter和PCI9054实例因需要硬件设备的支持而无法运行外,其他18个实例均可运行。
光盘中的实例分为Windows 2000和Windows XP操作系统两部分,其中Windows XP下的实例不包含USBCounter和PCI9054实例。
另外,还有USB相关资料和PCI9054的文档资料。
Chinesedot目录下的HZK16点阵字库是FileThread实例需要使用的。
设备类注册表下的注册表文件用于创建Windows 2000和Windows XP操作系统下的“WDM范例”设备类信息。
有许多读者购买了《Windows设备驱动程序(VxD与WDM)开发实务》一书,这里
WDM(Windows Driver Model)是微软公司全新的驱动程序模式,支持即插即用、电源管理和WMI技术,它的运行平台是Windows 98/2000/XP操作系统。随着Windows操作系统的不断发展,致力于Windows操作系统下微机接口设备开发的广大科技开发人员,必须学习和掌握WDM的原理及编程方法。
我对WDM进行了深入的研究,在学习的过程中,不仅在原理上有许多一时难以理解的问题,而且在编写实例时,也遇到了许多未曾想到的技术困难。虽然最终解决了所有问题,但却花费了大量的时间。可以自信地说,我的经验是宝贵的,读者将会少走很多弯路和节省大量的时间。
我对参考文献中提到的《Windows WDM设备驱动程序开发指南》、《Programming the Microsoft Windows Driver Model》和《Windows 2000驱动程序开发大全》这三本书做了深入的研究,基本掌握了WDM的编程思想。我之所以说编程思想,是因为这三本书所用的是DDK工具,而我所用的是DriverWbrks工具。我不大喜欢用DDK编程,它太复杂了,有点非高手莫入的味道。有人把DDK比做汇编语言,把DriverWorks比做C语言,这比喻比较恰当。也许有人认为还是DDK正宗,话虽如此,但对于大多数的计算机应用开发人员来说,时间及效率可能更重要。这就是我为什么向读者积极推荐使用DriverStudio工具来开发Windows设备驱动程序的原因。
开发工具
下面谈谈WDM设备驱动程序的开发工具。
开发WDM离不开DDK,微软公司提供了Windows 98 DDK,Windows 2000 DDK和
Windows XP DDK三个版本,分别对应相应的三种操作系统。WDM程序仅在源代码级兼容这三个操作系统,但所生成的可执行代码是不同的,必须用相应的DDK来生成某一操作系统下的WDM驱动程序。
本书没有将Windows 98考虑在内,因为Windows 98操作系统对WDM的支持不是特别好,有一些语句它并不支持。关于这一点,请参考附录1和2。
DriverStudio是一个开发工具包,包含VtoolsD,DriverWorks和SoftICE等开发工具,现在其较高的版本为2.5,2.6和2.7,其中,2.6版本以后可用于Windows XP WDM设备驱动程序的开发。用DriverWorks开发WDM必须有DDK的支持。
WDM程序框架有一定的要求,若用DDK开发WDM,读者可参考附录1和2的范例。
用DriverWorks所生成的WDM程序框架对于开发人员来说非常简单。但实质上,仍满足DDK对WDM的要求,调用的仍是DDK所提供的基本函数。
本书还用到Visual C++6.0和Platform SDK(February 2001 Edition)工具。Platform SDK只在编译比PnPEvent和WMISample实例的应用程序时需要。
本书配套光盘
本书的配套光盘含有书中所有实例的驱动程序和应用程序的全部源代码,以及生成的驱动程序和可执行的应用程序。除USBCounter和PCI9054实例因需要硬件设备的支持而无法运行外,其他18个实例均可运行。
光盘中的实例分为Windows 2000和Windows XP操作系统两部分,其中Windows XP下的实例不包含USBCounter和PCI9054实例。
另外,还有USB相关资料和PCI9054的文档资料。
Chinesedot目录下的HZK16点阵字库是FileThread实例需要使用的。
设备类注册表下的注册表文件用于创建Windows 2000和Windows XP操作系统下的“WDM范例”设备类信息。
有许多读者购买了《Windows设备驱动程序(VxD与WDM)开发实务》一书,这里








点击看大图





加载中...

