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并删除它。

VC/DDK/DriverWorks开发环境配置的更多相关文章

  1. Visual studio 通用开发环境配置:SDL,FFMPEG为例

    引言 每一个C++库的使用都是从开发环境的配置开始的,其实每个库的配置过程都是大同小异,总结下来有下面几个步骤: 下载库文件,这里假定是已经预先编译完成的. 配置库文件的包含目录(include)和库 ...

  2. (转)OpenCV 2.4.8 +VS2010的开发环境配置

    转自:  http://blog.csdn.net/poem_qianmo/article/details/19809337 自己可能需要再进行修改 本系列文章由zhmxy555(毛星云)编写,转载请 ...

  3. 【OpenCV入门教程之一】 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/19809337 作者:毛星云(浅墨 ...

  4. OpenCV+VS开发环境配置

    最近跑C程序,头文件中用到了OpenCV中的文件,找了很多篇OpenCV+VS的环境配置,发现如下这篇写的最为详细,特转载来自己的博客中留存,并附上原博客地址如下 OpenCV学习笔记(一)——Ope ...

  5. OpenCV+VS 2015开发环境配置

    最近跑C程序,头文件中用到了OpenCV中的文件,找了很多篇OpenCV+VS的环境配置,发现如下这篇写的最为详细,特转载来自己的博客中留存,并附上原博客地址如下 OpenCV学习笔记(一)——Ope ...

  6. 踏入OpenGL大门 —— VS2015开发环境配置 (详细图文)

    转自: https://www.jianshu.com/p/68c314fa9fea?from=groupmessage   眼睛熊 ---------------- 本文 ------------- ...

  7. Ubuntu开发环境配置

    主要是: 源的更新 安装vim编辑器 远程登录xrdp相关配置 synergy symless键鼠共享配置 对新买的硬盘进行格式化和分区 vsftp环境搭建 gcc开发环境配置 qt5开发环境配置 m ...

  8. 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置

    1.下载和安装OpenCV SDK     VS2010不用说,肯定都安装了吧.来说说当前最新的OpenCV版本2.4.8(2014年2月24日),2.4.9 (2014年4月)的下载和安装.与其说是 ...

  9. 【OpenCV入门教程之一】 OpenCV 2.4.8 +VS2010的开发环境配置

    目录(?)[-] 因为读研期间的研究方向是图像处理所以浅墨这段时间闭门研究了很多OpenCV和图像处理相关的知识与内容眼看自己积累到一定的程度了于是决定开始开设这个OpenCV系列专栏总结自己所学也分 ...

随机推荐

  1. shell习题第24题:杀进程

    [题目要求] 一台机器负载高,top查看到有很多sh的进程,然后top -c查看可以看到对应的进程命令是sh -c /bin/clear.sh 经分析后发现是因为该脚本执行时间太长,导致后续执行时,上 ...

  2. BZOJ4698 SDOI2008Sandy的卡片(后缀自动机)

    差分后即求多串LCS.先考虑两个串怎么做.对第一个串建SAM,第二个串在上面跑即可,任意时刻走到的节点表示的都是第二个串的当前前缀在第一个串中出现的最长的后缀,具体计算长度时每走一个字符长度+1,跳f ...

  3. 动手实现CNN卷积神经网络

    数据集采用的是手写数据集(http://yann.lecun.com/exdb/mnist/): 本文构建的CNN网络图如下: 像素点:28*28 = 784,55000张手写数字图片. # -*- ...

  4. Go part 5 结构体,方法与接收器

    结构体 结构体定义 结构体的定义只是一种内存布局的描述(相当于是一个模板),只有当结构体实例化时,才会真正分配内存空间 结构体是一种复合的基本类型,通过关键字 type 定义为 自定义 类型后,使结构 ...

  5. Oracle中select 1和select *的区别

    转自:https://www.linuxidc.com/Linux/2010-05/26202.htm 创建myt表并插入数据,如下: create table myt(name varchar2,c ...

  6. 关于Objective C的私有函数

    (1)很多从其他语言(例如C++)转到objective c的初学者,往往会问到一个问题,如何定义类的私有函数?这里的“私有函数”指的是,某个函数只能在类的内部使用,不能在类的外部,或者派生类内部使用 ...

  7. 【SSH学习笔记】浅谈SSH框架

    说在前面 本学期我们有一门课叫做Java EE,由陈老师所授,主要讲的就是Java EE 中的SSH框架. 由于陈老师授课风格以及自己的原因导致学了整整一学期不知道在讲什么,所以才有了自己重新学习总结 ...

  8. jade过滤器

    以上语法基本讲完了jade的语法,然后在jade里面并不仅仅局限于使用jade语法,同样可以使用其他的插件语言,这种机制在jade里面称为filter,在jade里面加入过滤器用冒号 markdown ...

  9. 标准库类型之string

    上几篇中已经实现了一个简单版的String字符串类,但是实际开发中不用我们自己实现了,学习Java的也知道有一个系统现成的用,当然强大的C++也不例外,下面就来学习一下系统定义的string是怎么用的 ...

  10. K-D树

    一般用来解决各种二维平面的点对统计,也许一般非正解? 没时间慢慢写了,打完这个赛季后补细节 建树板子: #include <cstdio> #include <locale> ...