VS2015+WDK10+SDK10搭建驱动调试环境
1.准备工具:
VS2015
WDK10
SDK10
主机:Win10, 目标测试机:Win7 64位
务必确保WDK和SDK都是同一个版本10.0.15063. 最前面大版本号要一致,不然后面会报很多打不开.h的错误。还要注意,wdk和sdk不能有多个。
2.这边就不安装虚拟机了直接开始配置:
n是虚拟机里显示的串口号,我这边就是端口2,把n改成2跑命令。
3、把WDK10的虚拟机调试驱动拷贝到虚拟机中安装。
目标机器是64位的所以拷贝这个文件到虚拟机之后安装。
4.目标机器Win7 64位做一些设置:
1、DbgView软件。微软下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/debugview
2、WIN7**册表修改,将以下代码写到.txt文件,将后缀改成.reg,注册此项.重启计算机:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
"DEFAULT"=dword:0000000f
3、DbgView软件必须使用管理员权限打开
4、在Capture选项里,把那几个选项都扣上,使用加载驱动程序(网上找或自己写加载驱动服务的程序),即可看见DbgPrintf字符串信息输出了.
5、 禁用强制驱动程序签名(WIN7开机F8选择禁用强制驱动程序签名),要进入测试模式
6、关闭兼容性助手:cmd的services.msc命令打开服务,“Program Compatibility Assistant Service”服务选择为禁用.
上面步骤都要配一个也不能少,否则服务注册不了。
5.VS2015工程配置:
1、属性页 ---> C/C++ ---> 等级警告设置为3.
2、Driver Settings(驱动设置) ---> Target Platform(目标平台)设置为Desktop(桌面).
3、Driver Settings(驱动设置) ---> Target OS Version设置为Win7(因为我的测试机是Win7,如果你是Win10,那么你选Win10)
4、Inf2Cat--->Run Inf2Cat设置为否
(参考:http://blog.csdn.net/doublestarts/article/details/37922819)
5、Driver Signing(驱动数字签名) ---> Sign Mode设置为Off
6、编译驱动程序为X64 (现在很少X86的系统了吧,X64系统不能使用X86的驱动程序)
代码:
编译代码,生成驱动文件 xxxx.sys 把这个目录下的文件都拷贝到win7虚拟机中。
用工具安装驱动,并启动,必须要在 禁用驱动签名,和测试模式下才能安装注册成功!
7.vs附加到虚拟机中调试驱动,用串口调试方式。
注册工具点了启动之后,会进入到设备开始事件里:
至此结束,现在就可以像调试winform程序那样调试驱动了。
注意事项:1.要用debug输出的驱动文件拷贝到虚拟机。不然看不到调试输出信息。
2.编译出来的文件要和目标测试系统版本要一致,我测试都是64位。
3.源码改动之后,要把编译文件重新拷贝到虚拟机中,才能附加进行断点,否则进不了断点,和winfrom类似。
结束!
上一篇: windows驱动开发-vs2017 WDK10开发环境搭建
下一篇: 由LazyMan联想到的
推荐阅读
-
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
-
Spring源码分析——调试环境搭建(可能是最省事的构建方法)
-
深度学习环境搭建(ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn+其他软件)
-
python框架flask入门之环境搭建及开启调试
-
使用PHPStorm+XDebug搭建单步调试环境
-
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
-
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
-
嵌入式框架Zorb Framework搭建一:嵌入式环境搭建、调试输出和建立时间系统
-
Apollo源码解析-搭建调试环境
-
vscode调试golang环境搭建及配置