⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn_文档中心_我的ddk学习经验(转载).htm

📁 csdn10年中间经典帖子
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            3.1,第一年做多媒体资料库专案,当时连VC++ 1.0都还没出现,就用Borland C++ 
            3.0以纯SDK方式coding,(因不知道有OWL这种东西)事后想起来真是因祸得福,让我更了解Window底层的运作(不过当时真的觉得很干).<BR><BR>第二年做Video 
            Editor是我比较快乐的时光,VC++ 
            1.0刚出来,但市面没一本相关书籍,连MSDN也一样.怎么办?到处找不到资料.最后用最笨的方法:用Debuger trace MFC 
            source code!, 然后搭配Video for Window 1.1版SDK来coding,当时傻傻得,以为可以做个Video 
            Editor跟友立拼,所以常常加班到10点,但后来Video 
            Editor结案后就放到储藏室,而Aldus被Adobe并购,友立也把PhotoStyle卖给Adobe.这件事件让我得到个教训:套装软件不好做,更难与国际大厂同类型产品竞争.因有时Video 
            Editor会利用MCI Command来控制AVI/FLI播放,但觉得很奇怪,那个MCI 
            Driver到底在搞什么鬼?在好奇心驱使下,翻MSDN的MultiMedia Device Driver来看,才搞懂MCI 
            Driver如何与底层的Video/Audio Driver沟通. <BR><BR>第三年是最黑暗的时期,Team 
            Leader包个Multimedia 
            Title来做(还曾打算向敦煌科技包Game来做).美工,企划,全和在一起,而要我用Director 
            3.0的Lingo语言来写Title的Program.我便开始消极抵抗,同时自己偷偷用MFC+WinG+32Bit 
            Assembly在Win3.1上写个类似Director3.0的Engine. UI及绘图引擎都完成,而且播放速度比Director 
            3.0还快.但卡在不知道如何设计Script及Interpreter.最后只好做罢.然而转捩点就发生在这一年:应台北电脑工会之邀,开门"Windows影音驱动程序剖析"课程而与童子贤先生有一面之缘(当副总的他竟跑来上我这无名小卒的课),也保留他一张名片.另外帮别人写Motion 
            Control Card的Dos 
            Driver来用在CNC上,对Driver开始发生兴趣,原来写Driver的利润颇丰.<BR><BR>第四年,黑暗的日子终于过去.参与IBM 
            VisualAge for Basic的Visual Component开发,用VisualAge for C++ 
            3.0来coding,过了一段无任何相关资料的日子,还好从李维那拿到OpenClass source 
            code,发挥tracing的精神,终于顺利结案.这年在某电脑展中遇上任职IBM的大学同学,被他讥笑还在米仓中当米虫,让我心理不好受.也使我思考,只会coding的我未来要何去何从,难道要过着一年换一个专案的日子吗?然后40岁时会变成怎样?(PetShop 
            Boy的"Being 
            Borning"在我脑中响起...).<BR><BR>幸好碰上一个影响我很大的同事,他那时也刚帮人写完一个Window 
            95的VxD,于是向他讨教,并学得如何收集相关资料,练好后就接个A/D,D/A卡的Win31/95 Driver 
            CASE来做,写完Win95觉得不过瘾,便拿NT4.0 
            DDK来看.另外他有事没事拿ASIS电子周刊给我看,当时正报导PC97的specification:ACPI,AGP,OnNow等新技术,我看完就知道大好机会来了.凭做A/D, 
            D/A卡Window Driver的经验,我知道随着Win95的普及,这些硬卡没有Win95 
            Driver根本很难卖到欧美.PC97规定了Intel的硬件设计如何跟Microsoft的Window做结合,而接口就是Window 
            Driver!,加上主机板厂养的软件工程师只会写BIOS or 8051,对Window 
            Driver根本是听都没听过,但PC97,98是必走的道路,所以一定要找到会的人来做.<BR><BR>而这时候我又要换另一资料库相关的专案(我最讨厌做MIS,成天与数据,报表奋战,有够无聊).于是上网路找工作,想到手头的童子贤名片,就试投华硕看看.没想到一试便上,(不过在面试时被嫌在资策会待太久,恐染上不良习性).进华硕后,感觉到是Right 
            Man in Right 
            Place.终于可以一展抱负,有明确的目标,不再虚度时光,也不会被别人嘲笑是米虫.更重要的是有成就感,想想做的专案,是要卖到全世界的产品,而且是与一些国际大厂竞争产品上市时间.再也不是作完往仓库一摆的东西.再者华硕目前员工人数少,业务扩展迅速,加上公司高级领导阶层非常重视研发实力,只要有能力的人,不怕没升迁机会.不像宏基已有太多员工,没什么表现能力的机会,且升迁管道太挤了 

            <P>(2)学习DDK的过程 
            <P>要学DDK首先要把Window的底层基础练的扎实.但一般人对学Window 
            SDK都视为畏途,更何况是底层的东西.从Win31到Win95变化比较多得,我个人认为是:Multitasking,Plug&amp;Play,Memory 
            Addressing.有人问我说,Memphis都快出来, 还要花功夫看Win95 or Win31吗?, 我认为还是要!原因是: 
            <BR><BR>a.Memphis不是完全重新改写,里面的一些观念还是沿用Win95.<BR>b.目前市面上尚未有大师级的Memphis相关书籍,如果有也只是趁火打劫类型的书,而台湾的书商,作者最会搞这种把戏来A钱.如Win31/95方面已有一些大师的书籍,如Andrew 
            Scrullman,Patt Metrick,Richard Jeffery,Walter O'ney,Charle 
            Patzold等大师.你不去看大师级的书,反而去看"快快乐乐学Memphis","教你21天学会Memphis"这类垃圾书,真是在浪费你的时间及金钱.<BR><BR>学DDK的第一步准备功夫是把英文阅读能力练好,你别指望书商会出中译本.因这类书的卖相太差,比不上VB,Delphi,JAVA这类较大众化的书.再者要找到够格的译者很难.要译好是要花相当时间,那还到不如去写些轻松的书,稿费也赚得多.<BR><BR>接下来就要练基础工夫,如同张无忌花了6年时间练好九阳真经,等到练乾昆大挪移时只花数个时辰就OK.要如何练底层基础呢?勤看书,勤coding及Trace别人写得sample 
            code而已.即使是天才型的Programmer也是要看书,因Window不是他设计的,必须了解Window才有办法下手.而非像写Algorithm方面的论文般,自己定assumption, 
            Lemma,导出Theme,下conclusion就完成.所以一些刚入社会的研究生最好先调整自己的心态.<BR><BR>以往我是读一些大师级的书,如:<BR>"Window 
            Programing"的CharlePetzold,<BR>"Undocument Window"系列的Andrew 
            Scullman,<BR>"Win95 system Programming 
            Secrets"的MattPietrek,<BR>"AdvancedWindows"的JefferyRichter.<BR><BR>期刊的话是:<BR>Microsoft 
            System Journal,<BR>Doctor Dobb's Journal,<BR>Window Developer 
            Journal这本期刊是我认为学DDK的人必要订阅的!几乎过个1,2期就会刊登Window Device 
            Driver相关的文章,而且里面有位Paula女士主持的NT专栏,写的很深入,不是市面一些标榜NT"大剖析"之类的书籍所能比拟.在Andrew 
            Scrullman的"Undocument 
            NT"尚未问世之前,它是我觉得最有深度的专栏.<BR><BR>接下来就谈与Driver有直接关系的资料:<BR><BR>Device 
            Driver的书籍,我从Win31开始说起:<BR>"Writing Windows Device Driver and 
            VxD",Karen Hazzen,第1,2版是最适合写Win31 Driver的参考书籍.也有一本白皮的"Writing Window 
            Device Driver",我认为它的参考性很低,因它光抄Win31 DDK Function 
            Description就花了50~60几页,有A钱之嫌.<BR><BR>Win95:<BR>那当然是首推"System 
            Programing for Win95",Walter Oney. 
            <P>这本巨作.我曾因翻Chapter11~13翻到书页掉落,而重新再买一本.Walter 
            Oney既出,谁与争锋.有这本就够了!也没有人有胆来挑战他.<BR><BR>WinNT:<BR>唯一的一本:"The NT Device 
            Driver Book",Art Baker.很有系统的一步一步介绍如何写NT Kernal mode 
            driver.先看这本书然后再看MS的NT DDK on Help会让你较容易了解.当初没这本书时,我刚开始看DDK 
            Help是看得满头雾水.最好搭配"Inside Windows NT",Helen Custer一起看,因为NT底层已经导入Object 
            Oriented观念(WDM是将NT Kernel mode driver 加装Plug&amp;Play及Bus 
            handle等新功能),与Win95的Virtual 
            Machine观念相差甚远.这本书虽是1992年出版,但有对NT的核心运作加以介绍,也是一本难得的好书.<BR><BR>NewGroup 
            and 
            WebSite:<BR>1.Win95是comp.os.ms-windows.programmer.vxd<BR>2.NT的话是comp.os.ms-windows.programmer.nt.kernel-mode<BR>3.Window 
            Device Driver Web 
            site:<BR>http://www.albany.net/~danorton/ddk<BR>http://www.vireo.com<BR><BR><BR>发展工具:<BR>1. 
            如何要让你日子好过,一定要有套SoftIce for 
            Win95/NT.千万不要用MS的WinDebug,它根本是无山晓路用.SoftIce可让你用source code level 
            debuging,对有assembly恐惧症的人是一大福音.(但我还是劝有心学DDK的人还是要摸assembly).<BR><BR>2.VToolsD(for 
            Win31/95),DriverWork(for NT/WDM)<BR>Vireo公司出的DDK 
            Tool让你完全用C来写Driver,我只能说写Driver时,我已经不能没有它.由其它还免费附Class Library source 
            code,让我Trace的很高兴.<BR><BR>领域知识(Domain 
            Knowledge)<BR>写Driver需了解你要控制的硬件,如Driver有用到DMA/Interrupt,建议你看一下8259,8237A的资料.在这方面,"微电脑接口技术与应用"是本不错的参考书. 
            Programmer总有一天会coding不动的时候.但人老成精,只要你的Domain Knowledge够强的话, 
            还是会有许多公司请你去当技术经理, 而这也是你能克死年轻力壮Programmer最大的本钱. 多多看些其他杂志, 
            接触一些非Programming方面的知识来培养你的Domain 
            Knowledge吧!<BR><BR>最后最重要的是:亲自动手做做做做做做做做做!<BR>看资料是一回事,知道是一回事,做的出来又是另外一回事.公司请你来不是要听你长篇大论,或是发表多少篇论文.是要你做个会动,能商品化的东西.等你做下去,踢到铁板,又找不到别人问,也没有任何资料可帮助.再加上硬件没你写的Driver而无法出货时,那种滋味可是人间炼狱.我就遇上一次,东西都出到俄罗斯,德国的经销商时,结果发现Driver有Bug,无法顺利安装.老大放话说一星期内没解决,俄罗斯经销商就要取消订单(天呀!几百万美金的交易),我在想,如果到时解不掉就准备辞职.后来真是狗屎运.用一个非常另类的做法(骑摩托车在半路上想到的),解决这个Bug,保住订单也保住职务.说这则例子主要是奉劝一些自视甚高的在学研究生,不要以为顶着高学历,就可以在社会上一帆风顺(除非窝到学校或财团法人,政府机构内),也鼓励一些没有傲人学历的网友,只要有实力发挥黑手精神,照样可以当主管来管一群硕士工程师.<BR><BR>(3)未来可能的发展<BR><BR>看看WinTel 
            PC98的规格,就知道以后会写Driver的人比较吃香,目前会用C,SDK写程序的人不多,更何况是写Driver,其实Driver并不难写,只是Learning 
            curve很长,现在大多初学者怕难没耐心,都用VB,Delphi这类RAID Tool来写程序, 
            都快不知道SDK是何物.更不用说Window内部的运作.除非是走MIS路线,否则以后日子会很难过.就现实面来看:用VB,Delphi的人太多,老板要找个人来取代你的职务是很容易得.就盈余而论,国内做MIS的公司比不上做PC硬件,Chip 
            set的公司,而且也没有股票可分,何苦去挤到经济规模小又人数众多的领域内.(但Year 
            2000对MIS工程师可是个大利多,只不过你还要会一些非常古老的程序语言,而不是懂VB,Delphi就没事).就我观察的结果: 
            目前主机板的软件工程师大都只会BIOS, 8051.根本都不懂Windows Driver.不要以为写个soft 
            menu的BIOS就扬扬得意.等PC98正式上场就有好戏看.所以在这些公司中有有太多机会来让你表现自己的能力.<BR><BR><BR>感想:<BR>国内一些电脑作家实在是太好混日子,可以从VB写到VC,然后还可以"深入探讨"3D加速卡.流行VB就出VB的书,一本号称VC++/BorlandC++圣经的书,竟然都没提到MFC/OWL.而Windows95一出来,书摊又是一堆Win95圣经宝典之类的中文书.等着看吧,明年Memphis出来时又将旧事重演.不只如此,还故意标榜有博士学历或具有写作10几年的经验来烘抬自己的身价.有时我看了就一肚子火.不过这些人还不是照样继续A钱.真是......,而国内一些电脑杂志的水准,大家心理有数,不用我多讲.值得我佩服的,大概只有侯俊杰,不过最近一年他好像都只写MFC相关的文章书籍,没写些Windows内部运作的文章,不知这是否跟上次Matt 
            Pietrek来台有关.<BR>总归一句话:读者要自己小心,少碰一些"圣经,宝典. 最后, 
            <P>祝大家能找到心目中理想的工作.</P><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>对该文的评论</FONT></TD>
    <TD align=middle>
      <SCRIPT src="CSDN_文档中心_我的DDK学习经验(转载).files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_我的DDK学习经验(转载).files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; zkxyz <I>(2001-2-14 15:43:51)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>死也死的光荣 
<BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_我的DDK学习经验(转载).files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; leonshow <I>(2001-1-7 15:06:25)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>与大陆的程序员相比,台湾的程序员还是比较好混的。 
    <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_我的DDK学习经验(转载).files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; zcm <I>(2000-12-28 19:05:42)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>不知Vxd各WDM有何区别? 
  <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_我的DDK学习经验(转载).files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; hugos <I>(2000-12-28 15:45:48)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>要是能一天就精通wdm jiuhaole 
  <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_我的DDK学习经验(转载).files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; znsoft <I>(2000-12-28 14:47:54)</I> </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>我已经看过n 遍了 
<BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_我的DDK学习经验(转载).files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; kkk2000 <I>(2000-12-28 13:14:20)</I> 
</TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>我对DDK和Vxd非常感兴趣,我的AGFA 
      310在win2000中不能使用,而AGFA又一直没有更新Driver,看了这文章后。。。。。。。。。。。。。。。。。。。。。再难我也要自己把driver搞出来。 
      <BR></TD></TR></TBODY></TABLE>
<TABLE align=center bgColor=#666666 border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TD bgColor=#cccccc colSpan=3><SPAN style="COLOR: #cccccc"><IMG height=16 
      hspace=1 src="CSDN_文档中心_我的DDK学习经验(转载).files/ico_pencil.gif" width=16> 
      </SPAN>&nbsp;&nbsp;&nbsp;&nbsp; xiangood <I>(2000-12-28 11:54:00)</I> 
  </TD></TR>
  <TR>
    <TD bgColor=#ffffff colSpan=3 width=532><BR>我的目标. 
<BR></TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你没有登陆,无法发表评论。 请先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=2696">登陆</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A 
      href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A 
      href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 src="CSDN_文档中心_我的DDK学习经验(转载).files/biaoshi.gif" 
      width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -