VS2015配置内核WDK7600环境,32位下.
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位下.的更多相关文章
- Ubuntu 12.04(32位)下PHP环境的搭建(LAMP)
Ubuntu 12.04 32位 下默认安装为5.3.10 不是以下图文中的5.4 1.首先打开命令行,切换到root身份,获得最新的软件包 su root sudo apt-get install ...
- 32位Windows7上8G内存使用感受+xp 32位下使用8G内存 (转)
32位Windows7上8G内存使用感受+xp 32位下使用8G内存 博客分类: Windows XPWindowsIE企业应用软件测试 我推荐做开发的朋友:赶快加入8G的行列吧....呵呵..超爽 ...
- VS2015配置Andriod开发环境
原文:VS2015配置Andriod开发环境 折腾了好久终于配置OK了,分享给大家! 第一步: http://xamarin.com/download下载XamarinInstaller 第二步: 运 ...
- Win7 32位下cocos2dx android开发调试环境
1.使用环境 win7 32位 + vs2010 2.软件准备(下方绿色文字带链接) cocos2dx-v2.2.2 jdk7 android sdk android ndk adt bundle a ...
- windows7 64,32位下scrapy爬虫框架的环境搭建
适用于python 2.7 64位安装 一.操作系统:WIN7 64位 二.python版本:2.7 64位(scrapy目前不支持3.x) 不确定位数的,看图 三.安装相关软件:(可以从我的百度网盘 ...
- 【转】如何在Ubuntu11.10(32位)下编译Android4.0源码(图文)
原文网址:http://blog.csdn.net/flydream0/article/details/7046612 关于如何下载Android4.0的源码请参考我的另一篇文章: http://bl ...
- vs2015配置OpenGL开发环境
先吐槽下,不知道微软怎么整的,从win7开始,OpenGL的头文件更改到windows SDK中,不安装就不能用. 更搞笑的是,在win10下,vs2015安装还报win sdk安装失败,这典型的自己 ...
- 迁移32位下的旧代码到64位sever遇到过的两个很诡异的问题
一个是GetHashCode,这个方法是返回一个int值,在32位系统里,都是正值,但在64位系统里会返回负值. 另一个问题是DataTable的Sort属性,在没有显示写明升序或降序的情况下,在32 ...
- 32位下操作mongodb心得
本文出处:http://blog.csdn.net/chaijunkun/article/details/7236911,转载请注明. 随着互联网的变革,互联网的内容生成方式也逐渐地从网站生成转为用户 ...
随机推荐
- 【 全干货 】5 分钟带你看懂 Docker !
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者丨唐文广:腾讯工程师,负责无线研发部地图测试. 导语:Docker,近两年才流行起来的超轻量级虚拟机,它可以让你轻松完成持续集成.自动交付 ...
- 再谈 SharePoint 大局观
作者:陈希章 发表于 2017年12月21日 前言 我对SharePoint这个产品很有感情,因为曾经有相当长一段时间,在很多个夜深人静.月黑风高的晚上,我都是在和它形影不离,在一个一个项目实践中相爱 ...
- ME01:猎场中猎头的内核
前几天追了下<猎场>,只看了前面10多集,觉得下面的对话有点意思. 是关于猎头是干什么的? 猎头具备的素质. 对我们普通人是不是也有启发意义呢? 如何看人, 找到靠谱的合作人?找打好的老板 ...
- .net core控制台应用程序初识
.net core控制台应用程序与之前.net版本有所不同,编译之后不会生成.exe启动程序,而是生成.dll文件 所以在使用的时候需要敲入命令来启动控制台应用程序,命令是: start dotne ...
- gulp实现公共html代码复用
在开发网站的时候,尤其是类似于官网这样的项目,顶部都会有一个导航栏,底部会有一些其他信息,而这两个部分在每一个页面都是有的.我们不可能在每个html页面都写一遍,这样也不便后期维护等操作,所以可以把顶 ...
- 微信小程序教学第四章第二节(含视频):小程序中级实战教程:详情-视图渲染
§ 详情 - 数据渲染 本文配套视频地址: https://v.qq.com/x/page/x055550lrvd.html 开始前请把 ch4-2 分支中的 code/ 目录导入微信开发工具 这一节 ...
- 【二十六】php之文件编程
1.获取文件的相关信息 fopen.fstat.fclose(打开文件.获取文件相关信息.关闭文件) filesize.filectime.filemtime.fileatime(文件大小.上次cha ...
- C 真正理解二级指针
本文转载自CSDN博主liaoxinmeng,做数据结构时遇到指针方面的问题,想了许久,因此我觉得很有必要复习一下二级指针及其使用 正文如下: 指针是C语言的灵魂,我想对于一级指针大家应该都很熟悉,也 ...
- Fiori缓存与它的清除
最近在修改已有的Fiori应用,遇到了缓存上的一点问题,导致对Fiori应用的代码修改不能在前端页面生效.现将自己查到的一篇好资料翻译过来,以供参考.以下为正文. 2017.12.19更新:最近又遇到 ...
- Wincc的使用
1.组态项目步骤 1)启动Wincc 2)建立项目 3)选择及安装通信驱动程序 4)定义变量 5)建立和编辑过程画面 6)指定Wincc运行系统的属性 7)激活Wincc画面 8)使用变量模拟器测试过 ...