hansiyuan
驱动牛犊
驱动牛犊
  • 注册日期2009-05-18
  • 最后登录2011-02-21
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3597回复:12

驱动学习经验+历程!献给初学者!!

楼主#
更多 发布于:2009-06-17 13:42
(首先我是冒着风险写的这篇日记,请大牛们看了不要带我家人出来,其次我介绍的是WDM驱动程序的学习过程!(不是具体的问题分析和解决!)不一定适合您的学习可能!仅以此文献给跟我一样的菜菜们!)
   刚开始学习驱动程序开发的时候!尤其是直接学习WINDOWS驱动程序开发的时候!简直是对自己生命的一种摧残!
完全不同于用户模式程序的设计思想和铺天盖地的各种术语,硬件特性,操作系统结构和原理!足以使你到达崩溃的边缘!
当你可以独立的编写一个驱动程序的时候 BUG CHECK的死亡蓝屏,随时跟你有个甜蜜的约定!
  最难能可贵的是国内没有一本能拿的出手的专业教材!很多国内的"高手"东拼西凑的COPY了不少国外教材的内容!然后如飞砖头一样砸到你头上!我是没有那么"硬"的头,所以接不住这些大牛们的著作!还是老样子,SEARCHING IN GOOGLE TO FIND A BEST BOOK FOR DRIVER DEVELOPMENT !终于我发现原来国外也就那么几本关于驱动开发的书!而且真正经典的就2本可能!还有一本不能完全说是经典!因为它的结构太散乱以至于到第8章不得不换书了!
虽然客观因素不是很好!但主观因素才是决定你能否成功的关键!我继续坚持,从最最最低层的设备开始学习!经常看到有些高手说初学驱动不要太关注低层细节!我不这么认为!我觉得低层细节能帮助你真正的掌握这门技术!
首先计算机组成原理是必修的课,接着来本操作系统概念!(这可能很多人都学过!但是你还是需要从新看尤其是最近几年的版本,尤其是关于WINDOWS的),如果有经历 INTEL处理器的结构最好也弄清楚!毕竟驱动开发跟处理器上下文的环境总能扯上关系!都学完了 你应该能玩玩硬件了!
  下面是正题 PROGRAMMING THE MICROSOFT WINDOWS DRIVER MODE !!!什么你没听说过!那现在知道了!赶紧准备去吧!不用去买!没有,绝版的东西!这书的第2版 更好 更强大!!不过没有大牛们翻译呢!其实我想翻译来着!但我估计我翻译完了 第N 版都出了 而且败坏了这书的名声!(在此感谢一下 马大哥翻译了第一版!)
  如果你上面的学习顺利,而且看过核心编程.那么你一直到I/O请求包这里都会一帆风顺,最最重要的东西将出现在这里 就是IRP的结构和各种处理历程.它是你完成驱动程序功能的灵魂!可以说你以前学的都是框架,只有这里是你需要根据你为不同硬件编写的不同功能的驱动程序自由发挥的地方,当然也是比较难理解的地方.
  这里你可以到驱网多发发询问帖子!一定要搞清楚整个IRP从产生到消除的过程!以及都需要什么IRQL级别和同步方法!
然后你可以长驱直入什么PNP,什么读写数据,什么电源管理(这块又是一个难点,毕竟是重要的东西).其他的你应该不是问题如果你读了我推荐给你的参考读物!
  都学完了你可能还是写不出来基本框架的驱动程序!别急,你可以看看WDK里面的帮助文档!和一些基本例子(这步我觉得也是关键,因为它能很好的帮助你理清驱动编程的整个思路).如果说以前的学习是细节,那么现在的过程就是把握整体!把所有细节填充到这个整体中,你的第一个驱动就可以出来了.至于以后的什么文件过滤驱动,什么网络驱动模型,轻车熟路吧!!
下面说说实践的过程,很多人在编写和调试的时候喜欢用VS+DDK+DS+SOFTICE的经典组合!很可惜我不喜欢这个组合,我喜欢直接设置VS+DDK+WINDBG或SOFTICE的组合,为什么不要DS.我个人觉得没这个必要多设置设置环境对你理解编译器有好处!
  太多的细节问题可能我也没有意识到,所以希望热爱驱动编程和搞WINDOWS核心的朋友们一起探讨.大家可以加我的群3244625.
                                                                                                                                                         Chris[..\]
                                                                                                                                                          2009.6 北京!
luke.du
驱动牛犊
驱动牛犊
  • 注册日期2009-06-20
  • 最后登录2009-06-22
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-06-20 15:59
还没入门,比菜鸟还菜所以不会评价了,只能感谢楼主贡献,顺便抢个沙发。我会按照楼主所说的思路一点点学下去,坚持就是胜利!~加油luke。
hansiyuan
驱动牛犊
驱动牛犊
  • 注册日期2009-05-18
  • 最后登录2011-02-21
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-06-25 16:56
  应大家要求:         一群:3244625(已满)
                                二群: 90377157(即满)
                                三群: 64751597(空闲)
big2006
驱动牛犊
驱动牛犊
  • 注册日期2007-11-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-07-02 11:01
群已满,开个新的吧 :)

我有问题要请教一下啊
big2006
驱动牛犊
驱动牛犊
  • 注册日期2007-11-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-07-02 11:02
发送短消息怎么出错了?????
hansiyuan
驱动牛犊
驱动牛犊
  • 注册日期2009-05-18
  • 最后登录2011-02-21
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-07-02 17:18
新群已经开辟 欢迎大家加入
     一群:3244625(已满)
           二群: 90377157(即满)
           三群: 64751597(空闲)
liuganchao
驱动牛犊
驱动牛犊
  • 注册日期2009-06-22
  • 最后登录2012-04-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-07-03 03:40
  谁告诉啥叫驱动、?来个感性的视频例子?可以不?
yuyinxl
驱动牛犊
驱动牛犊
  • 注册日期2009-04-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分38分
  • 威望361点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2009-07-12 08:20
构建一个环境都没有成功,需要帮助
恋爱的犀牛
驱动牛犊
驱动牛犊
  • 注册日期2009-12-09
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望271点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2009-12-09 17:10
引用第7楼yuyinxl于2009-07-12 08:20发表的 :
构建一个环境都没有成功,需要帮助


NotePad++ 加上DDK
zp1025
驱动牛犊
驱动牛犊
  • 注册日期2004-11-22
  • 最后登录2012-09-13
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2009-12-17 11:18
写的不错,支持一下。。
djlstrong
驱动牛犊
驱动牛犊
  • 注册日期2010-01-22
  • 最后登录2011-07-16
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2010-01-22 16:11
dddd
guenli
驱动牛犊
驱动牛犊
  • 注册日期2009-12-18
  • 最后登录2010-02-19
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望611点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2010-02-13 13:48
个人觉得张帆的“驱动开发详解”讲的比较基础很适合初学者。
cedar365000
驱动牛犊
驱动牛犊
  • 注册日期2010-03-02
  • 最后登录2010-03-25
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2010-03-03 19:39
楼主,牛人!
游客

返回顶部