Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序



远程配置虚拟机

Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

我们发现VS2019菜单栏那里没有Driver选项,怎么办呢?

Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

  • 记得要把防火墙都关掉
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

在虚拟机设置中把打印机移除后再添加串行端口

  • 因为打印机默认会用串口1,所以要先把虚拟机中的打印机干掉,然后添加一个串行端口:
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

该端是服务器,另一端是应用程序,这是什么意思呢?

  • 这个虚拟机中的win10相当于是被调试的,另一端是应用程序,比如说我们这里的是vs2019。
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    配置好之后,vs2019就开始在虚拟机win10中安装双机调试所需要的各种程序服务了。

  • 驱动分两种,一种是NT式驱动,一种是WDM驱动。

NT式的驱动就是以服务的方式,用工具SRVINSTW来安装

  • 鼠标右键SRVINSTW.exe以管理员身份运行(一定要以管理员身份运行该工具):
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
  • 上图程序路径一定要自己手工将要测试的驱动路径复制进行,因为浏览的话你只能找到.exe结尾的文件。
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
  • 记得在粘贴的路径后面添加反斜杠\,再把要测试的驱动文件名复制进来。
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    这里直接下一步。
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    这里选手动,再下一步,点完成就行了。
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    然后,你要重启虚拟机win10禁用驱动程序强制签名才能进行远程调试。

开始设置vs2019中的调试设备

Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
看上图右下角,这个时候就开始连虚拟机了,需要虚拟机中win10系统高级重启(禁用驱动程序强制签名)。

禁用驱动程序强制签名

  • 在虚拟机win10中点击右下角通知,点击所有设置,点击更新和安全,然后点恢复,在右边的高级启动那里点击立即重新启动:
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

  • 点击疑难解答、高级选项、启动设置,最后点击重启:
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

  • 重启之后出现上图所示启动设置中的选项,我们这里点击数字键7或者按F7键,就会禁用驱动程序强制签名。

  • 自动用WDKRemoteUser这个账号登录。
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

  • vs2019连上虚拟机中win10系统后,在vs2019中驱动程序代码里打断点:
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

  • 现在我们给虚拟机中断一下,点击下图所示工具栏上的全部中断按钮:
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    这个时候可能就比较慢,vs2019会中断住虚拟机,所以比较慢,因为vs2019通过windbg中断虚拟机中win10内核,所以非常慢,中断之后虚拟机就挂住了、不动了,所以这个时候就证明了vs2019已经断住了。

  • 打开Dbgview之前要先导入dbgview.reg注册表,然后以管理员身份运行Dbgview.exe。
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

  • 右键以管理员身份运行控制台窗口cmd。
    Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序

Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
Windows驱动开发系列小白入门经典 - vs2019双机调试wdk驱动程序
这时候断点就进来了,现在我们按F10键单步调试。