http://blog.csdn.net/smartdog_1/article/details/8219900
1、说明
在Windows驱动开发过程中,环境搭建是最重要的一部。而标准的驱动开发环境搭建相对模糊,不具有可行性。故而本人记录下自己搭建开发环境的过程。
2、驱动开发分类
1)、Windows驱动开发分成两类。一类是设备驱动,另外一类是过滤驱动。两者可以统称为windows内核开发。原因在于两者都运行于内核空间
2)、设备驱动是在驱动开发框架下编写与设备相关的驱动,主要是为了让设备能够正常在Windows下工作。
3)、过滤驱动则是为了实现文件过滤、防火墙、驱动保护、内核修改等目的。
3、驱动开发工具准备
在Windows驱动开发过程中,官方提供的工具分成两类:
1)、为Windows 2000 、XP 、Vista、7 准备的开发包WDK7600
2)、为Windows Vista 、7、8 准备的开发包WDK8kit
两类工具不能相互兼容。不需要开发Win8驱动的,使用WDK7600的最为方便
4、编写代码工具的准备。
为2000、XP开发驱动时,微软官方没有提供集成开发环境。按照官方的说法使我们只能使用文本编辑器和命令行来实现编辑、编译。
但是网上有好事者编写了一套辅助开发工具来实现IDE方式编写驱动程序。那就是VisualDDK,他能无缝集成到VS2005 VS2008 VS2010。 对于
VS2012来说,我们不在需要第三方的开发工具,VS2012自带了驱动开发IDE,只需要装上WDK8就能实现。并且VS2012不在支持XP。
5、调试工具的准备。
驱动调试工具,常见的的有两个一个是SoftICE 和 Winbg 。前者已经停止更新,后者为微软官方提供的调试工具。支持所有版本的windows
调试。配合windows提供的符号文件,调试windows内核相对方便很多。
对于winddbg调试工具,经常使用虚拟机实现双机调试。此时我们大多使用的是利用虚拟机的虚拟串口来调试,这种方式效率低下,但是稳定
性最好。在虚拟机中配置调试串口也会遇到很多问题。比如默认的调试串口是com1还是com2对于我们来说是不知道的。只能通过自己测试来实现。
在调试内核的时候,网上也有好事者提供了第三方的解决方案,这就是VisualKD.。
他是利用网络的方式实现双机调试,本人只在虚拟机下测试了双机调试。至于真实主机的调试还没有测试。
6、驱动开发环境搭建过程中的软件安装
1、安装Visual 2005、2008、2010(vs2012不支持在XP下安装,而且自身支持WDK8的集成,所以不讨论)
2、安装WDK7600(完全安装)
3、安装VisaulDDK(一定要最新的。1.5.7支持WDK7600,低版本的不一定支持)
4、对于在Windows7 64bit下调试的人来说,要安装WinDbg32bit工具。(位于WDK工具包的Debuger目录下)
7、驱动调试环境搭建过程中的软件安装
1、完成驱动开发环境的软件安装。
2、安装VMwareplayer。(Vmwareplay配置简单,而且免费。VMWorkStation对于一般的用户来说,意义不大。VirtualBox配置有点麻烦,详情参见
下面的链接)
3、在VMwareplayer中安装系统。此处我选择的是XP。
4、下载VisualKD(一定要最新版本)
5、将VisualKD目录下的vminstall.exe拷贝到虚拟机中,并运行。
6、在主机中运行VirtualKD目录下的vmmon.exe文件。(64位系统的选择vmmon64.exe)
7、如果vmmon中OS栏目显示的是yes,则表明虚拟机中的系统已经和主机连接上。此时点击RunDebugger就能实现调试。
8、其他及参考连接:
驱动开发环境搭建分成:
调试环境和编译环境,两者要弄清楚。
连接:
VisaulDDK 下载 http://visualddk.sysprogs.org/download/
VisualKD下载:http://virtualkd.sysprogs.org/download/
VisualDDK安装:http://visualddk.sysprogs.org/quickstart/
VisualKD安装 :http://virtualkd.sysprogs.org/tutorials/install/
使用VisualDDK 开发参考:http://articles.sysprogs.org/visualddk/firstdriver/
已知问题:
在Windows Xp中使用 VirtualKD-2.8 和 WDK 7600.16385.1会出现找不到windbg.exe文件。(wdk按照默认路径安装)。
解决办法,建立C:\Program Files\Debugging Tools for Windows目录。将C:\WinDDK\7600.16385.1\Debuggers目录下
的所有文件拷贝到C:\Program Files\Debugging Tools for Windows目录下。
问题出现的原因在于VirtualKD默认从C:\Program Files\Debugging Tools for Windows目录下寻找windbg.exe文件。