HyperIris
驱动牛犊
驱动牛犊
  • 注册日期2005-05-15
  • 最后登录2013-12-30
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:4387回复:0

(原创)调试UMDF驱动

楼主#
更多 发布于:2010-03-06 16:13
http://hyperiris.spaces.live.com/blog/cns!D9CFE2DC046098F8!1042.entry

HyperIris原创文章,谢绝转载

相对于调试运行在最高特权级的WDM、KMDF驱动,调试运行在ring3的UMDF驱动难度大为降低,不需要双机调试,我们可以像调试普通应用程序和服务一样在一台电脑上完成。



调试方法:


    1 编译好需要调试的驱动(包括安装用的inf等),连接硬件,把需要调试的驱动安装上。然后断开硬件连接(对于USB设备来说直接拔出就可以了)。
    2 启动WinDBG,设置好符号路径,特别是被调试驱动的符号。详细设置可以参考Debugging Tools的文档。
    3 运行regedit,打开HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WUDF\Services\{193a1820-d9ac-4997-8c55-be817523f6aa},如果之前从未调试过UMDF驱动,会发现HostProcessDbgBreakOnDriverLoad键值为0,这个键值的含义是延迟多少秒加载驱动对象。我们把它修改为15秒(十六进制0xF,如果手慢可以改得更大)。注意这个键值不影响DllMain,如果要调试DllMain,请修改HostProcessDbgBreakOnStart。
    4 插入硬件,并且在15秒内使用WinDBG的Attach to Process(快捷键是F6),找到UMDFHost.exe,attach即可。注意如果系统有多个使用UMDF驱动的硬件,就会有多个UMDFHost.exe进程,为了不致混淆,请提前移除不用的硬件。
    5 完成调试后,请恢复注册表(将延迟修改为0),以免正常硬件的驱动加载被延迟。

游客

返回顶部