资料主要是E文。
写WDM时一开始要注意怎么安装

解决方案 »

  1.   

    首先要确定你需要编写的是哪一类设备的驱动,不同的设备的驱动的编写方法并不一样,编写一个显示驱动和编写一个网卡驱动完全是两回事。使用的编译器也未必相同,例如编写9X下的打印驱动需要16位的编译器,如果你仅仅是想学习一下,不妨先学WDM驱动的编写,到书店去买一本机械工业出版社出版的《Windows WDM 设备驱动程序指南》,这本书虽然翻译得太次,但好歹也算个入门的教材,你可以从中知道DRIVER的基本原理,知道DedriveIoControl调用时参数是怎样传递下来又是怎样在驱动中处理的,知道驱动的安装过程等等。到微软的网站去把98DDK和2000DDK两者都下载下来,并不是所有的设备驱动都需要根据不同的操作系统重新编写的,例如网卡的驱动,在98和2000下是两进制兼容的,所以在98DDK中找不到网卡驱动的编写,只有2000DDK中才有,另外某些驱动还要到95DDK中去找(例如,视频压缩的驱动程序),当然最好是找一套完整的MSDN。准备一个好的调式器,首选当然是SoftIce,但SoftIce调试驱动在Windows启动过程中加载的过程比较麻烦,调试显示卡的驱动可能更加无能为力,WinDebug可以解决这个问题,但需要两台机器同时进行操作,而且速度比较慢,两者需要根据实际需要进行选择。编写过程中首先要了解硬件的一些实际操作,例如对DeviceIoControl传递下来的控制码和数据如何通过去控制硬件,是通过I/O读写,地址读写,还是产生一个中断等等,如果是USB或者1394接口的,则需要对管道,端点等概念有所了解。另外,还有很多的驱动并不涉及硬件,只是驱动堆栈中的一个中间层(如网络协议,硬盘镜像等),也有的即使是堆栈低层的也不涉及硬件,在上面说到的那本书中的很多例子都是如此。微软DDK的中有很多样本,可以作为驱动的框架,进行代码的嵌入,最好不要自己从头写,否则在你还没有深入了解以前,会无从下手的。参考资料即使是E文的也并不全,最好就是直接看DDK中的帮助,除了95DDK,其他的应该是很详细的了。简单的驱动可以去找一个Numega DriverStudio来写,但除非你的硬件读写操作很简单,否则作用不大。网上很难找到一个好的设备驱动开发的论坛,国内原来有个程序员客栈,还不错,不知道什么缘故现在关了,还有一个 www.driverdevelop.com,是一个CSDN网友办的,你可以去看看。乱七八糟说了这么多,主要还有靠实践,希望对你有所帮助。
      

  2.   

    知已,我正打算开始了,路上多了个伴了!^_^油箱:[email protected]
      

  3.   

    菜虫,你的OICQ呢?我的是2190062,欢迎交流。你也有分。
      

  4.   

    我以前写ARX\GIS,现在开始写驱动,碰钉子了。我是一块卡能工作且有一块卡的源程序,但我不知如何写多卡的程序?? 高手,救救我!  [email protected]
    菜虫,葱头.欢迎交流!
      

  5.   

    to John_Tian(John_Tian):
    在写一块卡的时候就要考虑多卡的情况:
    1.创建设备对象的名称,最好在后面加序号,类似于COM1,COM2,等等。
    2.卡的物理地址、中断等不能冲突,这只能在硬件上实现,如果是PNP,在注册表中应详细记录这些信息。
    ……
      

  6.   

    to tchaikov(1840-1893)
        谢谢!不知能讲得详细一点我的是PCI卡!谢谢!在注册表中哪里?能告诉我吗?我急的要命,你的email??? [email protected]
      

  7.   

    DDK编程在中国有市场吗?好象没有多少招聘的。
      

  8.   

    to sharper
    我想编虚拟光驱程序,你可以帮助我吗?
      

  9.   

    不知道大家用过fineprint没有,一个很好的虚拟打印机,可以实现缩印,好像它的网站(www.fineprint.com)上有一个sdk,不知道有没有人感兴趣?
      

  10.   

    to John_Tian(John_Tian):
    你的信箱好象不对啊?[email protected]
      

  11.   

    学习的网站:
    http://www.driverdevelop.com/(驱动开发论坛 )
    ASM001.yeah.net(罗X彬的主页)
    开发的工具:
    98DDK,NTDDK,2000DDK
    VTOOLSD,DriveWork
    高手:
    哈哈先生,陆麟。
    书:
    目前市面上有一些。
    《Windows WDM 设备驱动程序指南》还可以(是在NT/98/WIN2000下的开发)
    最好有《WIN95系统编程X秘》在WIN95/98下用VTOOLSD开发进度会更快些。
    驱动程序的开发与你所会的编程语言关系不大,最主要是你对WINDOWS系统的整体架构,底层的理解和掌握程度。
      

  12.   

    建议别学Vxd编程 -- 过时了!!!http://www.driverdevelop.com/ 有两本好书:
        Program MS WDM.chm (正在组织翻译中,不过最好自己去啃e文)
        Inside Win2k.chm
    driverdevelop上面的论坛还不错,只是高手寥寥,希望日后人气能好起来。
      

  13.   

    编写驱动程序,对掌握C++,OOP有帮助吗?我很想在这方面有所提高。