驱动开发杂记1
2016-05-15 17:12
246 查看
安装驱动的时候刚开始不要设置为随机启动
一般来说新建的驱动是KMDF Driver类型在WDF节点下面
编译选项记得改下,否则直接蓝屏
使用dbgview捕获驱动输出
1.首先,在注册表中设置:HKLM/SYSTEM/CurrentControlSet/Control/Session Manager,打开或者创建子项Debug Print Filter,然后新建一个DWORD值DEFAULT,将其设置成0xF,重启即可。
完成上述设置后,user mode下的程序的TRACE信息就可以看到了,如果要查看kernel mode下的程序的调试信息,还需要做以下设置
2. 在DebugView中将菜单选项 Capture -> Capture Global Win32勾上即可(针对服务)。
去掉默认的数字签名
驱动源码调试
1.待调试主机启动到系统启动选择,选择 "XXX Debug" 项,先不要按回车。
2.双击前面创建的那个快捷方式启动WinDBG(此时)。
3.此时按下回车,稍等片刻,就连接上了。如果很长时间没有连接上的话,可以按 WinDbg 菜单中的 "Debug"->"Kernel Connection"->"Resynchronize"。
4.最后当WinDbg显示与虚拟机连接上之后按 WinDbg 菜单中的 "Debug"->"Break" ,就会中断下来,命令输入窗口变为可用状态,你就可以向 WinDbg 下命令了。
想预先在入口处打断点的话,可以使用bu XXXX!DriverEntry
查看变量值,可以使用View -> locals或者Alt+F3
一般来说新建的驱动是KMDF Driver类型在WDF节点下面
编译选项记得改下,否则直接蓝屏
使用dbgview捕获驱动输出
1.首先,在注册表中设置:HKLM/SYSTEM/CurrentControlSet/Control/Session Manager,打开或者创建子项Debug Print Filter,然后新建一个DWORD值DEFAULT,将其设置成0xF,重启即可。
完成上述设置后,user mode下的程序的TRACE信息就可以看到了,如果要查看kernel mode下的程序的调试信息,还需要做以下设置
2. 在DebugView中将菜单选项 Capture -> Capture Global Win32勾上即可(针对服务)。
去掉默认的数字签名
驱动源码调试
1.待调试主机启动到系统启动选择,选择 "XXX Debug" 项,先不要按回车。
2.双击前面创建的那个快捷方式启动WinDBG(此时)。
3.此时按下回车,稍等片刻,就连接上了。如果很长时间没有连接上的话,可以按 WinDbg 菜单中的 "Debug"->"Kernel Connection"->"Resynchronize"。
4.最后当WinDbg显示与虚拟机连接上之后按 WinDbg 菜单中的 "Debug"->"Break" ,就会中断下来,命令输入窗口变为可用状态,你就可以向 WinDbg 下命令了。
想预先在入口处打断点的话,可以使用bu XXXX!DriverEntry
查看变量值,可以使用View -> locals或者Alt+F3
相关文章推荐
- 解决unity5.3出现的: [VRDevice] Initialization of device oculus failed 问题
- 自定义异常
- 【LeetCode】95. Unique Binary Search Trees II
- (win32)解决虚拟按键被输入法截获
- sublime 编译提示js
- AIDL
- JAVA Calendar
- Hive体系结构(二)Hive的执行原理、与关系型数据库的比较
- 华中农业大学第四届程序设计大赛网络同步赛Problem J: Arithmetic Sequence
- mysql远程连接
- MySQL 乱码问题
- ScrollerCompat的简单用法。
- mysql远程连接
- StringBuffer扩容
- 内部跳转(请求转发)和外部跳转(重定向)的区别?【转】
- AM57xx Remoteproc
- 51nod 1179 最大的最大公约数 一种筛选的方法
- Java源码学习 -- java.lang.StringBuilder,java.lang.StringBuffer,java.lang.AbstractStringBuilder
- 最详细的Log4j使用教程
- 小酌重构系列[14]——使用多态代替条件判断