Windows驱动程序的开发,开发工具主要可以这样分:记事本、DriverStudio(DS) + Visual C++ 6.0或者VS2005 ,编译的工具选择DDK或者Visual C++ 6.0,而调试工具有Windbg双机调试和SoftICE单机调试。下面将详细的介绍这些工具的配置和使用。
开发工具:
在安装所有的工具之前,首先安装DDK,这个是微软提供的编译器,用来编译驱动程序。可以到其官网上下载。地址是http://www.microsoft.com/whdc/devtools/downloads.mspx
这个地址是Windows驱动程序开发的一些工具的下载地址,都是微软提供的。
记事本
对于最初的学习者,我推荐使用记事本,不过最好找一个能有关键词高亮的记事本程序,Windows自带的记事本没这功能,我用的是Notepad++,支持的语言也挺多,还是免费的。
使用记事本程序进行开发,能够增加对内核函数以及内核程序的数据结构的理解,因为它没有智能提示,所有的东西都需要自己敲,自己动手的同时也增加了印象,对后期的学习有蛮大的帮助。不过记事本程序有它的缺点,如果不细心的话,容易出现拼写错误。
Driver Studio + VC6.0
DS是一个不错的集成的工具,整个系统包括开发工具、调试工具、测试工具等等,很全,很强大,但是对于初学的人,我不推荐使用,因为这个环境也会把新人给晃晕,就像VC++6.0写MFC程序一样,系统生成的代码很多。
要配置环境,首先安装VC++6.0,安装完之后,安装DS,然后进行关联就Ok了。这样就可以使用DS自带的DriverWizard进行设置,从而生成一个驱动程序的框架,然后使用VC++6.0进行编辑。
使用VC++6.0进行编辑,可以装一个插件,Visual Assist X,这个插件很好用,带有代码智能提示,蛮好用的,现在最新的版本应该是10.5吧!可以到下面的地址下载
http://download.pchome.net/development/c/detail-10255.html
VC++6.0
通过修改VC的配置也可以将其作为驱动开发和调试的工具。具体的配置如下:
用VC新建一个Win32 Application,选择建立一个空的工程。
接下来增加新的编译版本,去掉Debug和Release,添加一个Win32 Driver Check Edition
然后修改工程属性,选择project | setting,弹出Setting的对话框,在General选项卡中将Intermediate files和Output files修改为MyDriver_Check
选择C/C++选项卡,将原有的Option内容全部删了,替换成下面的内容:
修改VC的lib目录和include目录。
在VC中选择Tools,Options,弹出Directories选项卡,在Show Directories for下拉菜单中选择Include files菜单,添加“C:/WINDDK/2600/inc/wxp”和“C:/WINDDK/2600/inc/ddk/wxp”,并将它们置于最上方。“C:/WINDDK”这个是你自己的DDK的安装地址,一切修改好之后,保存,确定,然后就可以进行驱动的创建和编译了,添加头文件、主文件,然后编译。
编译工具:
DDK
DDK是微软官方提供的一个驱动编译工具,有很多版本,不同的操作系统有不同的版本和编译环境。主要有Check版和Free版,Check编译就像VC编译里边的Debug,而Free则是Release。一般选择Check环境。
调试工具
一般使用虚拟机进行双击调试,使用的工具是Windbg,下载地址是
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
具体的配置,网上很多,本来我也想写一下,因为最近博客中无法上传图片,我就不写了,这里有一个配置的链接,照着配置就行了。
http://hi.baidu.com/lynnux/blog/item/876a57179cb1420ec83d6de7.html
注意:符号表的版本一定要和自己的操作系统版本要一致。这个是对那些上网不是很方便的朋友来说的,如果上网不方便,可以到能上网的地方下载符号表到本机,而不是让Windbg自动下载。符号表的设置不正确,驱动程序就无法调试。具体的调试技巧暂时就不总结了,可以到看雪论坛看看
http://bbs.pediy.com/showthread.php?t=106307&highlight=Windbg
http://bbs.pediy.com/showthread.php?t=36186&highlight=Windbg
资料蛮多的,大家可以参考一下。
此文章来自于【http://blog.csdn.net/caperingrabbit/article/details/5280060】