VS2005_XP DDK_DS3.2安装说明
搭建开发环境是开发驱动的第一步,这个搭建的过程还是有点小折腾的,在这儿我遇到的问题记下来,免得日后忘记,也希望可以帮到一些人。
其实问题基本都处在DriverStudio3.2的安装和编译上。
下面就开始了:
这三个软件的安装顺序是:VS2005、Windows XP DDK、DriverStudio3.2。这是推荐的安装顺序。
首先,上网找Windows XP DDK安装程序、DriverStudio3.2安装程序、DriverStudio3.2的补丁DSDDKEnv.zip
补丁文件我上传了,可以在这儿下http://download.csdn.net/source/2896238
默认VS2005已经装好了,然后装DDK,DDK就一路默认装就可以了。
(建议把DDK的所有Example都装上,不然可能以后编译时会缺少头文件之类问题)
然后装DriverStudio3.2,也是一路默认安装就可以了(注:安装目录中不要出现空格,原因马上讲到)。
安装过程中会出现一个错误对话框,大概是说DSDDKEnv8.dll failed to register,选Ignore。
出现这个错误的原因是:Driver Studio 3.2在与VS2005集成的过程中出错了,
这个错误我们将在DS3.2安装完成后用补丁修复。
接下来补丁修复。
DSDDKEnv.zip解压,用文件DSDDKEnv8.dll、DSDDKEnv8UI.dll分别替换掉...../DriverStudio/Common/Bin和DriverStudio/Common/Bin/1033目录下的同名文件。
然后在开始菜单的运行中分别输入以下两条命令:
regsvr32 -u <安装目录>\DriverStudio\Common\Bin\dsddkenv8.dll
regsvr32 <安装目录>\DriverStudio\Common\Bin\dsddkenv8.dll
注:如果<安装目录>中有空格,那么以上两条命令会执行出错。
这时打开VS2005,其菜单栏的Tools中出现了DriverStudio子菜单。接下来还有以下几个工作要做:
1:Tools->DriverStudio->DDK Build Settings设置DDK路径,即将DDK Root Directory设置为C:/WINDDK/2600(根据自己的安装路径修改)
2:生成vdw_wdm.lib,这个库文件在以后编译驱动时是需要的。过程如下:
首先,用VS2005打开..../DriverStudio/DriverWorks/source/VdwLibs2005.sln;
将VdwLibs设为Active Project;
然后右击VdwLibs->Properties,VdwLibs Property Pages顶部的Configuration和Platform要分别改成Active(WDM Checked)和win32 Active,这个很重要。
注1:这个一定要改对!!不然生成的vdw_wdm.lib是错误的,错误的库会导致以后编译驱动时出错,很烦的。
注2:检查VdwLibs Property Pages->Librarian中的Output File是否为$(OutDir)/vdw_wdm.lib,如果不是,就改成这个。
最后编译工程(用Tools->DriverStudio->Build Solution),vdw_wdm.lib就生成了。
应该到此就安装完成了。大家可以用VS2005打开.../DriverStudio/DriverWorks/Examples/wdm中的一个例程,比如hellowdm。然后用菜单栏的Tools->DriverStudio->Build Solution with DDK Build.exe。如果生成正确,即在.../DriverStudio/DriverWorks/Examples/wdm/hellowdm/sys/objchk/i386中出现了HelloWdm.sys,那么就大功告成了,配置好了。
接下来我们用Tools->DriverWizard生成驱动模板(具体怎么生成大家自己研究吧^_^)
驱动工程文件生成后,同样用Tools->DriverStudio->Build Solution with DDK Build.exe编译时,
会出现这个错误:1>NMAKE : U1073: don't know how to make 'C:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib'
出错原因是:根本就没有C:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib这个库文件,这貌似是DS3.2的bug
解决办法是:1:在Project的Property pages里的Link=>Input=>Additional Dependencies项中去掉这个库
2:在Project的source文件中找到这句话,删掉就可以了哦:TARGETLIBS=$(DDK_LIB_PATH)/ntstrsafe.lib $(DDK_LIB_PATH)/csq.lib。