Windows驱动开发与调试

配置目标:
1.VS2017+windows10.0.16299+WDK驱动开发机(虚拟机)
2.虚拟机WIN7 sp1驱动测试机
3.win10实体机windbg调试WIN7sp1驱动测试机

  实际专业的驱动开发1和3是同一台实体机,也就是在实体机上编译和调试虚拟机内的驱动,如果驱动更加涉及底层,测试机也必须要用实体机,使用物理串口连接调试。
  这里选择分开的原因是驱动开发机要编译的是Rootkit驱动,可能会损害实体机。是为了更加安全的一种防护措施,第二是方便以后移植直接拷贝虚拟机镜像文件就可以开发了。

驱动开发环境搭建

  驱动开发的环境一定要注意VS、windows版本、SDK、WDK要严格对应。否则你安装到最后很有可能出现xxxxtemp.h这种东西。
  这种版本对照我们去哪儿查呢?当然是去微软官网。复制下面这个链接:
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/other-wdk-downloads
  如果官网有变动,直接搜索关键词:microsoft wdk,进入官网选择其他WDK下载页面,就是这个页面。
在这里插入图片描述
在这里插入图片描述
另外需要注意:
  一、Windows SDK 未包含在 Visual Studio 2015 中,因此必须单独安装 SDK。 更高版本的 Visual Studio 包含 Windows SDK。
  二、从 Windows 10 版本 1709 开始,安装 WDK 时会默认安装 Visual Studio 的 WDK 扩展。 这些扩展是将 WDK 与 Visual Studio 集成所必需的。
  三、从 Windows 10 版本 1709 开始,EWDK 基于 ISO。 若要开始使用,请下载并装载 ISO,然后运行 LaunchBuildEnv。

  根据官网的配置把环境搭建好的话还需要对VS配置如下:

在这里插入图片描述
  把SDK版本换成你的操作系统的版本的SDK,如果没有,说明VS没有安装正确,重新运行VS安装程序,更改下安装组件即可,不用完全卸载。
在这里插入图片描述
  把警告等级改为关闭所有警告。可以试一下编译一个demo的NT驱动程序,这个时候应该可以编译出sys驱动文件的。如果编译过后出现temp.h,那么你肯定哪个步骤漏了,回头反省下。

在这里插入图片描述
  最后如果编译通过了,就可以设置下生成的目标平台。

  如果自己实在不想搭建,可以找我要虚拟机,驱动开发调试等工具全部搞好大概60GB,可以联系我QQ私发。

驱动调试环境搭建

  首先关闭虚拟机(不要挂起),添加串口通信管道。注意有且仅有这一个串口,不然配置比较麻烦。

在这里插入图片描述
  以管理员权限打开system32目录下的cmd.exe,并做上图操作:创建新的标识符并开启调试模式。
在这里插入图片描述
  cmd命令打开msconfig界面,勾选上图标记的三个框。此时测试机的环境搭建完毕。拍个快照,方便以后调试。

实体机要注意:
  一、在windbg的快捷方式后添加

-b -k com:pipe,port=\\.\pipe\com_1,baud=115200,reconnect -y

  二、远程调试的符号路径最好新建个文件夹,不要和本机调试的符号文件夹放一块,因为虚拟机里的win7符号和实体机的win10操作系统符号肯定是不同的。
  三、连接时要先启动虚拟机,再启动windbg。

参考
驱动环境的搭建
https://blog.csdn.net/qq_33504040/article/details/78283489

驱动的调试
https://blog.csdn.net/qq_33504040/article/details/78349885

猜你喜欢

转载自blog.csdn.net/qq_43312649/article/details/108398345