初学驱动开发书籍介绍

Windows NT Device Driver Development

初学驱动开发书籍介绍 

 
一、总述........................................................................................................................2 
1.1分类................................................................................................................2 
1.2 目的...............................................................................................................2 
1.3 开发环境的建造...........................................................................................2 
1.4 编写驱动程序的原则...................................................................................3 
1.5 计算机已知的挑选原则...............................................................................3 
1.6 购买方式.......................................................................................................3 
二、推荐的书目............................................................................................................4 
2.1 《C 程序设计》...........................................................................................4 
2.2 《Windows 2000内部揭密》.....................................................................5 
2.3 《Microsoft Windows 驱动程序模型设计》.............................................5 
三、一般驱动开发书籍................................................................................................7 
3.1 Windows 2000设备驱动程序设计指南(原书第2版)..........................7 
3.2 WINDOWS NT与WINDOWS 2000设备驱动及开发..............................8 
3.3 WINDOWS WDM设备驱动程序开发指南................................................8 
3.4  Windows 设备驱动程序(VxD与WDM)开发实务...............................9 
四、相关推荐书目......................................................................................................10 
4.1  Windows  核心编程...............................................................................10 
4.2   LINUX设备驱动程序(第二版)............................................................11 
五、烂书曝光..............................................................................................................12 
5.1 Microsoft Windows 2000驱动程序设计指南............................................12 
5.2 VC++.NET开发驱动程序详解——Windows 2000/XP...........................13 
六、后记......................................................................................................................14 

一、总述 
1.1 分类 
驱动程序按操作系统平台可分为两大类:Windows  系列与 Linux/Unix 系统。而在
Windows平台中又包含两大类:VxD(Virtual X Device)与 WDM(Windows Driver Model),前
者运行于Windows 3.1/95/98/ME,后者运行于 Windows 98/ME/2000/XP。Windows NT4.0 平
台上的 KMD 驱动程序仅比 WDM 少了能量管理与即插即用功能而矣。当然,在 Windows 
2000 平台上的驱动程序除 WDM 外,还有文件系统驱动、NDIS(Network Driver  Interface 
Specific)驱动等等其它类型的驱动程序,但在下面的书籍推荐与介绍中我们将主要围绕
WDM进行。 
1.2 目的 
我首先想问你:你为什么准备学习开发驱动程序?也就是说你学习开发驱动程序的目的
是什么? 
从事驱动程序的开发可获得较高的收入。那么让你失望了。这行业同其它 IT行业一样,
收入高的属于少数技术水平高与开发经验丰富的人,虽然作驱动开发的人少,与你竞争的人
也少,但相应的就业面(也就需求)也相对狭窄。 
我是个硬件工程师,仅仅想作个驱动来调试硬件。那你可以学习使用 WinDriver这个软
件工具,它简单易用,上手快,对内核知识不需很多。只是据说效率上欠缺一些,不过我没
具体测试过。 
老板让我作个驱动程序;我想通过学习驱动程序开发了解操作系统;……好像也不需要
这么多理由吧,那就让我继续吧。 
1.3 开发环境的建造 
首先安装好Windows操作系统; 
然后安装VC(Virtual C++),一般来说需要 VC6.0 版本,好像最新的 XP DDK不需要事
先安装VC,但我没试过; 
如果是Windows NT4.0,还需要安装Platform SDK; 
然后到微软的网站下载相应的DDK(Driver Development Kits)开发包,比如你安装的
是 Windows 2000,你就一定只能安装 2000DDK。不过,最新的XP DDK可不提供免费下载,
只在MSDN 中提供,微软总是不忘记赚钱。 
最后,为调试方便,最好安装 SoftIce,这个第三方软件支持单机调试,如果使用微软提
供的WinDbg,还需要两台机器进行调试。 
有些人还想安装 Numega 公司的 Numega DriverStudio 套件,我倒不太喜欢其中的
DriverWork,它实际就是把DDK重新封装了。反而影响我们对程序流程的理解与调试。 
1.4 编写驱动程序的原则 
大部分编程问题都不得可分成两部分:机制(mechanism,即需要提供什么样的功能)
与策略(Policy,如何使用这些功能)。程序员编写驱动程序时就特别注意:编写访问硬件
的内核代码时不要给用户强加任何策略。因为不同的用户有不同的需求,驱动程序应该处理
如何使硬件可用的问题,而将怎样使用硬件的问题留给上层应用。(--摘自《LINUX 设备驱
动程序》) 
1.5 计算机已知的挑选原则 
现在计算机书籍种类非常多,也是良莠不齐,我一般在挑选本着下面几条原则: 
a. 尽量选用外国人写的书。也不能说是崇洋媚外,毕竟我们现在所使用的操作系统基本上
都是老外们编写的,那当然他们将自己的经验写出来也比我们丰富一些吧。还有就是中
国人实在不争气,常见中国人写的书由“某某 编著”,这一个“编”字就可以到处Copy 
& Paste。 
b. 选用有名的出版社。国内的机械工业出版社、清华大学出版社等等,国外的如微软公司、
O’Reilly等 
1.6 购买方式 
常有人想买某本书却买不到,或是到书店没看到此书。其实现在完全可以到网上买书,
挑选方便快捷,品种丰富齐全,而且一般都有优惠,只是你若在小城市,从寄出货款到拿到
书可需要点耐心,想当年我可是等了足有两个星期。具体的网址自己上网查询,省得有广告
嫌疑。 

二、推荐的书目 
2.1 《C程序设计》 
我首先推荐的就是这本谭浩强的《C 程序设计》,如果你的 C语言非常熟练,那么你就
跳过这一节,否则的话,你还是从你的教科书中找出这本,再仔细读两遍。一本书写出来十
多年还有人用,这可是在 IT 技术更新换代飞速的年代,能作到这一点也足可见它的经典。
虽然安装时需要 VC,但在编写驱动程序时却用的是Ansi C,还不是 C++,也不需要 VC的
集成开发环境。当然你也可以为方便使用VC 的集成开发环境,并将代码封装成 C++。 

 2.2 《Windows 2000 内部揭密》 
有时怨不得作 Unix/Linux 的人瞧不起作 Windows 的人,因为前者对操作系统的了解比
后者更为深入一些。随便翻开一本 Linux 开发的书籍,上面就有关 Cache、文件系统、IPC
(进程间通信)等等内容,而 Windows这方面的书籍是少之又少,大概与Microsoft的绝不
公开源码有关,而能写得通俗易懂又这么精彩就更少了,很幸运,我们找到了这本书。如果
。 
你英文流利的话,最好看原版书Inside Microsoft Windows 2000 , Third Edition

2.3 《Microsoft Windows 驱动程序模型设计》 
这本书太经典了,虽然价钱上是贵了一点,但你多读几遍,就会发现物超所值。要知道
它的实际作者是 Walter Oney(个人网站www.oneysoft.com),他写的书从来都不会让人失望
的。据说在今年年底,他将出版本书的第二版。 

三、一般驱动开发书籍 
下面这几本书籍专讲 WDM 驱动程序的,写得都还可以,虽然并不十分出色,但也不
算差。而且他们所讲述的内容大同小异,所以,你只要拥有其中的一本或是两本就足够了。 
3.1 Windows 2000 设备驱动程序设计指南(原书第 2 版) 
3.2 WINDOWS NT与 WINDOWS 2000 设备驱动及开发 
3.3 WINDOWS WDM设备驱动程序开发指南 
3.4  Windows 设备驱动程序(VxD与 WDM)开发实务 

四、相关推荐书目 
4.1  Windows  核心编程 
虽然叫核心编程,并不是指在内核模式(Kernel Mode)下编程,还是在用户态(User Mode)
中,不过比较贴近底层的编程。其实它与驱动程序编程并无紧密的关系,之所以推荐,是因
为有部分程序员是要将驱动程序、API(Appplication Program Interface)、测试程序一套都要
作下来,那么这本书对你编制API就大有帮助。 
4.2  LINUX 设备驱动程序(第二版) 

五、烂书曝光 
既然好书,就有烂书。我这个“烂”字并不是说它真的很差,误人子弟,只
与他的价钱相比,不能作到物有所值。 
5.1 Microsoft Windows 2000 驱动程序设计指南 
  这本书狂贵,还有它的中文翻译版,分成上下册,价格就更是高达300多元。 
5.2 VC++.NET开发驱动程序详解——Windows 2000/XP 

六、后记 
总有些初学者问:看些什么相关书籍才好呢?去年就在 DriverDevelop.com
上简单地写过一个书评,可惜后来的一次事故造成该帖子丢失,然后就决心重写
一次。尤其是前一阵子,对于论坛里的帖子我都没怎么回答过,甚是惭愧呀,就
用这个补过一下吧。 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值