首页
社区
课程
招聘
[专题三]驱动程序设计基础-新增codeproject驱动教程(jingru提供)
发表于: 2007-12-16 00:00 31353

[专题三]驱动程序设计基础-新增codeproject驱动教程(jingru提供)

2007-12-16 00:00
31353

专题三.驱动程序设计基础

请注意一下顺序:

一、三个专题驱动整个入门流程   
内容列表
流程一.配置VC++、不同操作系统对应的DDK、虚拟机VMWare,安装调试器Softice or WinDbg;
流程二.编译第一个最简单的Hello程序(DDK环境、VC+DDK环境都可),并用监视器观察输出结果..
流程三.编写*.inf 文件,进行手工安装到电脑上,并设备管理器进行观察.[单独出来专题,可使用流程六]
流程四.编写一个自动加载驱动程序、卸载驱动程序的应用程序。[单独出来专题,可使用流程六]
流程五.设置好调试器,特别是WinDbg双机调试通过com1端口。下载好符号表,转换格式,进行源码调试。
       Softice调试器,如果是XP系统,请下载补丁.
流程六.提供一个快捷方式解决流程三.四途径,不够建议多多使用上面,多多了解计算机。
装一个DirverStudio3.2,只是用里面的快捷工具,如EzDriverIntaller、DriverMonitor。

任务:通过流程一、二、六、五可以直接完成任务。但是如果你想知道更多就按照流程一、二、三、四、五、六.来完成。

总成果:心中有整个流程思想,编写第一个HelloWorld驱动程序,踏进驱动之门。

[课题3.1]驱动整个入门流程之流程一、二、六、五
课题要求:配置VC++、不同操作系统对应的DDK、虚拟机VMWare,安装调试器Softice or WinDbg;
成果3.1:编写得到第一个HelloWorld驱动程序
相关解决方案:
驱动开发和调试环境的设置(由qqeleven完成)
http://bbs.pediy.com/showthread.php?t=48220
真正的驱动入门(—)[附小程序代码](由ccdeath完成)
http://bbs.pediy.com/showthread.php?t=56192

[课题3.2]驱动整个入门流程之流程三
课题要求:相信你3.1课题没问题吧,编译好驱动为*.sys。安装*.inf,接着用设备管理器进行观察。介绍*inf格式及如何编写
成果3.2:编写得到一个简单HelloWorld的*.inf
相关解决方案:
inf文件的编写(由sislcb完成)
http://bbs.pediy.com/showthread.php?t=57571

[课题3.3]驱动整个入门流程之流程四
课题要求:相信你3.1课题没问题吧,这个应用程序可以是控制台 或者 是Win32程序,
打开服务管理之类,创建服务。能够把编译好的驱动程序,加载、卸载测试一下,在监视器进行观察.
成果3.3: 编写得到一个快捷加载、卸载驱动程序的应用程序
相关解决方案:
驱动整个入门流程之流程四--驱动动态加载(由sislcb完成)
http://bbs.pediy.com/showthread.php?t=57265

二.三个专题WDM驱动程序与应用程序之间的通信
通信一.理解驱动程序基本框架,特别同步、IRP请求包这部分.
通信二.应用程序可以分为:古老控制台main()、win32 SDK 程序、win32MFC框架,只需完成其中一个即可。
通信三.驱动程序获取数据缓冲区三种方式:METHOD_BUFFERED,METHOD_IN(OUT)_DIRECT,METHOD_NEITHER;
通信四.通信方式DeviceIoControl、事件通知(针对win32)等.
通信五.调试、运行、观察结果

任务:这个是在驱动整个入门流程基础上进行深化。

总成果:从一到二是一个跨越式进步,通信实例程序。Fight!

[课题3.4] WDM驱动程序与应用程序之间的通信二
课题要求:会使用DeviceIoControl访问,解决CreateFile问题,寻找桥梁-设备接口GUID。古老控制台main()、win32 SDK 程序、win32MFC框架,只需完成其中一个即可。
成果3.4:编写得到一个测试程序框架,main()、win32 SDK 、win32MFC
相关解决方案:
WDM驱动中使用DeviceIoControl,CreateFile(由火影完成)
http://bbs.pediy.com/showthread.php?t=57948

[课题3.5] WDM驱动程序与应用程序之间的通信三
课题要求:对控制命令,还有文件包含路径不要出错。驱动程序获取数据缓冲区三种方式:METHOD_BUFFERED,METHOD_IN(OUT)_DIRECT,METHOD_NEITHER;
成果3.5:编写得到一个驱动程序,能够分别把这三中获取数据方法。
相关解决方案:
WDM驱动程序使用Buffer I/O,Direct,Neither模式传递数据(由火影完成)
http://bbs.pediy.com/showthread.php?t=58251

[课题3.6] WDM驱动程序与应用程序之间的通信四
课题要求:通信方式DeviceIoControl异步、事件通知(针对win32)等,有可能还需要用到自旋锁.
成果3.6:编写得到一个驱动程序,能够满足其中一种方式就可以了。
相关解决方案:
驱动和应用层的异步通信(由sislcb完成)
http://bbs.pediy.com/showthread.php?t=59015
真正的驱动入门(二)[附2个源代码](由CCDeath完成)
http://bbs.pediy.com/showthread.php?t=56313

三.filedisk源码分析
[课题3.7]filedisk源码分析
课题要求:分析出应用层和核心层的整体框架思路
成果3.7:filedisk源码分析
相关解决方案:
filedisk源码分析(由ccdeath完成)
http://bbs.pediy.com/showthread.php?t=57129

四.Ring0级监控程序
[课题3.8]Ring0监控程序PRMonitor源代码(ddk+sdk)
课题要求:通过ssdt hook实现 对进程创建,注册表修改和内核模块加载的监控
相关解决方案:
偶写的Ring0监控程序PRMonitor源代码(ddk+sdk)( 由xhackx完成)
http://bbs.pediy.com/showthread.php?t=55092

五.学习驱动碰到难题解决经验与学习笔记分享
[课题3.*] 总结  
课题要求:亲身感受
相关解决方案:
驱动程序中几个常见例程[读书笔记](由vbcs完成)
http://bbs.pediy.com/showthread.php?t=57881
过滤驱动中创建IRP时IO堆栈单元的细节处理(由猪头三完成)
http://bbs.pediy.com/showthread.php?t=60278
六.经典驱动代码发布区
课题要求:注明版权信息,还有链接信息
相关解决方案:
一份虚拟光驱的源码(由vbcs提供)
http://bbs.pediy.com/showthread.php?t=57486

七.驱动资源发布区

codeproject驱动教程
谢谢jingru提供
http://bbs.pediy.com/showthread.php?t=63331

待续...可以涉及网络驱动、文件系统过滤驱动、**驱动等领域

是不是越来越有趣了….
注:大家可以一起把上面的专题完成,挑自己感兴趣课题来完成,看看有
什么不同的解决方案,即使出现相同的解决方案,也可以贴出你自己的想法...
让看雪见证我们一起进步....祝大家新春快乐,好运连连...


                                     2008.03.01


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 8
支持
分享
最新回复 (37)
雪    币: 290
活跃值: (11)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
1点钟的沙发 ,,,!!!!!11
2007-12-16 00:54
0
雪    币: 266
活跃值: (52)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
谢谢LZ,热切期待下文。。。
2007-12-16 08:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
等待下文。。。
2007-12-16 10:29
0
雪    币: 486
活跃值: (13)
能力值: ( LV9,RANK:430 )
在线值:
发帖
回帖
粉丝
5
很好,非常支持。继续加油。
2007-12-16 12:14
0
雪    币: 10635
活跃值: (2329)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
驱动开发系列  多写写
2007-12-16 12:25
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
7
支持CCDeath!
2007-12-16 13:16
0
雪    币: 1919
活跃值: (901)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
8
支持楼主~~~
2007-12-16 17:56
0
雪    币: 290
活跃值: (11)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
9
很是井井有条 !
可是实施起来还是有点困难,,因为从来没接触过WDM!
  今天找了一个下午资料 都没找到....
2007-12-16 17:58
0
雪    币: 290
活跃值: (11)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
10
我很坚强!!
CCDeath :Thanks

yualiangliang@163.com  就是了!!
2007-12-16 23:34
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
我是楼主粉丝.支持.
2007-12-18 11:54
0
雪    币: 198
活跃值: (1585)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
很期待下文。
2007-12-18 15:36
0
雪    币: 266
活跃值: (60)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
13
请问怎么参加的啊/
2007-12-20 16:49
0
雪    币: 334
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
不错不错,恭喜恭喜,顶顶顶顶
2007-12-22 00:06
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
15
参与学习
驱动越来越重要了
2007-12-22 22:03
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
今天又很好运气的找到了罗聪大神写的关于WDM的东西,很不错,详细。看完终于明白了一点点。有兴趣的可以去http://www.luocong.com/articles/show_article.asp?Article_ID=11看看,或者,找老罗的缤纷天地。
2007-12-28 17:27
0
雪    币: 12
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
sustain!!!
2008-1-2 09:41
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
很厉害,支持
2008-1-2 10:09
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
期待大师们更多的精典之作
2008-1-2 18:15
0
雪    币: 211
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
`顶力支持....
2008-1-3 17:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
慢慢跟着学拉
2008-1-7 22:32
0
雪    币: 271
活跃值: (18)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
22
新增Delphi驱动开发。相关Delphi驱动很黄很暴力...
2008-1-15 09:06
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
想要基础一点的教材!
2008-1-21 16:37
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我学驱动就靠这些资料了!
2008-1-23 15:02
0
雪    币: 213
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
顶个~~~
希望能多点DELPHI下驱动开发的资料.
2008-1-25 14:00
0
游客
登录 | 注册 方可回帖
返回
//