许多驱动程序开发都将环境架设在VC上,可是偶的本本上好不容易安了个vs2008,舍不得删啊,因此毅然选择vs2008,抛弃vc。要开发驱动,DDK是少不了的,但是现在操作系统日新月异,老DDK是不能适应国家下一个“五十年计划”滴~~于是,我又一次毅然决然选择WDK代替DDK,呵呵,还是跟着微软大虾们的足迹,往前看吧...... 先弄明白windows驱动的前因后果吧,这是选择开发环境和开发过程的基础~ 1.首先,开发WINDOWS下的驱动程序,需要一个专门的开发包,就像开发JAVA程序,需要一个JDK,开发WINDOWS应用程序,需要SDK,现在开发WINDOWS下的驱动程序,我们们需要一个DDK/WDK。 2.开发驱动的工具包DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的区别: 1).95/98/ME下,驱动模型为:Vxd,相关资料可以看《编程高手箴言》的前几个章节,里面有很详细的介绍,虽然这个东西已经过时,但大概看看还是会增长见识的。 2).2000/XP/2003下,Windows采用WDM驱动模型(Windows Driver Model),开发2000/XP/2003的驱动开发包为:DDK。 3).Vista及以后版本,采用了WDF驱动模型(Windows Driver Foudation),对应的开发包:WDK。 其实WDK可以看做是DDK的升级版本,现在一般的WDK是包含以前DDK相关的功能,现在XP下也可以用WDK开发驱动,WDK能编译出2000-2008的各种驱动。 3.Vxd驱动文件扩展名为:.vxd。 WDM和WDF驱动文件扩展名为:.sys。 下面将整个环境搭建过程描述如下: ******************************************************************************************* 一、安装阶段 1. (虚拟机也可以不安装) 安装WinXP虚拟机,VMware,系统安装的是WinXP_Pro_SP2.iso。 下载地址:http://58.251.57.206/down?cid=34B1A802316A542966F8D99F233970B8FC150C17&t=2&fmt=&usrinput=vmware workstation 7&dt=1002022&ps=0_0&rt=0kbs&plt=0 安装虚拟机可以用于调试,避免在真机上调试的时候,频繁出现蓝屏,重启等现象。自己的环境,安全第一啊~~安装好虚拟机后,还需要在虚拟机上安装上XP系统。 2. 安装Visual Studio 2008,安装前请留出足够大的空间,至少7G。 3. 安装WDK。注意安装时会选择要安装的内容,此时不要安装DSF。当然啦,安全前得下载啊~~ 这个现在可以再微软的官网上申请下载,给大家个网址吧https://connect.microsoft.com/default.aspx,这是connect的网址,你需要注册一个liveID,然后在左侧栏里找到“开发人员工具”,然后就能找到WDK了,申请,下载,OK~ 传说WDK支持Windows 7, Windows Vista, Windows XP, Windows Server 2008 R2, Windows Server 2008, and Windows Server 2003.等等版本系统,不仅包含了原有DDK,还貌似包含了IFS的头文件,哎哟,貌似很有用呢,能适应长期发展.....(关于WDK的介绍与安装,请参考偶的后续博文~~) 4. 安装srvinstw.exe,用于安装生成的服务。 5、 安装DDKWIZARD,安装它主要是为了使你的vs支持驱动程序开发。并将其中的ddkbuild.cmd,和ddkbuild.bat两个文件放置到WDK的安装目录下,也就是C:/WinDDK下 ********************************************************************************************* 二、配置阶段 0、 我的电脑-》属性-》高级-》环境变量》用户变量中 Path 后添加 C:/WinDDK/DDKBUILD.bat;C:/WinDDK/DDKBUILD.cmd;C:/WinDDK 然后再在系统变量中新建变量,根据不同的系统,选择下列中一个: 2000 DDK: W2KBASE XP DDK: WXPBASE 2003 sp1 DDK: WNETBASE 【注】变量名应与你要使用的DDK版本相符,比如我要开发XP驱动,使用XPDDK,所以变量名为WXPBASE,其值为:C:/WinDDK/7600.16385.0 1、打开VS2008,在菜单上选择"工具"->"选项"弹出"选项"窗口,选择"项目和解决方案"->"VC++目录","显示以下内容的目录" "可执行文件"中添加 "C:/WinDDK" "C:/WinDDK/7600.16385.0/bin/x86/x86" "C:/WinDDK/7600.16385.0/bin/x86" "C:/WinDDK/7600.16385.0/tools/pfd/bin/bin/x86" "包含文件"中添加 "C:/WinDDK/7600.16385.0/inc" "C:/WinDDK/7600.16385.0/inc/api" "C:/WinDDK/7600.16385.0/inc/crt" "C:/WinDDK/7600.16385.0/inc/ddk" "引用文件"中添加 "C:/WinDDK/7600.16385.0/lib/wxp/i386" "库文件"中添加 "C:/WinDDK/7600.16385.0/lib" "C:/WinDDK/7600.16385.0/lib/wxp/i386" "源文件"中添加 "C:/WinDDK/7600.16385.0/src" 以上添加完毕直接按"确定"关闭"选项"对话框 如果编译出现C2144错误的时候,请把以上添加的文件向前移动(就是点击"选项"对话框中的向上的箭头按钮) 2、设置虚拟机的可调模式: 1)打开boot文件的方式可以选用以下两种: 1.我的电脑→属性→高级→“启动和故障恢复-->编辑。 2.运行→“msconfig”→boot.ini boot.ini的修改如下: 在虚拟机中,编辑boot.ini文件,在末尾添加一行:multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200 2)保存后power off虚拟系统。在左边栏中选择Edit virtual machine settings-->add-->Serial Port-->Output to named pipe,此时出现三个文本框,依次填入://./pipe/com_1”和“This end is the server.”,第3个修改为“The other end is an application.” 3)保存。配置真实机。创建windbg.exe在桌面的快捷方式,属性-->目标-->"C:/WINDDK/.../windbg.exe“ -b -k com:port=//./pipe/com_1,baud=115200,pipe 4)可以选择配置真实机串口:我的电脑-->管理-->设备管理器-->端口com-->com1-->属性-->端口设置-->每位秒数-->115200 5) 启动windbg.exe, 在file-->symbol file path ,添加微软官方符号表srv*c:/symbols*http://msdl.microsoft.com/download/symbols 以及你自己工程中生成sys文件的目录(就是你要编译的驱动服务文件的目录,需要事先生成要调试的驱动服务.sys文件,并将.sys文件拷贝到虚拟机中),我的是E:/projects/Tests/first/objchk_wxp_x86/i386 ,两路径用分号分隔。勾选reload 6)启动虚拟机,将sys文件提供的服务用srvinstw.exe安装到虚拟机中。安装中,选手动,NT驱动不用填 7)重启虚拟机,选择调试模式,启动真实机桌面设置过参数的windbg快捷方式,此时如果出现 -------------------------- WinDbg:6.10.0003.233 X86 --------------------------- Could not start kernel debugging using com:pipe,port=//./pipe/vpcdebug,resets=10 parameters, Win32 error 0n2 Could not start kernel debugging using com:pipe,port=//./pipe/com1,resets=10 parameters, Win32 error 0n2 系统找不到指定的文件。 说明虚拟机还没有启动起来,只需要重启windbg。在系统出现中断时,在windbg中输入g。 8)进入到系统后,运行-->cmd-->net start 服务名 就可以启动你的驱动服务了。 **************************************************************************************************************************** 新建项目: 1) VS2008-->新建项目-->DDK project-->Driver 2)F7,运行,如果没有生成sys,或者出现任何对话框,说明你配置出错啦~~ 有可能是在TOOL--->选项-->项目与解决方案-->VC++目录-->可执行文件 下,缺少了你放置DDKwizard的ddkbuild.cmd文件的目录,请填上。或者是你的环境变量没设对....
VS2008+WDK 文件过滤驱动程序 开发环境配置
最新推荐文章于 2019-06-04 09:30:38 发布