2011-12-23 20:52:41|
本文描述了如何使用Visual Studio+VMMare+VisualDDK来创建、编译和调试你的第一个驱动程序。本文提供在开发和调试工具的环境下详细的操作步骤,而无需太多的关心这些环境背后所做的事情。如果你想学习更多驱动程序开发的API,可以参考 Online WDK help。
本教程我们会创建以下驱动测序并且在虚拟机上测试它:
一个超级简单的驱动,加载时打印一条信息
如果你有另外一台实体机,你就不用安装虚拟机了。不过,你可能需要COM连接或者一个火线连接两台机子。
开始写驱动之前,你需要准备一些软件(点击超链接直接下载)。
VMWare,虚拟机软件,用于运行用于调试的虚拟机。
Windows安装镜像,用来给虚拟机装系统。建议使用XP或Windows7(如果你内存大一点,建议Windows7)。要是没有你可以找人拷或者到msdn.itellyou.cn下载
Visual Studio 2010,用来写代码
Windows Driver Kit (WDK) 7.1.0,用于Windows驱动开发的工具包
VisualDDK,将WDK和VS结合配置好的一个可视化VS插件
如果你不知道ISO镜像怎么使用,下载一个UltraISO然后去找下相关用法。
第一步是安装虚拟机软件。这个过程很简单,只需要按照步骤一步一步来。
点击File-New Virtual Machine
硬件兼容性无所谓,如果你用最新的VMWare,选择Workstation 8.0
选择操作系统:这里选择你的操作系统镜像
然后填写虚拟机操作系统的个人资料(Windows7的话密钥可以不填)
然后是设置CPU和内存,默认的就可以。
选择网络设置,Bridge或者NAT都可以
IO设置默认,磁盘创建新的磁盘文件
最后点一下Finish,会自动安装操作系统,等其装好(太扯淡装Win7用了10分钟)。
如果使用自动安装系统的方式,系统安装好后,会自动安装支持工具
手动安装的方式是点击菜单VM-Install VMware Tools,安装一步步跟着向导就行了。
给干净的系统创建一个快照。点击菜单VM-Snapshot-Take Snapshot,快照名字叫干净系统之类的。然后点Take Snapshot
安装Visual Studio 2010,装过了就跳过。不过要注意的是,你的VS要至少包括C++和C#两个模块,如果不全,请重新安装。
启动Visual Studio,选择菜单工具-拓展管理器
在"联机库"搜索"Visual Assist X",点击下载
下载完成后安装,下次启动VS就有效了。
用UltraISO加载WDK的镜像。(下文H: 表示虚拟光驱的盘符)
选择要安装的功能,建议配置如下:
安装目录就选择默认目录,改了的话你自己记住在哪儿。
双击"VisualDDK-1.5.6.exe"开始安装DDK
装完(很快)之后,会出现一个配置向导。如果你按照上面的步骤安装,那么WDK位置和DDK位置会自动识别,直接点下一步。
然后会让你选择VS的版本,如果你已经装有VS,它也会自动识别。
点Finish开始进行物理机的配置(可能会自动启动VS,不要动它,会自动关闭)。
然后测试你的网络连接,主机ping虚拟机,虚拟机ping主机应该能互通。
点击安装,提示重启(虚拟机),点是就可以了。重启后,关闭虚拟机(没错,关掉它)。
注意:项目位置不可以包含空格,不可以包含中文,否则你会很悲剧(无法生成解决方案)
选择一个Pnp的驱动,其他配置默认
如果没有错误,证明生成成功了。生成成功后,你可以右击项目,点击"在Windows资源管理器中打开文件夹",进入生成目录(如objchk_win7_x86\i386)可以看到成功生成的sys驱动文件。
如果不需要调试,运行该sys文件就可以使用驱动了(安装方式你得自己研究)。下面介绍调试的方法(调试会自动帮你安装驱动程序)。
注意,这步至关重要,如果你看到的PID字段上那个图标不是绿色的,或者说Pipe name没有建立出来,将不能进行内核调试。这个步骤我搞了n久找到了解决方案。如果你有这样的问题,你可以这么做:
重试上面的步骤
选择好你的调试工具的目录(如上,需要32位的调试工具)和符号目录(调试符号,到时候会自动下载到该目录)
选择Virtual Machine的调试方式,此时,应该可以选择已经加载管道的虚拟机了。其他使用默认配置(如果你手动指定了虚拟机的IP,最好再这里填写),配置好之后,点Launch。
如果有不能加载的符号,VisualDDK会弹出提醒(服务器上没有),问你下次是否跳过这些符号,点OK就行了。
点击之后,可以看到以下对话框。因为刚才填写调试配置的时候没有填写IP,现在需要重新填写才能跟虚拟机通信。
点击菜单调试-停止调试,重新选择菜单调试-Driver Launch Settings… ,将虚拟机的IP填上。
这次再点击Launch,你能成功连接了。
要结束调试,记住点击"调试"-"结束调试"。
此时你可以试试打开我的文档,把Visual Studio 2010目录底下的Addins文件夹删掉再重装VisualDDK。如果还不行,你可以试试把整个Visual Studio 2010目录删掉(注意备份你以前的工程)
正确的步骤是,在VMWare启动时,将界面停留在os 选择这里,然后点击Driver Launch Settings,设置好,然后点击Launch,然后在VMWare里进入系统。经过这样的步骤后,虚拟机系统里的驱动,才可以被正常的调试。
如果你在VMMon看到的"指示图标"不是绿色的,你需要删除%USERPROFILE%\AppData\Roaming\VirtualKD下的*.vmpatch文件
联系客服