驱动开发文章
来源:互联网 发布:php网站源码带数据库 编辑:程序博客网 时间:2024/06/05 22:41
本系列教程采用VMware+本机进行双机调试,本机是Win10,虚拟机使用XP SP3进行运行调试
一. 虚拟机端配置
1.1 安装VMware并安装XP SP3系统
这个网上教程很多,就不详述了这里找了一篇百度的教程
http://jingyan.baidu.com/article/7f41ececd3be66593d095ca2.html
1.2 配置虚拟机XP系统
需要用到的软件:
SRVINSTW.exe : 驱动安装软件
Dbgview.exe : 驱动输出查看程序
VMwareTool : 方便在本机和虚拟机之间移动文件,直接在VMware的菜单栏虚拟机->安装VMwareTool便可以自动安装
其他配置:
1. 在C盘下建立一个Driver文件夹,用于存放测试的驱动,并建立一个快捷方式在桌面
2. 添加一个命令行启动的快捷方式,用于手动启动/关闭服务
3. 去掉系统隐藏文件隐藏的功能,编辑c:\boot.ini文件,添加系统调试启动项
- 1
- 1
资源管理器->工具->文件夹选项->查看->显示所有文件和文件夹
1.3 测试驱动安装与卸载(可以搭建好后面的环境后再测试)
- 复制测试驱动到c:\Driver文件夹下
- 安装服务.
打开SRVINSTW.exe,选择安装服务
选择本地机器
填写服务名,用于后面启动/关闭服务
填写驱动路径,这里要手动输入
选择设备驱动
驱动器目标名可为空
设置启动方式为手动,如果设置为自动的话,驱动出现问题蓝屏,开启自启动后又蓝屏
- 启动服务
打开DebugView.exe,勾选Capture->Capture Kernel
打开命令行,启动服务,可以看到DebugView中获取到了驱动的输出
关闭服务
命令行关闭服务,DebugView中获取到服务被卸载卸载驱动
打开SRVINSTW.exe,选择移除服务
选择本地机器
勾选包括设备驱动器,选择我们要卸载的服务
- 添加虚拟机输出命名管道
1). VMware菜单->编辑->首选项->设备->启动虚拟打印服务
2). 编辑虚拟机设置->移除打印机
3). 编辑虚拟机设置->添加->串行端口->输出到命名管道->一端是服务器,一端是应用程序
二. 配置主机
需要用到的软件:
WDK
WDK程序下载链接 :
https://developer.microsoft.com/zh-cn/windows/hardware/windows-driver-kit
WinDbg : 调试工具
其他配置:
1. 如上图,添加x86 Checked Build Environment快捷方式到桌面
2. 添加WinDbg快捷方式,右键快捷方式->属性->目标.修改启动属性
3.
- 1
- 1
三. 调试虚拟机
打开虚拟机,选择第二个启动项,启动调试程序
打开WinDbg,可以看到虚拟机中断了,在命令输入窗口输入g,让系统正常运行
自此环境搭建好了……
转载请注明来源:
enjoy5512的博客 : http://blog.csdn.net/enjoy5512
GitHub : https://github.com/whu-enjoy
为了整理方便,可以在一个合适的路径下建立一个专门的文件夹用于保存源代码.打开桌面的x86 Checked Build Enviroment快捷方式,进到源代码所在文件夹下,可以看到每个程序至少有三个文件,一个源代码文件,一个是makefile,一个sources,头文件是可选的
头文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
源代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
makefile文件
这个文件是固定的,内容不变
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
sources文件
- 1
- 2
- 3
- 1
- 2
- 3
在源代码路径下,使用build命令编译驱动程序
将编译好的first.sys复制到虚拟机中
将程序符号文件路径加到windbg符号路径中
设置源代码路径
启动服务,可以看到虚拟机卡住了,windbg在int3处中断了,然后便可以开始调试运行了
- 驱动开发文章
- 驱动开发文章二
- Linux 驱动开发文章收录
- Linux 驱动开发文章收录
- 驱动文章
- 网上发现的文章(测试驱动开发)
- SD驱动系列文章
- linux驱动相关文章
- 驱动文章列表
- 块设备驱动文章
- 很好的文章,没时间转了,把网址记下,关于linux驱动开发的
- 驱动开发
- 驱动开发
- 驱动开发
- 驱动开发
- 设备驱动入门系列文章
- 触摸屏驱动方面的文章
- 驱动学习的好文章
- android6.0敏感权限动态申请
- C语言:顺序查找和二分查找
- CAD编辑指南2:PDF:转DWG的常见方法
- TimeUnit用法
- 算法训练 8-2求完数
- 驱动开发文章
- W
- android调试日志不输出:AEE some logs have been lost
- 内联的优缺点
- 字符串中的空格替换
- win7远程登录方法(转载的方法,本地验证通过)
- 在/sys/class下创建访问节点
- mysql error 1045
- Java入门基础之【运算符】7