




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Windows驱动程序开发笔记一、WD与DDK环境最新版的WDK微软已经不提供下载了这里:可以下并且这里有好多好东东!不要走进一个误区:下最新版的就好,虽然最新版是Win dows Driver Kit (WDK) 7_0_0,支持windows7,vista 2003 xp等但是它的意思是指在windows7操作系统下 安装能编写 针对windows xp vista的驱动程序,但是不能在xp 2003环境下安装 Windows Driver Kit (WDK) 7_0_0 这个高版本,否则 你在 build的时候 会有好多好多的问题.上文build指:首先安装好 WDK/DDK然后进入&q
2、uot;开始"->"所有程序"->"Windows Driver Kits"->"WDK XXXX.XXXX.X" ->"Wi ndows XP"->"x86 Checked Build Environment"在弹出来的命令行窗口中输入"Build",让它自动生成所需要的库如果你是要给xp下的开发环境 还是老老实实的 找针对xp的老版DDK卩巴,并且xp无WDK 版 只有DDK版 build自己的demo有个常见问题:'jvc
3、'不是内部或外部命令,也不是可运行的程序。解决办法:去掉 build路径中的空格。二、下载WDK开发包的步骤1 访问 Microsoft Co nn ect Web site 站点2、使用微软Passport账户登录站点3、 登录进入之后,点击站点目录 链接4、 在左侧的类别列表中选择开发人员工具 ,在右侧打开的 类别:开发人员工具 目录中找到 Windows Driver Kit (WDK) and Windows Driver Framework (WDF)并添加到 您的控制面板中5、 添加该项完毕后,选择您的控制面板,就可以看到新添加进来的项了。6、 点击 Windows Dri
4、ver Kit (WDK) and Windows Driver Framework (WDF),看到下面有下载链接,OK下载开始。下载后的文件名为:6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso 将近 600M大小。也可以试试这个地址: nl oads/e n/details.aspx?displayla ng=e n&FamilylD=36a2630f-5d56 -43b5-b996-7633f2ec14ff 直接点击下载。三、安装WDK开发包1、使用虚拟光驱加载下载完成的镜像文件,然后运行2、选择相应的系统环境,如下图
5、:Windows Driver Kit7.1.0Wrrttows 7Windewi vhlaWirwknM XPWwidaws Server 2&06 ft?Wiricfo4nSr< ver 2008Wind«M Stnw 2001* Windows3、接触,出现以下画面, 在左侧的树形复选框中选择要安装的组件及工具,建议全部安装,选择好后点击一OKII 后面的就简单了 U icrVi&dloiv% Ikriver Kit TIDT500 “IFetu&s - check to nstalL inched; to removeMcroft Wrdows
6、Driver Kit 600yFiJ Devetopmerit Environment 刁 Buid Enviormenu 0 Samples|< ToolsM ne© (Documentation ejection)Debugging Tools for Windows Device Srnubtion FrameworkWrxiows Device Testing Frarnework119. Instai: wnetliK)(06fre120. wpdsniples121. Instil:帅dtookj网呼e122. InstJ: wpdtookjc鬧和号1
7、23. Ins tai: wpdtools_x86fr&124. InsM; W5dtod_ia64fre125. Inst J: wsdtooixbfre126. Inst J: w$dtool_K86fre127" Install wxpib5_x36freCkk the OK button to execute these tgs nd ipddte the confignatiori of ths computer.Moosoft Windows Orlvet Kjt Z 1.0.7600For additonai infbtmaticin, please view
8、the About dialog box (ALT-SPACE + A),Help | Uhdo |OK | CancelToafc ibrares,documentation and resources to buld Driver; for:Wirxiows A windows VsU, Wlnctows XP, wridows Saver 2006 R2> Wrdows Server 2008 and Windows Server 2003.4、然后一路回车即可。5、安装过程的注意事项,只有两点:(1)安装到一个简单一点的路径,避免在特殊情况下需要配置路径时麻烦,比如C:WinDD
9、K。尤其要避免在路径上有空格,否则可能出现编译问题。(2) 定要选择”完全安装”,否则可能错过一些代码例子。四、驱动开发环境搭建(VS2008+WDK+DDKWzard在VS2008IDE中没有提供驱动开发的项目选项,当然可以用普通工程,然后手动在VS中配制相应的编辑连接以及调试选项,但是如此只来,每次都要重复些复杂的步骤。在 网站上发现了一个很好用的辅助工具DDKWizard ,能够方便地对开发环境进行配置,真是适合想我这样懒人啊,工具的作者也自称是因为懒惰才开发此工具,看来佈惰是推动科技发展的动力I 一点不假。* DDKwizard 安装需要三个文件:DDKWizard 主程序:安装 VS
10、2008 的项目模板ddkwizard_setup.exe* DDKBUILD.CMD :应该是用 VS2008 调用 WDK编辑编译器的一系列脚本 dkbuild_cmd.zip* DDKBUILD.BAT :估计也是是用 VS2008 调用 WDK编辑编译器的一系列脚本ddkbuild_bat.zip1、安装 DDKWizard1)安装 ddkwizard_setup,默认安装,一路 Next 点过即可,将 DDKBUILD.CMD与DDKBUILD.BAT 考到 WDK的安装目录,或者其它目录也行,只要在后续的 设置就行。如:我将其放在wdk的目录下,如图_j7800 16385. 1地
11、址WinDDKddkbuild. bitddkbuild md2)设置环境变量a)添加相应的环境变量, 如要开发XP系统下的驱动则添加 WXPBASE ,变量值 为WDK的根目录path :系统变量需将G:WinDDK添加到Path变量中否则编译时会出现找不到命令的错误新建系统变量变量名:WLHBASE ,图中我加了两个,只需第一个即可。变量值为:G:WinDDK7600.16385.0修改为你安装的 wdk路径如下图ADfllH的ffl户吏虽-:TEHF IMP疳C; DocwwentE wd SettinesADIHISI .鵬(3)值*IMPc:Mfliffl)awsiEiflrVSgO
12、OOIflfflXiQLSG; VProersm Fil吃'】urowoft Vm.I wind.irc:im(nrsf 虹JG®C:tiTj)D(EX75QQ. 1633 0;JKFE 陋 Eg: iiiiiiinK76db.ii|.Fr"镐帝&J删除心确疋取消C: VDocunenla aihd Stttit:sADNI .坏境平甘0:霊示収下內容的目录:项目珀解;夬方军'Vi仞卜可1拆文悴卜1當规VC+目录£1HA Xi *LfJVC+项目设詈治 FVinDDKj*运行5(VCInstaHDir)bin1.忸 MSSc Vindoro
13、idkpir)binb) Win7 :如果为其它系统开发驱动则填写相应的环境变量NT 4.0NT4BASEwin dows2000 -W2KBASEwin dowsXP -WXPBASEwin dows2003 -WNETBASEwin7/2008 R2 -W7BASE至茫窪'三环境龙基变重)P*USERNAME3TSTEIMVS90COMH7ODLS內tFrogr泗 Filts'kMi crosoft Visu .windir賈百系统吏重刃斬逢编辑删除2). i计算机名砸件高级系细呆护远程至茫窪'三至茫窪'三取消确走2、打开 V 2008,菜单工具|->
14、选项|->左侧项目和解决方案|-> VC+目录|->右侧 可执行文件I下拉列表-> 添加一项 D:WINDDK( 根据你的实际情况,就是第 1步中 DDKBUILD.CMD 与DDKBUILD.BAT 所在的路径),增加 WDK的根目录如图:到目 此所有的设置工作都已完成。自定义安装DDK目录的修改 DDKW 文件内容 替换c:WINDDKddkbuild.cmd 为你DDK安装路径,另替换系统对应支持DDK目录,我的安装了最新的 WINDOWS7的DDK,替换如图所示。取消 Visual C+ATLCLR 幣規 MFC 智貶设苗 测试Win32DDK ProjectJ
15、 游輙目D MflBiSs 分布式琴统 其顾目绘t测试项目Visual Studio已安藉的模板4 Driver3 Native Application ©Win32 DLL我的根板3建索联机樓板§ Empty driver QI 1n32 CUI ApplicationCreates an empty driver project using DDKBUILD and the specified DDK.顶目趙(£):槿板CD:NET Framework 3.5 E3 曰MET Framework 3.5取消取消取消Win7 : 选项皿目応翟三方圭VC+目录 些
16、井彌性能王具停畑昔盟HTML设计器Office工呈Windows筍復设汁莽明武工月工咎餐计託就工目站庫工巨立坤坂化平台(P):显示LU下内容的目录(S):Win32* 可执行文件1 VLBlfUft$ (Wi nd owSd kDirAbi n1 (V&J nstallDirjCom mo n7T oo lsbic$ (.VSJ nstahDi rCom mo n 7too 15$ ty£i nstallD ir)Cam me n7i d e$(ProgramFiks)HTML Htlp Workshop $ Fra mevwrkS D <0 i r) bln1 fFr
17、a m ewo rkD irlt Fra meworkVeri r j ifVSlnstallDSr)$ i System Ro 0t)£ysWov;64 Si'FxCocDtrl*律m卜可塌行文祥目豪生咸VC+项目朋苗.塑问执轩知撷蠅用就蹈径.与坯境證 PATH相龙 £L3、编写简单的驱动程序并测试我们的驱动开发环境1) 在Visual C+ 选项卡中多了 DDK Project的项目类型,选择相应的模板添加我们的项目,点击确定2) 确定后出现 DDKWzard的项目创建页面,在一Choose the DDKBUILD youwant to use 中选择一ddk
18、build.cmd 或者一ddkbuild.bat ,在其下面选择我们 要为Who (2000 , xp)开发的驱动。W7 :替换默认路径 c:WINDDKddkbuild.cmd 为自定义 G:WINDDKddkbuild.cmd洛経 G; Fr(jgram Firar d餐码*. * *団执行文件®编辑文件i结果中搜秦区分大小写:整同搜索和普换选项搜索类型僱改类型。短语 多行正刚表达式无。替瓠在前面插入在后面插入删曉 憲空C:HNDDKddkbuild. aidg:WIHDDKddkbuild. emdMfe僱改全部y刪除项目®隐赫歹懐勾称路径栈到属性时间大小 类型 结
19、果'htm G; Fjro®raiii Fil毛詁DDKW】,02010/1/1. .25.2 KB HTML 僱改.t.htm GAFrogram Fi1«sDDIl.A 2010/1/1.25. Z KE HTML1 dsfauilt. htmG: ProgramF订dDDKTi.0A2010/1/1.25.2 KEHTML .'default htmG: FrogxamFilesDDCTi.0A2010/1/1.£5.2 KIHTML .! default, htmG: VPragraiiFiles'kDIOi.0A2010/i/l.
20、25 2 KEHTML .文件:default, htnG: Pragj-anh FileEDDKWi zar d.Vi zaz-dsEbptySrtIHTNLV 1033替换默认路径 c:WINDDK7600.16385.0 -g:WINDDK7600.16385.0DDKWizad U.Q | DDKBlflLD prefect <rM(;(xi - D険討1(J EWelrnmie to DDKH1 z ard旳 盘旳亦轨m审出Replan :耒注1罚StmW IfiSlX) 75EW «St®01藉径3案申摆幕 麵T端席牡SI匚卜匸un theL:CK
21、3;J-.2-D >el -ant to lee:DciffiULD云(P UM Efoprty 火et0Jhidi D3Cfe)WW(s) da you want to lec:hdwi. VutSOOB Nrw VJDK 时如附2043 COK Jiidawi XPDPK 厂 Support 电血 buridsJ Creite- PREast ouifigj-atKw ( OrtS dirked) 宙 S.trk.ter hps chedtng . epp P Auta+KT-ejrnt bU<J nwrtbertnMte pripgst btdd nenpes厂 Qte 3U
22、±«fll« . 1QCCneate- message fie- ( ite)<” gZ 何 D&SJLDpath; |cWG5DKkM4*f 4厂 "cr r.c HXPBJtSE WTtdoMK XP QOKji厂TfHZrBJkSE 囲:rdbw 2003 C(Xl:厂 Qtfntk? LHKksE|C ;A WCKSCD' IK:-:p 4a:中Itr追碍.昴圈2丹3XHC iTTffilD76DD J6335 n甘 MrHfUD7EOO. 963AS. 0g 2CW-2CO9 by CMivcr &dine
23、7;<fer Pfeg址 visit my twepsge: httpy/MSJf 曲 ntH惟改绘无 *普换住箭面HEi崔时冃眼hiGFilsMjgPi1札SQld/l/L思htA庄u TLltEVDBBNi.isosa/i/iffi <kfvd.l. h-MsU erw FiltsMJDOlil札2010/j/L£ /Ufnl.L. h.tn(5:它"孕址 FlL魁SDUh.iASOM/ifi/6色惶及德宁Z-住锻全印I两然吾这里可以保持默认设置我这里修改了 ddkw的默认设置G:ProgramFilesDDKWizardWizardsDriverHTML1
24、033default.htm 的内容Which <u>D</u>DK(s)/WDK(s) do you want to use:</label><br/>vselect size="4" id="DDK_CHOICE_LISTBOX" multiple="multiple" style="width:70%;">voption value="3" >Win dows 7/2008 Server R2 WDK</optio n>
25、;voption value="2">Wi ndows Vista/2008 Server WDKv/optio n>voption value="1">Windows 2003 DDKv/option>voption value="0" selected="selected">Wi ndows XP DDKv/optio n></select>就是 voption value="0" selected="selected"&g
26、t;Windows XP DDKv/option>其他配置(转):对于原版的那个,另我不爽的有以下几点:1,默认cpp,虽然可以改,但是还要点一下。2,默认选中 Create PREfast con figuratio n,不爽。3,默认选中两个ddk,不爽。4,代码太乱了。5,东西太杂了。4、开始开发1) 使其默认不选中"Stricter type checking (.cpp)"打开DDKWizard目录下的DDKWizard.ini文件,做如下修改: checkbox.STRICTERCPP 的值为 false。2) 不选中"Create PREfas
27、t con figuration”打开 DDKWizard.ini做如下修改:checkbox.PREFASTCONFIG = false checkbox.PREFASTCONFIG_ONLYCHECKED = false3) 使其只选中一个 ddk用记事本打开 WizardsDriverHTML1033Default.htm搜索一下“Ionghorn, ”然后做如下修改:voption value="0">Wi ndows 2000 DDKv/optio n>voption value="1">Wi ndows XP DDKv/op
28、tio n>voption value="2">Wi ndows 2003 DDKv/optio n>voption value="3" selected="selected">Longhorn/Vista WDKv/option>4) 修改模板默认模板在 WizardsDriverTemplates1033 下,形式比较简单, 自行参考原版进 行修改即可。需要添加删除文件修改 Templates.i nf中的相应文件即可,很是方便。 这样搞完以后,就可以一键生成自己熟悉的驱动模板,很爽。5、最后Fini
29、sh,这样就可以开始写我们的驱动程序了这里为了演示.我们什么也不做只打印输出"HelloEping"简单驱动程序代码如下注意保存为*.c格式我这里保存为test.c6、复制下面的代码:#include<ntddk.h>VOID DriverUnload(PDRIVER_OBJECT driver)DbgPrint("HelloEpingrn");NTSTATUS DriverEntry(PDRIVER_OBJECT driver,PUNICODE_STRING reg_path)DbgPrint("Hello,Eping!"
30、;);driver->DriverUnload=DriverUnload;return STATUS_SUCCESS;注意:sources文件中TARGETTYPE=默认生成的代码需要改为 TARGETTYPE=DRIVER SOURCES= 默认也为空 我把它改成SOURCES=test.c 即可成功编译出否则编译成功后你会发现找不到驱动文件。1)在解决方案中便是由 DDKWzard 为我们自动生成的一个简单的驱动程序框架。2)-Driver TIP二解决方宴"Driwl* Q :-:.卫 Dr I v»r i. ttt巨f Kvder FlitsN buildnw
31、btr h 巾 Vriv*rL h jJ 加啊*h b 勺五翼h 叵 Lj3) 最后点击F6生成解决方案,成功生成后在项目的objchk_win7_x86i386文件夹下会生成几个文件driverl.obj编译生成的2进制文件driverl.pdb用于调试时使用的符号文件vc90.pdb用于调试时使用的符号文件driver1.sys 就是我们拭目以待的驱动程序文件,终于见到久违的驱动了7、Win2003 与VS2005 下DDK 环境搭建 环境:安装环境:Windows 2003 ; 开发环境vs2005到迅雷上下载 win2003 DDK iso 的文件下载 Windows Server 2
32、003 SP1安装iso文件格式的 DDK安装 Windows Server 2003 SP1 安装 DDK 后,去 下载 ddkwizard_setup_v1.2.0a、 ddkbuild_bat.zip、ddkbuild_cmd.zip。 拷贝 DDKBUILD.bat 和 DDKBUILD.cmd 到 DDK 安 装根目 录,如 我的是 C:WinDDK。将上述文件(DDKBUILD.bat 和 DDKBUILD.cmd )的路径添加到 系统的path变量(右击我的电脑,系统属性/高级/环境变量/系统变量/path变量双击修 改值)。4) 根据你所安装的 DDK的不同版本添加不同的变量到
33、系统变量中。右击我的电脑,系统属性/高级/环境变量/系统变量/新建:2000 DDK则变量名为:W2KBASEXP DDK则变量名为:WXPBASE2003 sp1 DDK 则变量名为:WNETBASE这里我的是 WNETBASE(值为 c:WinDDK3790.1830) Res«ur«« Filet/ drwtriioR re bi FlitsEj I>riv<r l. epp- 二f Sptcitl Filts 到 BUILD p BuildLi lie. cad P Jiikbldt3xv. eftd F <t4Jqpovtbldl ca
34、d dUkprtbld nd 呵 Br iv*r L 刮 il« 禺 i4urc«i5) 启动VS2005 打开菜单中的工具 一一选项,弹出选项对话框。选择左边的项目和 解决方案 VC+目录,在右边的显示以下内容的目录下拉列表中选择可执行文件,在下面列表框中添加上面 DDKBuild.bat 文件所在的路径(这里是 C:Wi nDDK),同样设置包含文件和库文件设置可执行文件(c:Win DDK )设置包含文件(cWINDDK3790.1830inc'wnet)设置库文件(cWINDDK3790.1830libwneti386)6) 开始安装DDKWizard,在安
35、装的最后一步你可以选择编辑ddkwizard 的配置文件。现在重新打开 VS2005 会发现在新建项目里面有DDK Project的选项了,里面就可以建立驱动工程来编写驱动程序了。7) 比较成功的安装方法链接:http:/blog.csd n.n et/wa ngyue4/archive/2009/12/15/5012845.aspx8) 将驱动程序的所有源文件加入项目中。新建DDK Project之后修改SOURCE文件:其中 TARGETTYPE=后面加 DRIVER ;加入以下两行:DDKROOT=D:WINDDK2600; #这里要和安装目录一样INCLUDES=$(DDKROOT)i
36、 nc;加入源文件后还要在sources文件里的SOURCES=后面加上源文件名。比如:SOURCES=Helloworld.c9) 程序调试成功后,也许会弹出一个可执行文件的对话框,这时在文件的 I386,下查到tsadmin (你的可执行文件)。浏览指向,这时你就可以进行使用。10) 设置完毕就可以打开 VS2005 了。新建-项目-可以看到有了个 DDK project,选择Driver,根据选择选定需要的DDK。Finish6. 项 目 属 性 -NMAKE-I ncluded Search Path- 添 加 C:WINDDK3790.1830in cddkwxp这里根据自己需求选择7.OK ,F7吧。进入项目目录就能看到生成的objchk_wnet_x86目录以及里面的.sys了。8、使用VPC建立驱动程序调试环境(我可不想看到本机蓝屏呀)这里建立虚机调试驱动程序,仅仅是我摸着石头过河,究竟能不能成功,还要好好试试,呵 呵1) 建立一个干净的 Windows Vista虚机2) 安装WDK开发包3) 为VPC建立命名管道以方便调试:2SJSettingCurre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿色能源基金份额分割与赎回执行合同
- 甘肃省武威市2025年八年级下学期语文期末考试卷及答案
- 知识产权优先授权及补充使用合同
- 闲置宅基地流转与现代农业综合示范区建设合同
- 环保主题游戏开发与绿色公益活动联合发行协议
- 俄罗斯网红电商合作营销服务协议
- 培训机构兼职讲师合同续签与调整协议
- 森林公园特色民宿项目长期租赁合作协议
- 婚前财产债务承担及举证责任明确协议
- 互联网平台商标权及品牌形象维护协议
- 大口井施工方案(反滤层)
- 外科学-骨折总论1(英文)
- 继续医学教育管理组织管理制度和继续医学教育规划实施方案
- GB/T 2951.12-2008电缆和光缆绝缘和护套材料通用试验方法第12部分:通用试验方法-热老化试验方法
- GB/T 24610.2-2009滚动轴承振动测量方法第2部分:具有圆柱孔和圆柱外表面的向心球轴承
- GB 5009.92-2016食品安全国家标准食品中钙的测定
- GA 838-2009小型民用爆炸物品储存库安全规范
- 新疆理工学院面向社会公开招聘27名行政教辅人员【共500题含答案解析】模拟检测试卷
- 大会-冠脉微循环障碍课件
- 2023年湖北省武汉第二中学高考英语一模试卷(含答案解析)
- 2023届高考语文复习:西藏男孩丁真 课件
评论
0/150
提交评论