【内容简介】
本书由浅入深、循序渐进地介绍了Windows驱动程序的开发方法与调试技巧。本书共分23章,内容涵盖了Windows操作系统的基本原理、NT驱动程序与WDM驱动程序的构造、驱动程序中的同步异步处理方法、驱动程序中即插即用功能、驱动程序的各种调试技巧等。同时,还针对流行的PCI驱动程序、USB驱动程序、虚拟串口驱动程序、摄像头驱动程序、SDIO驱动程序进行了详细的介绍,本书最大的特色在于每一节的例子都是经过精挑细选的,具有很强的针对性。力求让读者通过亲自动手实验,掌握各类Windows驱动程序的开发技巧,学习尽可能多的Windows底层知识。
本书适用于中、高级系统程序员,同时也可用做高校计算机专业操作系统实验课的补充教材。
【编辑推荐】
目前,电子系统设计广泛采用通用操作系统,达到降低系统的设计难度和缩短研发周期。实现操作系统与硬件快速信息交换是电子系统设计的关键。
通用操作系统硬件驱动程序的开发,编写者不仅需要精通硬件设备、计算机总线,而且需要Windows操作系统知识以及调试技巧。学习和掌握Windows硬件驱动程序的开发是电子系统设计人员必备的能力。
本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,并且介绍了编程技巧和应用实例,兼顾了在校研究生和工程技术人员的实际需求,对教学、生产和科研有现实的指导意义,是一本值得推荐的专著。
中国工程院院士 毛二可
2008年5月...
【作译者介绍】
本书提供作译者介绍
张帆:毕业于北京理工大学电子工程系,曾就职于威盛电子有限公司,现就职于北京创毅视讯科技有限公司。长期从事PCI、USB、SDIO、串口、摄像头等设备的WindowsS区动程序开发。对Windows操作系统内核有深入的研究,并且有丰富的Windows驱动程序开发经验。
.. << 查看详细
【目录信息】
第1篇 入门篇
第1章 从两个最简单的驱动谈起
本章向读者呈现两个最简单的Windows驱动程序,一个是NT式的驱动程序,另一个是WDM式的驱动程序。这两个驱动程序没有操作具体的硬件设备,只是在系统里创建了虚拟设备。在随后的章节中,它们会作为基本驱动程序框架,被本书其他章节的驱动程序开发所复用。笔者将带领读者编写代码、编译、安装和调试程序。
1.1 DDK的安装
1.2 第一个驱动程序HelloDDK的代码分析
1.2.1 HelloDDK的头文件
1.2.2 HelloDDK的入口函数
1.2.3 创建设备例程
1.2.4 卸载驱动例程
1.2.5 默认派遣例程
1.3 HelloDDK的编译和安装
1.3.1 用DDK环境编译HelloDDK
1.3.2 用VC集成开发环境编译HelloDDK
1.3.3 HelloDDK的安装
1.4 第二个驱动程序HelloWDM的代码分析
1.4.1 HelloWDM的头文件
1.4.2 HelloWDM的入口函数
1.4.3 HelloWDM的AddDevice例程
1.4.4 HelloWDM处理PNP的回调函数
<< 查看详细目录
【作者序】
写这本书,是为了圆自己一个梦!.
1.你有这样的困惑吗?
你在学习Windows驱动程序开发的时候,有没有这样的感觉:觉得入门太难了;总有一大堆莫名其妙的术语,如“中断请求级别”、“派遣函数”、“线程上下文”、“完成例程”等;总能碰到很多诸如PCI总线、USB总线等内容;还有那些无休止的死机、蓝屏等错误……
这可能让你感到很困惑。但这很正常,因为Windows驱动开发涉及Windows操作系统底层的很多知识,而且很多概念非常抽象,不容易理解。这对于入门人员,甚至有一定基础的开发者都有一定的困难。我也曾经有过和你们一样的经历,当然除了困惑之外,还有解决困惑之后的喜悦。
2.我的经历
当我第..
<< 查看作者序
【前言】
你是否想知道USB移动硬盘插入PC后,Windows是如何识别的?.
你是否想知道Windows是如何得到显卡中的数据的?
你是否想知道什么导致了系统蓝屏死机?
你是否被老板或者导师逼着写一个PCI、USB等驱动程序,正感到无从下手?
你是否对Windows内核怀着强烈的好奇心?
如果你的回答为“是”,那么阅读本书将是最佳的选择!
上图是Windows操作系统的一个示意图。一般的Windows程序员都是编写应用程序或者用户DLL,而不会对Windows底层有更深入的了解。而驱动程序位于操作系统的底层,它和内核紧密联系。另外,驱动程序直接操作硬件设备,但究竟如何操作,大部分程序员都不能清楚地讲出..
<< 查看前言
【书摘】
第1篇 入门篇
第1章 从两个最简单的驱动谈起
Windows驱动程序的编写,往往需要开发人员对Windows内核有深入了解和大量的内核调试技巧,稍有不慎,就会造成系统的崩溃。因此,初次涉及Windows驱动程序开发的程序员,即使拥有大量Win32程序的开发技巧,往往也很难入门。
本章向读者呈现两个最简单的Windows驱动程序,一个是NT式的驱动程序,另一个是WDM式的驱动程序。这两个驱动程序没有操作具体的硬件设备,只是在系统里创建了虚拟设备。在随后的章节中,它们会作为基本驱动程序框架,被本书其他章节的驱动程序开发所复用。笔者将带领读者编写代码、编译、安装和调试程序。相信对第一次编写驱动程序的读者来说,这将是非常激动和有趣的。代码的具体讲解将分散在后面的章节论述。现在请和笔者一起,开始Windows驱动编程之旅吧!
1.1 DDK的安装
在编写第一个驱动之前,需要先安装微软公司提供的Windows驱动程序开发包DDK(Driver Development Kit)。笔者计算机里安装的是Windows XP 2462版本的DDK,建议读者安装同样版本或者更高版本的DDK,如图1-1所示。
在安装的时候请选择完全安装,即安装DDK的所有部件,如图1-2所示。因为除了DDK的基本编译环境外,DDK还提供了大量的源代码和实用工具,这对于Windows驱动程序的初学者进行学习和编写驱动程序将是非常有用的。
安装完毕后,会在开始菜单中出现相应的项目。其中,主要用到的是BuildEnvironment,如图1-3所示。该版本的DDK会同时安装上Windows 2000和Windows XP的编译环境。
……
免费试读 第1章..
免费试读 第17章..
>>
进入在线免费试读>>
51CTO在线试读