现在的位置: 首页 > 综合 > 正文

XP+VC 6.0+WinXP_DDK+DriverStudio3.2

2013年07月29日 ⁄ 综合 ⁄ 共 7917字 ⁄ 字号 评论关闭

http://hi.baidu.com/thonmin/item/44d95a6e358c4e156895e6d7

 

xp: WINXPSP3_SRS_DRVS_SOFT_201103.isohttp://www.285868.com/a/cjbxp/3907.html
WDK3790.1830_ddk.iso : http://download.microsoft.com/download/9/0/f/90f019ac-8243-48d3-91cf-81fc4093ecfd/1830_usa_ddk.iso

ntstrsafe.lib+csq.lib.rar : http://download.csdn.net/detail/victoryckl/4444640

Compuware.DriverStudio.v3.2.rar : http://download.csdn.net/detail/yincheng01/3802442#comment

DebugView.zip:http://download.csdn.net/detail/victoryckl/4468037

WinDbg:

http://msdn.microsoft.com/zh-cn/windows/hardware/gg463016#e5

下载 Windows 符号包:http://msdn.microsoft.com/zh-cn/windows/hardware/gg463028

IRPTrace.rar:http://download.csdn.net/detail/victoryckl/4468187

1·前言
开发windows内核驱动程序是一个非常具有挑战性的工作,你得忍耐调试过程中操作系统 不断蓝屏、不断崩溃的噩梦,所以强烈建议你采用虚拟机做开发平台,这样即使把整个系统都搞蹦了,大不了从新装过虚拟机而已。那么搭建一个完整的 Windows驱动开发环境是每个人必须迈过的第一道坎。本文将具体介绍如何安装和配置好一个完整的DDK开发换件:
Windows XP + 英文原版Visual studio 6.0 + WinXP_DDK + DriverStudio 3.2

2·准备工作
先要把eset(360杀毒软件)卸载掉。从网站http://www.moodisk.com/download_other_c.php下载并解压下列软件:
(1)·DriverStudio_3.2_CR.rar;
(2)·Visual.C++.6.EN.zip;
(3)·winxp_ddk.rar;
(4)·ntstrsafe.lib+csq.lib.rar;
解压DriverStudio_3.2_CR.rar,进入解压后的目录DriverStudio_3.2_CR,再把其中 driverstudio.3.2.crack.rar解压,产生目录driverstudio.3.2.crack,里面有两个文件SN.txt和 compuware.dat,前者包含序列号,后者是证书文件,这两个文件在安装过程中会用到。

(DriverStudio 3.1下载地址:http://blog.csdn.net/mobidogs/archive/2007/01/23/1491503.aspx

3·安装和配置
软件的安装顺序:Windows XP --> VC6.0 --> WinXP_DDK -> DriverStudio3.2,如果顺序装错了,那么把DriverStudio3.2删除再重装就OK了。从网上找到库文件 ntstrsafe.lib+csq.lib.rar,把解压出来的两个库文件拷贝到WinXP_DDK的安装目录下的库目录中(我的是 C:\WINDDK\2600\lib\wxp\i386)。启动vc6,然后进行简单的配置:菜单DriverStudio菜单下的DDK Build Settings,在弹出的对话框中选择已经安装的DDK目录(比如我的是C:\WINDDK\2600),在Windows
DDK compiler Options中选择"Enable only for Driver Studio"。
VC6.0-->Tools-->Options,点击"Directories"选项卡:
1)·“Show directories for:"下选择Include files,然后检查有没有包含ddk的头文件目录(我的是C:\WINDDK\2600\inc\wxp),如果没有则加上;
2)·“Show directories for:"下选择Library files,然后检查有没有包含ddk的库文件目录(我的是C:\WINDDK\2600\lib\wxp\i386),如果没有则加上;


注意:安装DDK时一定要把例子安装(建议你安装全部的模块),否则编译vdwlibs.dsw时会报如下的错:
vdw_wdm.lib - 1 error(s), 0 warning(s)
然后打开引起错误的文件,发现:
#error The file is from the DDK at src\wdm\hid\inc. Install DDK HID samples to install hidport.h.  Or update INCLUDE path for hidport.h in the DDK! 
这表明安装WinXP_DDK的时候没有安装实例。

4·编译适合本机使用的库文件(以下内容,如果用DDK编程者可以不看)
(1).启动VC6.0。开始-->所有程序 -->Compuware DriveStudio-->Develop-->DDK Building Settings,确保“DDK Root Directory”下方的内容是ddk的安装目录(比如我的是C:\WINDDK\2600),然后点击下方的"Luanch Program"正式启动vc6的开发环境。
(2).进入菜单File-->Open Workspace(打开位于DriverStudio3.2安装目录的\DriverWorks\Source\vdwlibs.dsw)--> 进入菜单Build-->batch Build,点击“Select x86"按钮只选中全部的32位库(我的电脑是32位的。注意:对于32位的电脑一定不要选中64位的库,否则后面编译会出错)-->点击按 钮"Rebuild AlL”开始编译。(注意:这种方法我曾经成功过一次,但后来再也没成功过,于是百度GOOGLE很久,发现下面这样也行:设置VdwLibs为活动项,选中Win32
WDM Checked,然后用DriverStudio里面的 Build with Build.exe即可以。然后再选Win32 WDM Free再Build一下,这样就出现了想要的vdw_wdm.lib

注:如果出现无法打开文件这类的错误,一般都是DDK Build Settings指向不对,或安装顺序有误,或者你在32位机器上选中了64位库。

5·编译一个DriverStudio自带的实例
(1)·启动vc6,点击菜单 File-->Open Workspace,打开项目文件C:\Program Files\Compuware\DriverStudio\DriverWorks\Examples\wdm\hellowdm \HelloWdm.dsw,然后编译,如果没有报错,那说明安装和配置成功。但请你别高兴的太早,开发环境安装配置成功只是万里长城的第一步,剩下的你 就是要理解驱动模块的架构和具体的代码编写了。

6·使用Driver wizard生成驱动程序框架
(1).在VC6.0的界面下,点击菜单DriverStudio-->Driver wizard,此后系统会一步一步引导你完成设置,最后自动生产的驱动程序框架。
(2).设置好后将生成驱动文件,然后用VC6.0进行编译:进行Build菜单,Rebuild AlL将生成.sys文件,说明驱动模块编译成功!
注:如果出现无法打开ntstrsafe.lib的错误,说明系统缺少这个库文件,参照上面的方法补上这个库文件,或者进入菜单 Project-->Settings,鼠标点击左边方框里的最上面一行,然后右边"Project Option"下的ntstrsafe.lib并删除它。

转载:http://blog.chinaunix.net/u3/95705/showart_1962131.html

 

 =====================================================================================================================================================================================================================================================================================================================

 

作为补充在转一个Driver Studio3.2的安装说明

关于Driver Studio 3.2 的安装详解

分类: 面向对象2008-11-26
13:342904人阅读
评论(3)收藏举报

关于Driver Studio 3.2 的安装详解

经过对VC、WINDDK、Driver Studio这三个软件反复的安装,终于可以使Driver Studio能在VC环境下正常编译了。俗话说久病成医,遇到的问题多了,自然就有了很多解决问题的方法,现在拿出来和大家一起分享一下。

1、分别安装VC、WINDDK、Driver Studio,为:VC-〉WINDDK-〉 Driver Studio。其实顺序也可以变一下的,笔者曾试过VC-〉 Driver Studio -〉WINDDK,没问题的,但最好按建议顺序安装;

2、注意安装DDK时,建议将例子等全部安装,否则Driver Studio编译时会提示缺少头文件;

3、在VS2005环境下,安装Driver Studio时会有对话框弹出,单击Ignore按钮,解决办法会在后面详细说明;

4、选择“DriverStudio->DDK Build Setting”,在“DDK Root Directory”选项中选入DDK目录,例如“C:/WINDDK/2600”。为了防止每次启动VC来编译WDM时,都要设置DDK目录,可以在“控制面板”的“系统”-〉“高级”-〉“环境变量E”设置中,添加一个值为C:/WINDDK/2600的系统变量BASEDIR;

5、用VC打开“…/DriverStudio/DriverWorks/source/VdwLibs.dsw”,用 Driver Studio进行编译,如果编译成功就OK了,然后可以进行驱动的开发了。

6、利用DriverWizard向导对所要开发的驱动类型进行正确配置,生成所需要的驱动工程框架。

Vista下安装DriverStudio3.2出现Internal Error 2738

以Adminstrator的身份运行CMD,然后输入:regsvr32 vbscript.dll

安装DriverStudio3.2 过程中出现DSDDKEnv8.dll failed to register错误的解决方法
原因:与VS2005集成时会发生此错误。 
解决方法,补丁:
>Extract it into a temp directory. 
>Copy the file DSDDKEnv8.dll into the <INSTALL_DIR>/DriverStudio/Common/Bin directory. 
>Select "yes" if prompted to copy over an existing one. 
>Copy the file DSDDKEnv8UI.dll into the <INSTALL_DIR>/DriverStudio/Common/Bin/1033 directory. Select "yes" if prompted to copy over an existing one. 
>Then unregister the older version 
Go to start->run and type "regsvr32 -u " <INSTALL_DIR> /DriverStudio/Common/ Bin/ dsddkenv8.dll" 
注意〈INSTALL_DIR〉不能含有空格,否则命令无法执行,笔者曾将DriverStudio安装在C:/Program Files下,总是运行不了,为此郁闷了好久,后经别人提点才解决此问题,但不知其原因,请问有人知道吗?
>Then register the new copy 
Go to start->run and type "regsvr32 <INSTALL_DIR>/ DriverStudio/ Common/ Bin/ dsddkenv8.dll" 
>DriverStudio menu should now be part of the VisualStudio 2005 menu

如果在vs2005+补丁后生成的解决方案文件.sln无法双击打开工程时可以使用文本编辑器打开.sln文件在第二行加入“# Visual Studio 2005”保存即可,例如: 
Microsoft Visual Studio Solution File, Format Version 9.00 
# Visual Studio 2005 
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aa", "driver/aa.vcproj", "{6A0A9D07-FD4C-4D7C-805D-48D25FB4BE6C}" 
EndProject

根治方法:

打开/DriverStudio/DriverWizard/Templates目录的WdmDriver.sln.net文件 
找到“Microsoft Visual Studio Solution File, Format Version 9.00”这一行,在其后下一行加入“# Visual Studio 2005”保存即可,以后用DriverWizard生成的工程就可以正常双击打开了。

编译中可能遇到的问题(VS2005环境下) 
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
这个错误,解决方法如下: 
打开project->BaseClasses properties->configuration->C/C++ ->Command Line,增加/wd4430选项。 
NextNode()或其他函数没有返回类型的原因,你的代码可能是从VC++里迁移到VS2005里面来编译出现的错误吧,在VC里你的函数没有返回类型他自动默认为INT,但在VS2005里就要报你上面的错误!

windows驱动程序开发环境配置

网上有很多关于驱动开发环境的资料,但大多不全。

这里,个人推荐使用vc6.0+DriverStudio3.2+windows ddk2600。

vc6.0大家再熟悉不过的了,也许你可能喜欢使用vc8.0,也就是.net 2005,它功能强大,调试方便,但这里还是推荐6.0,因为,ds会在vc6.0开发环境中另外增加一个导航工具条,很方便,同时也会增加一个菜单栏。

vc6.0安装完毕后,再安装windows ddk,其安装包可以在网上搜索到,建议去微软官方网站下载。具体下载哪个,得根据你电脑的操作系统来定,我的是windows xp,所以安装了windows xp ddk。

最后,安装DriverStudio,全称Compuware DriverStudio ,目前通用版本为3.2。

编译ddk包

进入到....../Compuware/DriverStudio目录下,我们可以看到两个文件夹,DriverNetworks 和 DriverWorks,里面分别有BuildAllDNW.bat和BuildAllDW.bat,我们在命令行下面分别cd至这两个目录,再运行这两个批处理文件,可以看到提示,提示中说明了运行的格式,即:BuildAllDNW(或者BuildAllDW) D:/winddk/2600(ddk的安装路径,这个是我机器上的路径) WinXP(操作系统版本) x86(我的CPU类型)。回车即可。把两个批处理类似运行,就可以了,如果不编译,系统会报错,说没有.lib静态库文件。

开始第一个工程

打开vc6.0,设置ddk路径,选择菜单中或者工具条中的 ddk build settings,把ddk的根目录root directory设置好,我的是“D:/WINDDK/2600”。然后选择菜单或工具条第一项,启动新建工程向导,一步步下去就可以了。编译时选择菜单或工具条第四项。

don't know how to make 'D:/WINDDK/2600/lib/wxp/i386/ntstrsafe.lib' 解决办法

driverstudio产生的驱动工程都会要连接ntstrsafe.lib这个库,但实际上这个库并不存在,在Project的Settings里的Link项中去掉这个库,然后在工程中的sources文件里边,找到下面一行:
TARGETLIBS=$(DDK_LIB_PATH)/ntstrsafe.lib $(DDK_LIB_PATH)/csq.lib,直接删除即可。
有时候还会提示没有ntstrsafe.h,#include<ntstrsafe.h>出错,把它注释掉即可。
上面这个错误出现在windows xp操作系统中,我曾经帮别人在2003 server中配置开发环境,结果发现,不会存在上述问题,而且可以使用vc6.0的编译按钮进行编译,这在windows xp下是不行的。

调试

调试方法很多,我一般都用DbgPrint。
check和free的区别。简单地说,check相当于debug,free相当于release,前者是调试版本,后者是发布版本。你可以使用以下语句实现仅在check版本中输出调试语句:
    #if dug
    #define dprintf DbgPrint
    #else
    #define dprintf(x)
    #endif
然后使用dprintf代替DbgPrint。

调试工具

ds自带的softice,DriverMonitor,等。此外,Dbgview和DriverMonitor类似,可以从网上下载到的。Dbgview和DriverMonitor可以看到DbgPrint的字符串。

驱动的加载

这个比较复杂,有dosname等细节。还有动态和静态加载的区别。动态加载可以参看FwHookDrv个人防火墙的例子,其中关键部分就是TDriver类,注意dosname。静态加载就是注册为服务即可,相对比较简单。
转换为vc工程。开始--程序--Compuware DriverStudio--develop--DDK sources to vcproj Converter,即可转换,不会使用的多试几次就会了,什么都说了,就没有悬念了,呵呵。

驱动开发调试环境

建议采用虚拟机或者双机的配置。因为驱动调试常常会出现蓝屏等等,所以得双机或者虚拟机,免得老是重启,浪费时间和心神

抱歉!评论已关闭.