Windows驱动程序开发环境配置_第1页
Windows驱动程序开发环境配置_第2页
Windows驱动程序开发环境配置_第3页
Windows驱动程序开发环境配置_第4页
Windows驱动程序开发环境配置_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Windows驱动程序开发笔记一、WDK与DDK环境最新版的WDK微软已经不提供下载了这里:/可以下并且这里有好多好东东!不要走进一个误区:下最新版的就好,虽然最新版是WindowsDriverKit(WDK)7_0_0,支持windows7,vista2003xp等但是它的意思是指在windows7操作系统下安装能编写针对windowsxpvista的驱动程序,但是不能在xp2003环境下安装WindowsDriverKit(WDK)7_0_0这个高版本,否则你在build的时候会有好多好多的问题.上文build指:首先安装好WDK/DDK,然后进入"开始"-〉"所有程序"-'"WindowsDriverKits"->"WDKXXXX.XXXX.X"-'"WindowsXP〃-〉〃x86CheckedBuildEnvironment在弹出来的命令行窗口中输入"Build",让它自动生成所需要的库如果你是要给xp下的开发环境还是老老实实的找针对xp的老版DDK吧,并且xp无WDK版只有DDK版build自己的demo有个常见问题:'jvc'不是内部或外部命令,也不是可运行的程序。解决办法:去掉build路径中的空格。二、下载WDK开发包的步骤1、访问MicrosoftConnectWebsite站点2、使用微软Passport账户登录站点3、登录进入之后,点击站点目录链接4、在左侧的类别列表中选择开发人员工具,在右侧打开的类别:开发人员工具目录中找到WindowsDriverKit(WDK)andWindowsDriverFramework(WDF)并添加到您的控制面板中5、添加该项完毕后,选择您的控制面板,就可以看到新添加进来的项了。6、点击WindowsDriverKit(WDK)andWindowsDriverFramework(WDF),看到下面有下载链接,OK,下载开始。下载后的文件名为:6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso将近600M大小。

也可以试试这个地址:/downloads/en/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ecl4ff直接点击下载。三、安装WDK开发包1、使用虚拟光驱加载下载完成的镜像文件,然后运行2、选择相应的系统环境,如下图:WindowsDriverKit7.L(JWndgws?WmddwtVkuWindowsXPWindcwiServer2003R2Winripw?,S^ru-QTJW8Windows-Seiver2003/"WincTow?3、接触,出现以下画面,在左侧的树形复选框中选择要安装的组件及工具,建议全部安装选择好后点击-0K||~~后面的就简单了~Pendingsetupt^sicsMicrosoftWindbwiDriverKit600JlicrosofII?ndwsDrirerEitT.1.O.T&OO-eatures-checktoinstallinchecktoremoveBuildEnviarmentsSamptesPendingsetupt^sicsMicrosoftWindbwiDriverKit600JlicrosofII?ndwsDrirerEitT.1.O.T&OO-eatures-checktoinstallinchecktoremoveBuildEnviarmentsSamptesToolsHefei(DocijnentaticinColection)ZDebuggingToolsforWindows0DeviceEimuldtjonFrameworkZWindowsDeviceTestingFramework0Fl!DeveiopmetnlEnvironmentg■zFeatureStatus-featurenode出q脾fordetailInstal:wnetlfcs_K86freInstail:wpdsarrclesInstal:卿口cftools_ia64freInstal:w口dtools_>64freirtslal;wpdtools_3(86freInstallwsdtooLiae^freInstal:wsdtoQl_)«64freIr^hl:wsdtool_K86freInstaLwxpibs_3(96freCfcjktheOKbuttontoexecutethesetasicsandupdateUneoonfiqirationqF由氐□omputer.MicrosoftWindtowsDrivaKit600Twtjhbf^is,^mptes,d(Kuni?nt5tionandresource?toIxiWDriver^for:WinclOwJ7,WtidOwSVKtSjWidowsXP±WtidawiSaver2009艮2」WiidcwsSaver2008andWindow?Serra2003.Fqiaddition*information」dmmseviewtheAboutc^IqqbcK(ALTSPME+A).-dHelpIundoIOKCancelI4、然后一路回车即可。5、安装过程的注意事项,只有两点:(1)安装到一个简单一点的路径,避免在特殊情况下需要配置路径时麻烦,比如C:\WinDDK。尤其要避免在路径上有空格,否则可能出现编译问题。(2)一定要选择"完全安装",否则可能错过一些代码例子。四、驱动开发环境搭建(VS2008+WDK+DDKWzard)在VS2008IDE中没有提供驱动开发的项目选项,当然可以用普通工程,然后手动在VS中配制相应的编辑连接以及调试选项,但是如此只来,每次都要重复些复杂的步骤。在/网站上发现了一个很好用的辅助工具DDKWizard,能够方便地对开发环境进行配置,真是适合想我这样懒人啊,工具的作者也自称是因为懒惰才开发此工具,看来懒惰是推动科技发展的动力一点不假。DDKwizard安装需要三个文件:DDKWizard主程序:安装VS2008的项目模板ddkwizard_setup.exeDDKBUILD.CMD:应该是用VS2008调用WDK编辑编译器的一系列脚本dkbuild_cmd.zipDDKBUILD.BAT:估计也是是用VS2008调用WDK编辑编译器的一系列脚本ddkbuild_bat.zip1、安装DDKWizard1)安装ddkwizard_setup,默认安装,一路Next点过即可,将DDKBUILD.CMD与DDKBUILD.BAT考到WDK的安装目录,或者其它目录也行,只要在后续的设置就行。如:我将其放在wdk的目录下,如图2)设置环境变量a)添加相应的环境变量,如要开发XP系统下的驱动则添加WXPBASE,变量值为WDK的根目录path:系统变量需将G:\WinDDK添加到Path变量中否则编译时会出现找不到命令的错误新建系统变量变量名:WLHBASE,图中我加了两个,只需第一个即可。变量值为:G:\WinDDK\7600.16385.0修改为你安装的wdk路径如下图b)Win7:如果为其它系统开发驱动则填写相应的环境变量NT4.0NT4BASEwindows2000——W2KBASEwindowsXPWXPBASEwindows2003--WNETBASEwin7/2008R2——W7BASE

2、打开VS2008,菜单工具->选项->左侧项目和解决方案->VC++目录->右侧可执行文件下拉列表->添加一项D:\WINDDK(根据你的实际情况,就是第1步中DDKBUILD.CMD与DDKBUILD.BAT所在的路径),增加WDK的根目录如图:到目此所有的设置工作都已完成。自定义安装DDK目录的修改DDKW文件内容替换c:\WINDDK\ddkbuild.cmd为你DDK安装路径,另替换系统对应支持DDK目录,我的安装了最新的WINDOWS7的DDK,替换如图所示。

Win7:3、编写简单的驱动程序并测试我们的驱动开发环境1)在VisualC++选项卡中多了DDKProject的项目类型,选择相应的模板添加我们的项目,点击确定2)确定后出现DDKWzard的项目创建页面,在ChoosetheDDKBUILDyouwanttouse"中选择ddkbuild.cmd"或者ddkbuild.bat",在其下面选择我们要为Who(2000,xp……)开发的驱动。

W7:替换默认路径c:\WINDDK\ddkbuild.cmd为自定义G:\WINDDK\ddkbuild.cmd着h签|G:'ProgramFilesVDDK^lzard憶码*.+T団执行文件®歸辑文件结杲中搜索匚]区分夬小写整词壬找搜索和替换选项搜索类型修改类型•短语二囈行正则克达式无。替换在前面插几在后面插人刪除清空U:\WINDDK\ddkbuild.emd翡插為gU:\WINDDK\ddkbuild.emd翡插為g:\WINDDK\ddkbuild.^:md阳搜索弓称路程找到属性时间扭J类型结果?defaiilt.htmG:\Frogi_:=iiriFilesVDDKWi...0A2010/1/1...25.2KBHTML..•修改再default,htmG:'FtpgramFileS\DDK^i...0A2010/1/1..25.2ECBHTML..•修改■defaiilt.htmG:\Frogi_:=iiriFileADDEWi...0A201D/l/h..^.2KBHTML..■幅改?default.htmG:\.Frogi_:=miF订esVDDEWi...0A玄01曲扣25.EKBHTML...偉改.default,htmG:\Frogi_:=iiriF订esVDDKWi...0A如10/171...25.2KBHTML..修改文井:default,htm路径:G:文井:default,htm替换默认路径c:\WINDDK\7600.16385.0-》g:\WINDDK\7600.16385.0DDKWizard1.3.0|DDKBUILDprojectcreation-DriverlWelcometoDDKWizardThiswizardcreatesaDriverprojectforDDKBUILD(fromOSR.)andthespecifiedDDKChooseth已DDK0JILDyouwanttouse:DDKBUILD.CMDzl“Usepropertysheet文件(W)报告(X)方案(Y)耦助(Z)路径3KE悶W—EI山kmW.I掩码*.*▼団£DDKWizard1.3.0|DDKBUILDprojectcreation-DriverlWelcometoDDKWizardThiswizardcreatesaDriverprojectforDDKBUILD(fromOSR.)andthespecifiedDDKChooseth已DDK0JILDyouwanttouse:DDKBUILD.CMDzl“Usepropertysheet文件(W)报告(X)方案(Y)耦助(Z)路径3KE悶W—EI山kmW.I掩码*.*▼団£[□结果中機索□区分大小写□整词|查找|搜索和替换|选项〔搜索类型Q短语多行正则表达式WhichDDK(s)/V/DK(s)doyouwanttouse:Windows7/2008ServerR2WDKWindowsVista/2008ServerWDKWindows2003DDK|WindowsXPDDK厂Support64bitbuilds疋Override(fulQDDKBUILDpath:|C:\WINDDK\ddkbuild.emd~厂Overridewxpbase(WindowsXPDDK):|c:WVINDDK\2600.1106厂OverrideWNETBASE(Windows2003DDK):IC:\WIHDDK\3790.1830~C:\WINDDK\7600.16385.0修改类型「无。替换[在前面扌i¥PrrCreatePREfastconfiguration(VOnly,checked)Strictertypechecking(.cpp)Auto-incrementbuildnumberCreatepre/postbuildscriptsCreatemakefile.incCreatemessagefile(.me)I-"OverrideWLHBASE(Vista/2008ServerWDK):|C:\WIN£>DK\6001.18002~C:\WWDDK\7600.16385.0©2006-2009byOliverSchneiderPleasevisitmyhomepage:'2WDK):或1期搜索圈修改选定N曬修改全部名称路径找到厲性时间FilesVDDKWFiles\DDKWFilesVDDKWFilesVDDKW-imLskimEMLG:\Programg:\WINDDK\7600.16385.0G:\ProgrwnG:\ProgramG:\Programdefault,htm1A2010/1/1.1A2010/1/1.1A2010/1/1.1A2009/12/.Jh这里可以保持默认设置我这里修改了ddkw的默认设置G:\ProgramFiles\DDKWizard\Wizards\Driver\HTML\1033\default.htm的内容Which<u>D</u>DK(s)/WDK(s)doyouwanttouse:v/labelxbr/>

vselectsize="4"id="DDK_CHOICE_LISTBOX"multiple="multiple"style="width:70%;">voptionvalue="3">Windows7/2008ServerR2WDKv/option>voptionvalue="2">WindowsVista/2008ServerWDKv/option>voptionvalue="1">Windows2003DDKv/option>voptionvalue="0"selected="selected">WindowsXPDDKv/option>v/select>就是voptionvalue="0"selected="selected">WindowsXPDDKv/option>其他配置(转):对于原版的那个,另我不爽的有以下几点:默认cpp,虽然可以改,但是还要点一下。默认选中CreatePREfastconfiguration,不爽。默认选中两个ddk,不爽。代码太乱了。5,东西太杂了。4、开始开发使其默认不选中"Strictertypechecking(.cpp)"打开DDKWizard目录下的DDKWizard.ini文件,做如下修改:checkbox.STRICTERCPP的值为false。不选中"CreatePREfastconfiguration"打开DDKWizard.ini做如下修改:checkbox.PREFASTCONFIG=falsecheckbox.PREFASTCONFIG_ONLYCHECKED=false使其只选中一个ddk用记事本打开Wizards\Driver\HTML\1033\Default.htm搜索一下“Ionghorn”,然后做如下修改:voptionvalue="0">Windows2000DDKv/option>voptionvalue="1">WindowsXPDDKv/option>voptionvalue="2">Windows2003DDKv/option>voptionvalue="3"selected="selected">Longhorn/VistaWDKv/option>修改模板默认模板在Wizards\Driver\Templates\1033下,形式比较简单,自行参考原版进行修改即可。需要添加删除文件修改Templates.inf中的相应文件即可,很是方便。这样搞完以后,就可以一键生成自己熟悉的驱动模板,很爽。最后Finish,这样就可以开始写我们的驱动程序了这里为了演示••我们什么也不做只打印输出"HelloEping"简单驱动程序代码如下注意保存为*.c格式我这里保存为test.c2)2)6、复制下面的代码:#include<ntddk.h>VOIDDriverUnload(PDRIVER_OBJECTdriver){DbgPrint("HelloEping\r\n");}NTSTATUSDriverEntry(PDRIVER_OBJECTdriver,PUNICODE_STRINGreg_path){DbgPrint("Hello,Eping!");driver->DriverUnload=DriverUnload;returnSTATUS_SUCCESS;}[注意:sources文件中TARGETTYPE=默认生成的代码需要改为TARGETTYPE=DRIVERSOURCES=默认也为空我把它改成SOURCES=test.c即可成功编译出否则编译成功后你会发现找不到驱动文件。]1)在解决方案中便是由DDKWzard为我们自动生成的一个简单的驱动程序框架。3)最后点击F6生成解决方案,成功生成后在项目的objchk_win7_x86\i386文件夹下会生成几个文件driver1.obj—编译生成的2进制文件driverl.pdb—用于调试时使用的符号文件vc90.pdb―-用于调试时使用的符号文件driverl・sys—就是我们拭目以待的驱动程序文件,终于见到久违的驱动了~~~!!!7、Win2003与VS2005下DDK环境搭建环境:安装环境:Windows2003;开发环境vs2005到迅雷上下载win2003DDKiso的文件下载WindowsServer2003SP1安装iso文件格式的DDK安装WindowsServer2003SP1安装DDK后,去/下载ddkwizard_setup_vl.2.0a、ddkbuild_bat.zip、ddkbuild_cmd.zip。拷贝DDKBUILD.bat和DDKBUILD.cmd到DDK安装根目录,如我的是C:\WinDDKo将上述文件(DDKBUILD.bat和DDKBUILD.cmd)的路径添加到系统的path变量(右击我的电脑,系统属性/高级/环境变量/系统变量/path变量双击修改值)。根据你所安装的DDK的不同版本添加不同的变量到系统变量中。右击我的电脑,系统属性/高级/环境变量/系统变量/新建:2000DDK则变量名为:W2KBASEXPDDK则变量名为:WXPBASE2003sp1DDK则变量名为:WNETBASE这里我的是WNETBASE(值为c:\WinDDK\3790.1830)5)启动vs2005打开菜单中的工具——选项,弹出选项对话框。选择左边的项目和解决方案一一VC++目录,在右边的显示以下内容的目录下拉列表中选择可执行文件,在下面列表框中添加上面DDKBuild.bat文件所在的路径(这里是C:\WinDDK),同样设置包含文件和库文件设置可执行文件(c:WinDDK)设置包含文件(c\WINDDK\3790.1830\inc\wnet)设置库文件(c\WINDDK\3790.1830\lib\wnet\i386)开始安装DDKWizard,在安装的最后一步你可以选择编辑ddkwizard的配置文件。现在重新打开VS2005会发现在新建项目里面有DDKProject的选项了,里面就可以建立驱动工程来编写驱动程序了。比较成功的安装方法链接:/wangyue4/archive/2009/12/15/5012845.aspx将驱动程序的所有源文件加入项目中。新建DDKProject之后修改SOURCE文件:其中TARGETTYPE=后面加DRIVER;加入以下两行:DDKROOT=D:\WINDDK\2600;#这里要和安装目录一样INCLUDES=$(DDKROOT)\inc;加入[源文件]后还要在sources文件里的SOURCES=后面加上[源文件名]。比如:SOURCES=Helloworld.c程序调试成功后,也许会弹出一个可执行文件的对话框,这时在文件的I386,下查到tsadmin(你的可执行文件)。浏览指向,这时你就可以进行使用。设置完毕就可以打开VS2005了。新建-项目-可以看到有了个DDKproject,选择Driver,根据选择选定需要的DDK。Finish6.项目属性-NMAKE-IncludedSearchPath-添加C:\WINDDK\3790.1830\inc\ddk\wxp这里根据自己需求选择7.0K,F7吧。进入项目目录就能看到生成的objchk_wnet_x86目录以及里面的.sys了。8、使用VPC建立驱动程序调试环境(我可不想看到本机蓝屏呀)这里建立虚机调试驱动程序,仅仅是我摸着石头过河,究竟能不能成功,还要好好试试,呵呵建立一个干净的WindowsVista虚机安装WDK开发包为VPC建立命名管道以方便调试:

以管理员身份运行命令提示工具,在命令行中输入:bcdedit/copy{current}/d"Debug"重启计算机,在启动菜单已经添加了一项DEBUG以管理员身份运行命令行提示工具,在命令行中输入:msconf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论