从驱动编程如何入门谈起

来源:互联网 发布:proteus单片机程序 编辑:程序博客网 时间:2024/05/01 05:40
        从Windows诞生的那天起,DDK也就诞生了,因为Microsoft自己经常要开发不少的Driver放到在Windows的安装程序里,他们用的工具就是DDK。在Win95以前的win3.x时代,不光咱国内用DDK的人少,恐怕Microsoft的本土老美们,用DDK开发驱动的人也不见的有很多高手。Win95的到来,以及NT的流行,才“驱动”或“催生”了不少的Driver的开发者。Microsoft力推driver开发者使用DDK,但掌握DDK,需要掌握很多枯燥的Windows底层技术,包括许多内核数据结构定义,内核程序运行机制,内核支持例程等,如果再加上开发设备Driver需要掌握的设备技术细节,那可真是够人受的!

      所以有好事者(某些公司)就推出了,Vireo公司的VtoolsD,Jungo公司的WinDriver,后来又有了NuMega公司的DriverStudio等。VtoolsD由可视的VxD代码生成器QuickVxD、C运行库、C++类库以及VxD的装入程序等组成。利用QuickVxD生成的框架程序和经充分测试过的C运行库或C++类库可以绕过DDK用C或C++来编制驱动程序。这个家伙是Win95时代Vxd 驱动开发者的利器。WInDriver, 支持 ISA,EISA,PCI,Plug&Play 和 DMA,不需要牵涉到很低层的东西即可在很短的时间里编出驱动程序,很适合Win95/98/NT平台下开发Driver。使用WinDriver的优点是,开发者并不需要熟悉任何内核环境或DDK及任何驱动程式。WinDriver允许开发者使用Visual C/C++, Borland C++Builder, Delphi或任何Win32编译器来开发出所需的驱动程序,酷吧!后来又听说,WinDriver还可以For Linux,厉害!DriverStudio, 是NuMega公司的一系列驱动开发工具程序包,包括DriverWork, DrvNetWork, Softice等,其中的SoftIce,很不得了,可以说是本机调试内核程序的先驱(我个人估计),最新的driverStudio 3.2可以支持在vs 2003,vs2005(当然也包括vc6)下些Driver,以及很好用的DDK文件sources到vc工程的转换,真的很好用,很爽!而且它可以使用DriverStudio自带的重新编写的C++库来支持C++些Driver。

     一般认为,如果您的项目时间比较紧,比如2个礼拜,那就用WinDriver,如果在1个月左右可以用DriverStudio。如果您是高手,那就用DDK!

    我个人认为,如果是要学习Driver或内核编程,那咱就从DDK入手。这就如同学习 Windows编程,可以用Delphi也可以用VC,用VC也有多个选择,可以使用MFC,也可以用WTL,还可以直接API,本着学习的原则,时间比较充裕,那还是从底层开始,了解基本技术和原理。即使是从DDK开始做起,也不能一头扎进水里,淹死在茫茫大海:)。先学习简单的内核编程框架,再看入门的例子,DDK自带的sample,就不错,短小精悍,每个例子实现一个基本功能,针对性强。

      还有,学习DDK,大家的英文要比较强,市面上关于Driver的好书不多,其实最权威 的还是DDK文档,国内很多书都是翻译它而来,并且是人家DDK的子集。给大家推荐的书有:Windows Driver Model(有中文版),WIN2000驱动程序设计(CHM版)。

 
原创粉丝点击