• C++第三十七篇 -- 调试驱动程序


    上一篇写的KMDF程序是通过串口进行配置的,那么我们在VS中Attach to process外,可以直接用Winbdg进行调试,winbdg.exe所在路径为C:Program Files (x86)Windows Kits10Debuggersx64。怎么使用它呢。

    如果是串口方式配置的话:windbg.exe -b -k com:pipe,port=\.pipecom_1,resets=0

    如果是网络方式配置的话:WinDbg -k net:port=50000,key=1.2.3.4

    虚拟机上如果有打印机的话,那么新添加的串口应该是com2,所以配置的时候得看仔细点,再说安装驱动那一块,之前在网上下载了一个驱动工具,一点用都没有,总是创建句柄失败,后来就把VS生成的inf文件拷过去,sys也拷过去,用devcon.exe的工具安装。

    安装命令devcon.exe install XXX.inf rootXXX 前面的参数就是拷过去的INF文件,后面的参数是驱动的ID,在INF文件里面会写

    [Standard.NT$ARCH$]

    %KMDFDriver1.DeviceDesc%=KMDFDriver1_Device, RootKMDFDriver1

    RootKMDFDriver1就是ID,所以安装命令就是devcon.exe install KMDFDriver1.inf rootKMDFDriver1

    亲测成功,不过我是在调试模式下安装的驱动。

    我的操作步骤是,开启虚拟机,打开windbg.exe,也就是运行上面那句话,然后windbg里面就会显示和虚拟机连接的一些信息,等进入到Windows后,就用devcon.exe工具安装驱动,好像也没什么信息输出了。其实我也不知道新建的那个驱动到底是干啥用的,就是默认的。

    关闭检查驱动数字签名:管理员模式下运行

    bcdedit.exe /set nointegritychecks on

    开启检查驱动数字签名

    bcdedit.exe /set nointegritychecks off

    以管理员权限执行:

    BCDEDIT -SET LOADOPTIONS DISABLE_INTEGRITY_CHECKS

    BCDEDIT -SET TESTSIGNING ON

    重新启动 Windows

    手动安装驱动的方法

    打开设备管理器,在根目录上右击,添加过时设备,下一步,安装我手动从列表中选择的硬件,下一步,下一步,从磁盘中安装,选择.inf文件的路径,确定,下一步,下一步,始终安装此驱动文件。

    windbg配置符号路径:https://blog.csdn.net/counsellor/article/details/82194920

    0:040> .sympath SRV*c:localsymbols*http://msdl.microsoft.com/download/symbols

    0:040> .reload

  • 相关阅读:
    关于螺旋矩阵的问题
    JDK 1.5 for 循环的新写法
    Java基础视频笔记(三)
    关于接口的理解
    常用的DOS命令
    Java基础视频笔记(二)
    Eclipse的常用快捷键备忘
    Java基础视频笔记(四):泛型
    异常设计准则
    多重继承和虚继承的内存布局(转)
  • 原文地址:https://www.cnblogs.com/smart-zihan/p/11780578.html
Copyright © 2020-2023  润新知