VS2015配置内核WDK7600环境,32位下.

学习内核驱动的编写,就要会配置环境.不然总是用记事本编写.比较不方便.

环境配置如下.

1.首先下载WDK7600, 课堂资料代码中已经上传.链接:https://pan.baidu.com/s/1o9PjpUU 密码:k5sp

2.VS2015下载. 这个网络上有很多.自己选择一个下载即可. PS: VS2013配置一样可以. 配置好了导出模版.然后也可以给VS2015使用.

一丶环境配置

1.打开VS2015,新建空项目

中文: 文件 -> 新建 -> 常规 -> 空项目

2.添加新文件,后缀为.cpp

打开解决方案视图

源文件 -> 添加新建项(Ctrl + shift + a)

3.修改配置属性

项目 -> 属性 -> 常规

ALT + F7(直接这个按键也可以).

修改:

  项目 -> 属性 -> 常规 ->目标文件扩展名为.sys

4.修改配置管理器,添加配置管理

生成 -> 配置管理器

名字可以随便取

5.配置WDK的环境变量

配置环境变量

计算机- >属性 -> 高级系统设置 ->高级->环境变量->系统变量->path路径

然后将我们的WDK的根目录拷贝进来即可.

例如我的是:

  D:\WinDDK\7600.16385.1

6.配置文件目录以及库目录

项目->属性

或者快捷键 ALT+F7

配置:

  项目->属性->VC++目录

可执行的配置路径:

    配好我们的环境变量了,那么配置我们的XP即可.

 例如我的是:

    D:\WinDDK\7600.16385.1\bin\x86\x86

包含目录的配置路径:

    总共三个路径需要配置,都是inc下的路径

    1.D:\WinDDK\7600.16385.1\inc\ddk

    2.D:\WinDDK\7600.16385.1\inc\api

    3.D:\WinDDK\7600.16385.1\inc\crt

引用目录的配置路径:

     也是三个,很简单.都是lib下的.

    1.D:\WinDDK\7600.16385.1\lib\ATL\i386

    2.D:\WinDDK\7600.16385.1\lib\Crt\i386

    3.D:\WinDDK\7600.16385.1\lib\wxp\i386

库目录的配置路径:

     库目录的配置路径就是把我们的WDK的lib库设置一下即可.

    1.D:\WinDDK\7600.16385.1\lib\wxp\i386

7.设置优化选项

  

项目->属性

或者快捷键 ALT+F7

配置:

  项目 -> 属性 -> C/C++ ->优化

设置如下.

8.设置预处理器

项目 -> 属性

配置属性:

  项目 -> 属性->C/C++ -> 预处理器

设置为下面的命令:

  _X86_;_DDK_;_WIN32_WINNT=0x0501;WINVER=0x0501;_DEBUG;DBG=1

9.禁止安全检查

项目 -> 属性

配置属性:

  项目->属性->C/C++->代码生成 -> 安全检查.

设置为禁止安全检查即可.

10.修改调用约定

修改我们的调用约定为STDCALL

项目->属性

配置属性:

  项目->属性->C/C++->高级->调用约定

11.修改连接器配置中的依赖选项和忽略所有默认库

修改连接器中的附加依赖选项,和忽略所有默认库

项目->属性

配置属性:

  项目->属性->连接器->输入->附加依赖选项

  项目->属性->连接器->忽略所有库

附加依赖选项修改为:

      ntoskrnl.lib;ndis.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib

12.修改连接器配置中的清单文件

项目->属性

配置属性:

  项目->属性->连接器->清单文件->生成清单.

13.修改连接器配置中的调试信息

项目->配置

配置属性:

  项目->配置->连接器->调试

箭头所指的地方,如果是VS2013,改为是即可.

14.修改连接器配置中的系统属性

项目->属性

配置属性:

  项目->属性->连接器->系统->驱动程序

15.修改连接器配置中的入口点

项目->属性

配置属性:

  项目->属性->连接器->高级

这里要设置入口点以及随机基址

入口点设置为内核驱动入口点

DriverEntry

注意:

  随机基址,和数据执行保护都要为空

对比连接器所有选项设置

注意子系统需要设置一下

16.将我们的CPP文件.或者.c文件设置为驱动代码.编译看看是否可以生成.

此时我们都已经配置完毕,我们拷贝一个驱动代码进来.看看是否能生成

如果可以生成,那么配置没有错误.可以导出为模版,然后只要建立驱动程序就可以使用这个模版了.

成功生成,可以导出为模版文件了.

17.生成模版文件使用

文件->导出模版->项目模版

下一步进行操作

模版名称可以修改

注意模版路径,如果你有更好的模版路径,则可以输出到这个路径. 那么VS2015就可以使用这个模版了.

完成即可.

进入我们的路径,则可以看到我们的模版文件了.

18使用模版,创建一个WDK内核驱动程序

现在我们可以关闭我们的VS2015,重新打开则可以创建一个内核驱动了.

文件->新建->项目->Visual C++

此时已经有我们的模版了.创建了.然后生成一下看看是否成功

可以正常运行,但是注意一下.我们要选择我们自己配置的生成.

不能选择Debug或者Release编译.

原创不易,转载请注明出处.如果对你有用.下方请评论.支持一下.

VS2015配置内核WDK7600环境,32位下.的更多相关文章

  1. Ubuntu 12.04(32位)下PHP环境的搭建(LAMP)

    Ubuntu 12.04 32位 下默认安装为5.3.10  不是以下图文中的5.4 1.首先打开命令行,切换到root身份,获得最新的软件包 su root sudo apt-get install ...

  2. 32位Windows7上8G内存使用感受+xp 32位下使用8G内存 (转)

    32位Windows7上8G内存使用感受+xp 32位下使用8G内存 博客分类: Windows XPWindowsIE企业应用软件测试  我推荐做开发的朋友:赶快加入8G的行列吧....呵呵..超爽 ...

  3. VS2015配置Andriod开发环境

    原文:VS2015配置Andriod开发环境 折腾了好久终于配置OK了,分享给大家! 第一步: http://xamarin.com/download下载XamarinInstaller 第二步: 运 ...

  4. Win7 32位下cocos2dx android开发调试环境

    1.使用环境 win7 32位 + vs2010 2.软件准备(下方绿色文字带链接) cocos2dx-v2.2.2 jdk7 android sdk android ndk adt bundle a ...

  5. windows7 64,32位下scrapy爬虫框架的环境搭建

    适用于python 2.7 64位安装 一.操作系统:WIN7 64位 二.python版本:2.7 64位(scrapy目前不支持3.x) 不确定位数的,看图 三.安装相关软件:(可以从我的百度网盘 ...

  6. 【转】如何在Ubuntu11.10(32位)下编译Android4.0源码(图文)

    原文网址:http://blog.csdn.net/flydream0/article/details/7046612 关于如何下载Android4.0的源码请参考我的另一篇文章: http://bl ...

  7. vs2015配置OpenGL开发环境

    先吐槽下,不知道微软怎么整的,从win7开始,OpenGL的头文件更改到windows SDK中,不安装就不能用. 更搞笑的是,在win10下,vs2015安装还报win sdk安装失败,这典型的自己 ...

  8. 迁移32位下的旧代码到64位sever遇到过的两个很诡异的问题

    一个是GetHashCode,这个方法是返回一个int值,在32位系统里,都是正值,但在64位系统里会返回负值. 另一个问题是DataTable的Sort属性,在没有显示写明升序或降序的情况下,在32 ...

  9. 32位下操作mongodb心得

    本文出处:http://blog.csdn.net/chaijunkun/article/details/7236911,转载请注明. 随着互联网的变革,互联网的内容生成方式也逐渐地从网站生成转为用户 ...

随机推荐

  1. 基于ASP.MVC票据FormsAuthenticationTicket身份认证

    做一个最基础的业务需求用户登录,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端.服务端上的授权设置就可以根据不同目录对不同用户的访 ...

  2. 自学Zabbix3.10.1.2-事件通知Notifications upon events-媒介类型SMS

    自学Zabbix3.10.1.2-事件通知Notifications upon events-媒介类型SMS 服务器安装串口GSM短信猫之后,zabbix可以使用它来发送短信通知给管理员,如下注意事项 ...

  3. 体验mssql-cli

    1. 背景 安装SQL Server on Linux之后,在命令行下使用sqlcmd,你会发现代码提示,语法高亮,甚至连多行复制都不支持,相比之下,MySQL的命令行客户端还好用多了.只做简单的命令 ...

  4. Angular相关命令

    1 创建相关 1.1 创建项目 ng new 项目名  ->  创建新项目 ng new 项目名 --skip-install  -> 不进行模块安装  ng new 项目名 -si ng ...

  5. 小白的Python之路 day4 装饰器前奏

    装饰器前奏: 一.定义: 1.装饰器本质是函数,语法都是用def去定义的 (函数的目的:他需要完成特定的功能) 2.装饰器的功能:就是装饰其他函数(就是为其他函数添加附加功能) 二.原则: 1. 不能 ...

  6. Struts2学习---result结果集

    这一章节主要介绍如何配置结果集,分为以下几个知识点: 结果集类型(result type) 全局结果集(global types) 动态结果集(dynamic type) 带有参数的结果集(type ...

  7. Huffman 哈夫曼编码与译码的原理剖析及C++实现

    原理 我们在信息存储时,希望以最少的空间去存储最大的数据,方便数据的传输,那么该怎样做呢? 我们想到将源信息转化为01序列存储,但是这样以来又有一个问题,就是子串匹配问题,我们为了解决这个方法,想到了 ...

  8. Slf4j与其他日志系统兼容的使用

    java生产的各种框架(如spring等)里各个框架会使用不同的日志体系,多个不同日志在一个jvm里混搭会出现一定问题 ,这里梳理一下java体系里常见的日志框架,以SFL4j为中心介绍下跟各个日志框 ...

  9. geoserver安装部署步骤

    方式一:直接在geoserver官网下载zip源代码解压包,直接部署在tomcat里面运行geoserver: 方式二:下载安装包方式 以GeoServer2.8.5版本为准,安装之前必须要保证你机子 ...

  10. [置顶] MVC中使用signalR入门教程

    一.前言:每次写总要说一点最近的感想 进入工作快半年了,昨天是最郁闷的一天,我怀疑我是不是得了"星期一综合征",每个星期一很没有状态.全身都有点酸痛,这个可能一个星期只有周末才打一 ...