VS2015+WDK10+SDK10搭建驱动调试环境

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/black_bad1993/article/details/79962643

1.准备工具:

VS2015

WDK10

SDK10

主机:Win10, 目标测试机:Win7 64位

务必确保WDK和SDK都是同一个版本10.0.15063. 最前面大版本号要一致,不然后面会报很多打不开.h的错误。还要注意,wdk和sdk不能有多个。

2.这边就不安装虚拟机了直接开始配置:




管理员身份,在虚拟机命令行模式下运行如下2个命令开启。

     bcdedit /debug on
      bcdedit /dbgsettings serial debugport:n baudrate:115200

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附加到虚拟机中调试驱动,用串口调试方式。

在VS2015的菜单栏点击DRIVER--TEST--CONFIGURE DEVICES会报错估计是VS2015的Bug求大神指点。如图



出现红字说明配置成功!



注册工具点了启动之后,会进入到设备开始事件里:



至此结束,现在就可以像调试winform程序那样调试驱动了。

注意事项:1.要用debug输出的驱动文件拷贝到虚拟机。不然看不到调试输出信息。

2.编译出来的文件要和目标测试系统版本要一致,我测试都是64位。

3.源码改动之后,要把编译文件重新拷贝到虚拟机中,才能附加进行断点,否则进不了断点,和winfrom类似。

结束!

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页