- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WDK框架驱动和应用程序的交互通信实现(附加代码)
学习各种高级外挂制作技术,马上去百度搜索 魔鬼作坊,点击第一个站进入,
快速成为做挂达人。
在学习wdk驱动的时候,关于通讯这块介绍真的很少,加上《天书夜读》没有公开代码,所以实现起来真
的很困难,所以在学习的过程中做了些小结,附上源码,希望对初学者有一些帮助。目录如下,如果有用
过虚拟机,第三章可以忽略。时间比较宝贵的直接看第五章。word文档里面有超链接,阅读也方便一点。
从某种程度上说,这个算是自己第一次发帖,所以大家多多指教。
附件如下:
《天书夜读》Windows驱动编程基础教程.rar
Comm.rar
dioc.rar
fhlj1.rar
irpcl.rar
List.rar
总.rar
总的word文件:WDK下驱动和应用层序通信.rar
第一章 VC6.0 +WDK(7600.16385.1) 开发驱动的环境配置 1
第二章 设备和符号链接生成以及删除 2
第三章 虚拟机运行 3
第四章 应用程序向驱动程序发送消息 7
第五章 驱动程序主动发消息给应用程序 10
第一章 VC6.0 +WDK(7600.16385.1) 开发驱动的环境配置
(1)第一步:打开VC建立一个Win32 Application工程,然后选择An empty Project。
(2)第二步:随便找一个驱动程序,主要是.C,.h及rc资源文件,加入第一步建立的工程
(3) 第三步: 设置VC编译驱动的环境,这才是重点。打开VC的Tool-Options-Directories里设置
Include,Lib,及Exectuable File。
设置Include路径:
C:/WINDDK/7600.16385.1/INC
C:/WinDDK/7600.16385.1/INC/wdf
C:/WinDDK/7600.16385.1/INC/wdf/kmdf/1.9
C:/WINDDK/7600.16385.1/INC/CRT
C:/WINDDK/7600.16385.1/INC/DDK
C:/WINDDK/7600.16385.1/INC/API (这里可能有些不需要,也可能少了,根据自己的情况在INC目录下继
续添加就OK了)
设置LIB路径:
C:/WINDDK/7600.16385.1/LIB
C:/WINDDK/7600.16385.1/LIB/WDF/KMDF/I386/1.9
C:/WINDDK/7600.16385.1/LIB/CRT/I386
C:/WINDDK/7600.16385.1//LIB/WNET/I386
设置Executable Files:
C:/WINDDK/7600.16385.1/BIN/X86/X86
(这里要注意,一定要在bin/x86目录下,确切的找到Cl.exe文件,然后添加它所在的目录,DDK与WDK这
个文件所在的路径并不是一样的,上面的是我所安装的WDK中cl.exe所在的路径,这里要根据不同情况选
择正确的路径)
(4)第四步:
这里要设置工程的属性:
打开VC-Project菜单,找到C/C++选项卡,在Preprocesser definitions里输入如下字符串:
Release下输入:
_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG
Debug下输入:
_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG
在Code Generation里的Calling convention用_STDCALL
Debug版有个特殊编译选项 /GZ (注意是大写的,小写的不要删!) 删掉,否则有链接错误,chkesp链接
不上什么的。
(5)第五步:
设置link选项卡,将输出文件名改为sys扩展名,
在General的Objcet/Library modules,填写驱动调用的几个lib:
Kernel32.lib ntoskrnl.lib hal.lib usbd.lib wmilib.lib wdfdriverentry.lib wdfldr.lib
然后进入Output在Entry-point symbol:填DriverEntry
下面就是往Project Options手动增加一些链接选项,复制如下进去:
/machine:IX86 /driver /subsystem:nativ
文档评论(0)