您的浏览历史

Windows驱动开发技术详解 (china-pub首发)

原创经典,威盛一线工程师倾力打造。.
深入驱动核心,剖析操作系统底层运行机制。
通过实例引导,快速学习编译、安装、调试的方法。
用实例详细讲解PCI、USB、虚拟串口、虚拟摄像头、SDIO等驱动程序的开发。
归纳了多种调试驱动程序的高级技巧,如用WinDbg和VMWare软件对驱动进行源码级设计。
介绍了多种实用的工具软件,如BusHound、IRPTrace、DebugView等。

进入免费试读

市场价 : ¥65.00
会员价 : ¥46.80(72折)
校园特惠价 : ¥46.80     (马上了解)
加入教材预订单 new (50天教材预留服务)

【评 价】 (共 79 条) 参与评论
【作 者】张帆;史彩成 [同作者作品] [作译者介绍]
【出 版 社】 电子工业出版社     【书 号】 9787121068461
【出版日期】 2008 年7月 【开 本】 16开 【页 码】 530     【版 次】1-1

精彩评论
推荐阅读
Windows编程循序渐进

市场价:¥59.00
4-5星价:¥42.48
[购买] [收藏]

【内容简介】

本书由浅入深、循序渐进地介绍了Windows驱动程序的开发方法与调试技巧。本书共分23章,内容涵盖了Windows操作系统的基本原理、NT驱动程序与WDM驱动程序的构造、驱动程序中的同步异步处理方法、驱动程序中即插即用功能、驱动程序的各种调试技巧等。同时,还针对流行的PCI驱动程序、USB驱动程序、虚拟串口驱动程序、摄像头驱动程序、SDIO驱动程序进行了详细的介绍,本书最大的特色在于每一节的例子都是经过精挑细选的,具有很强的针对性。力求让读者通过亲自动手实验,掌握各类Windows驱动程序的开发技巧,学习尽可能多的Windows底层知识。.
本书适用于中、高级系统程序员,同时也可用做高校计算机专业操作系统实验课的补充教材。...

【编辑推荐】

目前,电子系统设计广泛采用通用操作系统,达到降低系统的设计难度和缩短研发周期。实现操作系统与硬件快速信息交换是电子系统设计的关键。
通用操作系统硬件驱动程序的开发,编写者不仅需要精通硬件设备、计算机总线,而且需要Windows操作系统知识以及调试技巧。学习和掌握Windows硬件驱动程序的开发是电子系统设计人员必备的能力。
本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,并且介绍了编程技巧和应用实例,兼顾了在校研究生和工程技术人员的实际需求,对教学、生产和科研有现实的指导意义,是一本值得推荐的专著。
中国工程院院士 毛二可
2008年5月...

【作译者介绍】

作者: 张帆
张帆:毕业于北京理工大学电子工程系,曾就职于威盛电子有限公司,现就职于北京创毅视讯科技有限公司。长期从事PCI、USB、SDIO、串口、摄像头等设备的Windows驱动程序开发。对Windows操作系统内核有深入的研究,并且有丰富的Windows驱动程序开发经验。. << 查看详细

[同作者作品]
Windows驱动开发技术详解 (china-pub首发)

作者: 史彩成
史彩成: 博士后,北京理工大学信息科学技术学院副教授,资深电子系统专家,主要从事图像处理、激光信号处理、数据融合及ASIC设计等领域的研究工作。... << 查看详细

[同作者作品]
Windows驱动开发技术详解 (china-pub首发)

本书提供作译者介绍
张帆:毕业于北京理工大学电子工程系,曾就职于威盛电子有限公司,现就职于北京创毅视讯科技有限公司。长期从事PCI、USB、SDIO、串口、摄像头等设备的Windows驱动程序开发。对Windows操作系统内核有深入的研究,并且有丰富的Windows驱动程序开发经验。.
史彩成: 博士后,北京理工大学信息科学技术学院副教授,资深电子系统专家,主要从事图像处理、激光信号处理、数据融合及ASIC设计等领域的研究工作。...
<< 查看详细

【目录信息】


第1篇 入门篇.
第1章 从两个最简单的驱动谈起 2
本章向读者呈现两个最简单的Windows驱动程序,一个是NT式的驱动程序,另一个是WDM式的驱动程序。这两个驱动程序没有操作具体的硬件设备,只是在系统里创建了虚拟设备。在随后的章节中,它们会作为基本驱动程序框架,被本书其他章节的驱动程序开发所复用。笔者将带领读者编写代码、编译、安装和调试程序。
1.1 DDK的安装 2
1.2 第一个驱动程序HelloDDK的代码分析 3
1.2.1 HelloDDK的头文件 4
1.2.2 HelloDDK的入口函数 5
1.2.3 创建设备例程 6
1.2.4 卸载驱动例程 8
1.2.5 默认派遣例程 9
1.3 HelloDDK的编译和安装 9
1.3.1 用DDK环境编译HelloDDK 9
1.3.2 用VC集成开发环境编译HelloDDK 11
1.3.3 HelloDDK的安装 14
1.4 第二个驱动程序HelloWDM的代码分析 16
1.4.1 HelloWDM的头文件 16
1.4.2 HelloWDM的入口函数 17
1.4.3 HelloWDM的AddDevice例程 18
<< 查看详细目录

【作者序】

写这本书,是为了圆自己一个梦!.
1.你有这样的困惑吗?
你在学习Windows驱动程序开发的时候,有没有这样的感觉:觉得入门太难了;总有一大堆莫名其妙的术语,如“中断请求级别”、“派遣函数”、“线程上下文”、“完成例程”等;总能碰到很多诸如PCI总线、USB总线等内容;还有那些无休止的死机、蓝屏等错误……
这可能让你感到很困惑。但这很正常,因为Windows驱动开发涉及Windows操作系统底层的很多知识,而且很多概念非常抽象,不容易理解。这对于入门人员,甚至有一定基础的开发者都有一定的困难。我也曾经有过和你们一样的经历,当然除了困惑之外,还有解决困惑之后的喜悦。
2.我的经历
当我第一.. << 查看作者序

【前言】

你是否想知道USB移动硬盘插入PC后,Windows是如何识别的?.
你是否想知道Windows是如何得到显卡中的数据的?
你是否想知道什么导致了系统蓝屏死机?
你是否被老板或者导师逼着写一个PCI、USB等驱动程序,正感到无从下手?
你是否对Windows内核怀着强烈的好奇心?
如果你的回答为“是”,那么阅读本书将是最佳的选择!
上图是Windows操作系统的一个示意图。一般的Windows程序员都是编写应用程序或者用户DLL,而不会对Windows底层有更深入的了解。而驱动程序位于操作系统的底层,它和内核紧密联系。另外,驱动程序直接操作硬件设备,但究竟如何操作,大部分程序员都不能清楚地讲出来。.. << 查看前言
评论交流
添加新评论
查看全部评论(共79条)
28人
 37%
13人
 17%
7人
 9%
4人
 5%
15人
 20%
8人
 10%

读者
会员名:iteny  评价等级:   
fdsafsadfsadf
发表于:2008-10-6 最新讨论:2008-10-6
送鲜花(得0支) 扔鸡蛋(得0个)

读者
该会员在china-pub购买过此书
会员名:mopyman  评价等级:   
先指出一个错误:p50,图3-1函数调用堆栈有严重的错误,显然驴头不对马嘴。 再讲讲这本书:这本书对我等驱动初学者可能还有一些学习价值,对驱动老鸟就没多少必要关注了。前面几章写的及其啰嗦、重复,浪费不少纸张,有充数之嫌。后面还没看,不敢妄下论断。
发表于:2008-9-29 最新讨论:2008-9-29
送鲜花(得1支) 扔鸡蛋(得0个)

读者
该会员在china-pub购买过此书
会员名:金田一  评价等级:   
从事Windows平台上的驱动开发已经5个年头了。这本书从大广告以来就一直关注,也在第一时间下单购买了,花了两天的时间从头到尾看了一遍,感觉作者的确很用心地写下了自己的开发心得,但是书中出了一些错误:比方说完成例程所在I/O堆栈的位置,不应该是本层而应该是下一层。另外有些地方交待得比较简单,而那些地方正是需要对驱动深入理解的地方:比方说自己分配IRP的时候,I/O堆栈的大小设置。书中只考虑了一种情况,很容易给初学者以误导。此外,对PNP的资源一节介绍得太简单,没有达到详解的程度。这本书和其他讲Windows驱动的书籍共同的不足在于:忽视了针对Display,Audio,NDIS这些特定类型设备驱动的设计开发方法的介绍,可喜的地方在于介绍了USB,PCI这些类型的开发方法。
从总体上来看,这本书对于初学者树立基础的Windows驱动开发概念还是很有借鉴意义的。而且行文很流畅,这是同类书籍应该向本书作者学习的地方。虽然有些错别字,但是并不影响阅读,希望下一刷的时候能够改进。
发表于:2008-8-6 最新讨论:2008-9-25
送鲜花(得5支) 扔鸡蛋(得2个)  2条评论--> 点击查看讨论

读者
会员名:znsoft  评价等级:   
这本书完美吗?单看目录就不觉得完美,作者的背景比较多的是作硬件相关节驱动开发.这在驱动开发中只占40%的份额.这本书初级吗?不初级,好多是开发的经验,那种剪切派是写不出来的.虽然看着一些章节参考其它书的痕迹比较重,但是却不是那种剪刀酱糊作品.作者的认真劲可见一斑. 作为已经参加工作的老手,要用业余时间写一本书,真的很难.付出和收获简直不成比例,如果不是兴趣使然,成就感使然,我想作者也不会写这样的书了,随便接一个项目的报酬都远程这本书的版税.

作为初学者,本书还是有积极的意义的,看了不会后悔.
发表于:2008-9-8 最新讨论:2008-9-10
送鲜花(得1支) 扔鸡蛋(得0个)  1条评论--> 点击查看讨论

读者
会员名:fanzi  评价等级:   
xszhou兄弟,我试了,没有蓝屏。 CreateDevice函数和DriverEntry函数都用INITCODE声明了。这应该没有问题的。因为CreateDevice只被DriverEntry调用了,你可以把CreateDevice函数去掉,让后把这个函数里内容全部放入DriverEntry里也可以。作者之所以这么做,是因为把创建设备对象的相关操作,封装在一个函数里。欢迎讨论。
发表于:2008-9-3 最新讨论:2008-9-6
送鲜花(得0支) 扔鸡蛋(得1个)  1条评论--> 点击查看讨论
添加新评论
查看全部评论(共79条)