阅读:4453回复:0
(原创)调试UMDF驱动
http://hyperiris.spaces.live.com/blog/cns!D9CFE2DC046098F8!1042.entry
HyperIris原创文章,谢绝转载 相对于调试运行在最高特权级的WDM、KMDF驱动,调试运行在ring3的UMDF驱动难度大为降低,不需要双机调试,我们可以像调试普通应用程序和服务一样在一台电脑上完成。 调试方法:
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),以免正常硬件的驱动加载被延迟。 |
|