Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建(菜鸟的经验)

 

自己在研究驱动开发,第一步就是开发环境的搭建,网上已有很多的教程一,我也是按着教程一步一步搭建的,但在搭建过程的过程当中遇到一些问题,也花了我不少时间。

第一个难题就是,我是Windows7+VS2010+WDK的开发环境。

首先我参考了网上的一篇文章:http://www.cppblog.com/guojingjia2006/archive/2011/03/19/142211.html

但是结果失败了,编译的时候会出现错误。结果在网上找原因呀,发现把vc目录下的sal.h代替inc/api目录下的sal.h, 但是还是编译不过,后来我想还原inc/api目录下的sal.h,所以我就按了ctrl+z,结果不知道为何(可能是点快了),被我删掉了,于是我就没有了inc/api/sal.h。到止我放弃了上面那blog的方法决定另寻方法。

然后我又在网上找资料,发现了VisualDDK是一个不错的东东,也支持vs2010,于是我下载下来安装。然后我启动VS2010,新建了一个驱动的项目,试着编译一下(心里在祈祷,让我成功),结果大失所望。说找不到sal.h,因为我删掉了。知道原因就好办,我就想重新安装一下WDK吧,但重新安装的时候,才发现不能重新安装,除非你少选一项安装项,首次安装的时候我是全选所有安装项(非常郁闷)。于是我就报着试一试态度用上面用过的方法:用vc目录下的sal.h代替inc/api目录下的sal.h,然后再编译一次,这次是不同的错了,后来在网上找答案,发现了另一篇文章:http://www.cnblogs.com/xlhblog/archive/2011/03/22/1991785.html  下面引用BLOG的一段原文

那么这时候需要拷贝F:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h,然后覆盖掉F:\WinDDK\7600.16385.1\inc\api\sal.h

这样就会导致另外一个问题,Microsoft Visual Studio 10.0\VC\include\sal.h 中include了CodeAnalysis\sourceannotations.h,所以如果在编译环境中调用build,会出现错误找不到 sourceannotations.h,所以要:

把 Microsoft Visual Studio 10.0\VC\include\CodeAnalysis  拷贝到 F:\WinDDK\7600.16385.1\inc\api 下!!

这一下再编译,哈哈,成功了!!!!

因为VisualDDK支持用IDE调试,所以我就想配置VisualDDK+VMwar7+VS2010来开发驱动。理想是美好的,但现实总是残忍的。我参考着http://www.cnblogs.com/BoyXiao/archive/2011/07/31/2122755.html来进行配置,结果失败了:在driver launch setting里面总是不能刷出我的vmware上的xp操作系统。在网上看到很多人说,这种方式经常会出现问题,大都建议用Windbg双机调试。 于是放弃这种驱动调试方法的环境配置,转到配置windbg双机调试的环境配置。

 

第二个难题就是双机调试的时候老是连接不上。

我是参看http://hi.baidu.com/iamahper/blog/item/0e697a37c0d2741a90ef394d.html进行双机调试环境配置,结果可是老是连接不上。 没办法,身边也没人懂,只能上网找答案,google了一下,发现了http://bbs.pediy.com/showthread.php?t=135895 这篇文章。我用的是WMware7,  于是我试一试的心态,把

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=com1 /baudrate=115200

改成了

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=com_1 /baudrate=115200

结果就成功了。

 

经过两天的摸索,现在环境终于配置好了。

开始我的驱动之旅了。

你可能感兴趣的:(驱动开发,windows,2010,microsoft,include,winddk,vmware)