Window7 驱动编程环境配置
1. 安装VS2010,WDK7.60(GRMWDK_EN_7600_1)
2. 新建VC 控制台项目(选择为空项目)

3. 新建项目配置“driver” ,点击下拉按钮-点击(配置管理器)

输入名称(driver)点击确定就可以了,其他的不要动哦!

完成后的效果!

点击确定按钮之后呈现出来的画面

鼠标右击新建的driver属性,会弹出以下窗口!
4. 设置VC++路径
<我把wdk安装在E盘下>
a. 配置可执行文件目录:E:\WinDDK\7600.16385.1\bin\x86;
b. 配置包含目录:E:\WinDDK\7600.16385.1\inc\ddk
E:\WinDDK\7600.16385.1\inc\crt
E:\WinDDK\7600.16385.1\inc\api
c. 配置库目录: E:\WinDDK\7600.16385.1\lib\win7\i386
新建C/C++文件 不然无C/C++设置选项
<刚开始我们创建了一个空的项目所以项目里没有c++文件,现在要做的就是在空的项目-源文件-添加一个新建项c++文件>
常规
目标文件扩展名:.sys //必选
6. 设置C/C++选项
常规选项卡
1 调试信息格式(C7 兼容(/Z7) //可选
2 警告等级 (2 级(/W2) //可选
3 将警告视为错误 (是(/wx) //可选
优化选项卡
优化(禁用/Od) //可选
预处理器
预处理器定义:WIN32=100;_X86_=1;WINVER=0x501;DBG=1 //必选
代码生成
启用最小重新生成:否 //可选
基本运行时检查:默认值 //可选
运行时库:多线程调试(/MTd) 或 多线程(/MT) //建议选 <本人选择的是多线程调试(/MTd)>
缓冲区安全检查:否 //可选
(可避免出现 LINK : error LNK2001: 无法解析外部符号 __security_cookie)
高级
调用约定 __stdcall(/Gz) //必选
7. 链接器设置
常规
启用增量链接:否(/INCREMENTAL:NO) //建议 选上
忽略导入库:是 // 可选
( 设置为此值时,必须在附加库目录中加: E:\WinDDK\7600.16385.1\lib\win7\i3865 这样项目就不会依赖 IDE 环境的设 置)
如果否 ( 设置为此值时,将依赖 IDE 的环境的相关设置 )
输入
附加依赖项
ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIBCMT.LIB //必选
//NT式驱动 ntoskrnl.lib WDM式驱动 wdm.lib
( HalXXX 函数在Hal.lib, WmiXXX 函数在 wmilib.lib , NdisXXX函数在 ndis.lib )
( 必要时需要增加微软的标准库 MSVCRT.LIB MSVCRTD.LIB(调试库) LIBCMT.LIBIBCMTD.LIB(调试库) )
( 如果源码中有 source 文件,那么该文件的 TARGETLIBS 字段会列出该项 目需要的库 )
忽略所有默认库: 是 (/NODEFAULTLIB) //必选
清单文件:
启用用户账户控制(UAC) 否 //必选
不然会出现 >LINK : fatal error LNK1295: “/MANIFESTUAC”与“/DRIVER”规范不兼容;链接时不使用“/MANIFESTUAC”
调试:
生成调试信息 是(/DEBUG) //可选
生成映像文件:是(/MAP) //可选
映像文件名:$(TargetDir)$(TargetName).map //可选
系统(System)
子系统: 控制台(/SUBSYSTEM:CONSOLE) //必选
堆栈保留大小:4194304 //可选
堆栈提交大小: 4096 //可选
驱动程序: 驱动程序(/DRIVER) //必选
高级:
入口点:DriverEntry //必选
随机基址:清空 //把框里的数据删掉。(yes也不是no也不是就是要一个干干净净的文本框) //必选
不然会出现 e:\xxx.sys : fatal error LNK1295:
“/DYNAMICBASE”与“/DRIVER”规范不兼容;链接时不使用“/DYNAMICBASE”
数据执行保护(DEP): 清空 //把框里的数据删掉。(yes也不是no也不是就是要一个干干净净的文本框) //必选
不然会出现 e:\xxx.sys : fatal error LNK1295:
“/NXCOMPAT:NO”与“/DRIVER”规范不兼容;链接时不使用“/NXCOMPAT:NO”
设置效应和:是(/RELEASE) //可选
基址:0x10000 //建议选上
命令行:/SECTION:INIT,D /IGNORE:4078 (建议不要写进去,会报错!)
最后给出一个超级简单的代码来测试一下我们配置的是否成功??
#include "ntddk.h"
NTSTATUS
DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
return STATUS_UNSUCCESSFUL;
}
如果没有报错那么恭喜你配置成功了!
原文地址:http://www.cppblog.com/guojingjia2006/archive/2011/03/19/142211.html
本人尝试了一下,表示好用,特此保存。
Window7 驱动编程环境配置的更多相关文章
- Java/javaEE/web/jsp/网站编程环境配置及其软件下载和网站路径
Java/javaEE/web/jsp/网站编程环境配置及其软件下载和网站路径 (2015/07/08更新) JDK下载地址(JDK官网下载地址) 下载地址为:http://www.oracle.co ...
- Win8.1+VS2013+WDK8.1+VirtualBox or VMware 驱动开发环境配置
https://blog.csdn.net/charlessimonyi/article/details/50904956 Win8.1+VS2013+WDK8.1+VirtualBox or VMw ...
- STM32编程环境配置(kile5)
2018-08-2513:53:33 折腾了很久,花了两天的空闲时间终于烧进去程序了.完成了kile5对stm32编程的环境配置. 1.下载kile5 激活破解 2.安装stm32配置环境 3.加载工 ...
- VC6.0 +WDK 开发驱动的环境配置
前段时间,系统偶感风寒,挂掉了,苦于又没有备份过,只有重装了.原来开发驱动的环境是VC6+DDK+DriverStudio3.2,当时配置的时候就花了好一阵功夫,也没有彻底搞清楚.现在要重装了,决定改 ...
- 《OpenGL超级宝典》编程环境配置
最近在接触OpenGL,使用的书籍就是那本<OpenGL超级宝典>,不过编程环境的搭建和设置还是比较麻烦的,在网上找了很多资料,找不到GLTools.lib这个库.没办法自己就借助源码自己 ...
- VS2013+WDK8.1 驱动开发环境配置
Windows Driver Kit 是一种完全集成的驱动程序开发工具包,它包含 WinDDK 用于测试 Windows 驱动器的可靠性和稳定性,本次实验使用的是 WDK8.1 驱动开发工具包,该工具 ...
- UNIX环境高级编程-环境配置
环境配置步骤如下. 1. 下载源文件:http://www.apuebook.com/src.tar.gz. 2. 复制src.tar.gz文件到/home/me/mydir/unixl/目录(自 ...
- Windows下Hadoop编程环境配置指南
刘勇 Email: lyssym@sina.com 本博客记录作者在工作与研究中所经历的点滴,一方面给自己的工作与生活留下印记,另一方面若是能对大家有所帮助,则幸甚至哉矣! 简介 鉴于最近在研究 ...
- Sublime Text 3 Build 3047 安装/插件安装/C编程环境配置
Sublime Text 3 Build 3047 安装 参考:http://sublimetext.iaixue.com/forum.php?mod=viewthread&tid=29 插件 ...
随机推荐
- Swift3.0语言教程替换子字符串
Swift3.0语言教程替换子字符串 Swift3.0语言教程替换子字符串,替换子字符串其实就是将字符串中的子字符串删除,然后再进行添加.为了让这一繁琐的过程变的简单,NSString提供了替换子字符 ...
- JS_ECMA基本语法中的几种封装的小函数
先来回顾一下我们的字符串: 字符串方法: str.length str.charAt(i):取字符串中的某一个; str.indexOf('e');找第一个出现的位置;找不到返回-1; str.l ...
- TestNg线程池配置、执行次数配置、超时配置
使用注解的方式对TestNg线程池配置.执行次数配置.超时配置 注:使用注解来控制测试方法运行的次数和超时时间,timeOut在单线程或者多线程模式下都可用,threadPoolSize设置了线程池的 ...
- 我的c++学习(8)运算符重载和友元
运算符的重载,实际是一种特殊的函数重载,必须定义一个函数,并告诉C++编译器,当遇到该运算符时就调用此函数来行使运算符功能.这个函数叫做运算符重载函数(常为类的成员函数). 方法与解释 ◆ 1.定义运 ...
- python 代码片段24
#coding=utf-8 #内部类 class MyClass(object): class InnerClass: pass # 正则表达式 # 通过re模块来访问 import re m=re. ...
- POJ 3061 (二分+前缀和or尺取法)
题目链接: http://poj.org/problem?id=3061 题目大意:找到最短的序列长度,使得序列元素和大于S. 解题思路: 两种思路. 一种是二分+前缀和.复杂度O(nlogn).有点 ...
- 转:苹果应用商店DNS修改加快下载速度
苹果应用商店DNS修改加快下载速度 具体方法:依次点击进入[设置]→[无线局域网]→[WiFi网络右侧小i图标]→更改DNS地址,可以按照自身需求选择以下某个DNS进行更换. OpenDNS:208. ...
- [题解+总结]NOIP2015模拟题2
// 此博文为迁移而来,写于2015年7月22日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w72i.html 1.总 ...
- [WP8.1UI控件编程]Windows Phone理解和运用ItemTemplate、ContentTemplate和DataTemplate
2.2.5 ItemTemplate.ContentTemplate和DataTemplate 在理解ItemTemplate.ContentTemplate和DataTemplate的关系的之前,我 ...
- 链式前向星+SPFA
今天听说vector不开o2是数组时间复杂度常数的1.5倍,瞬间吓傻.然后就问好的图表达方式,然后看到了链式前向星.于是就写了一段链式前向星+SPFA的,和普通的vector+SPFA的对拍了下,速度 ...