none
我想自己写一个能扩展微软提供的光盘驱动的驱动程序,根据DDK中说明的,主要手段我想就是为微软的驱动程序添加过滤器驱动程序,有没有人能够说明一下,这样的程序该怎么写啊,就是我如何为别人编写的驱动程序添加过滤器,是不是这样的方案根本就不可行啊? RRS feed

  • 问题

  • 我想自己写一个能扩展微软提供的光盘驱动的驱动程序,根据DDK中说明的,主要手段我想就是为微软的驱动程序添加过滤器驱动程序,有没有人能够说明一下,这样的程序该怎么写啊,就是我如何为别人编写的驱动程序添加过滤器,是不是这样的方案根本就不可行啊?

     

    • 已移动 李庆_八爪熊 2009年5月19日 9:33 ([Loc]From:Windows Vista 开发相关讨论)
    • 已移动 Sheng Jiang 蒋晟 2010年5月15日 23:19 (发件人:一般性问题讨论区)
    2007年8月3日 2:52

答案

  • Windows中的驱动程序主要分为两大类:
    1.用户态驱动程序 - 运行在用户态,它们经常提供Win32程序、核心态驱动(或其它系统组件)之间的接口。比如打印机驱动就是由用户态和核心态驱动组成的。
    2.核心态驱动程序 运行在核心态,由核心态系统组件组成。核心态驱动程序大多是分层的。通常,高层驱动从应用程序接收、筛选数据,并将它们送给支持设备功能的更低层驱动。
    * 有些核心态驱动程序本身也是WDM驱动。所有的WDM驱动程序都支持即插即用、电源管理。WDM驱动在Win98/Me和Win2000之间是源代码兼容的(不是二进制兼容)
    * 和操作系统一样,核心态驱动程序也被设计成分散的、模块化的组件。

    核心态驱动程序:
    有三种核心态驱动:最高层、中间层和最低层。它们在结构上相差很小,但功能相差很大:
    (1). 最高层驱动程序 包括文件系统驱动程序,如:
    o NTFS
    o 文件分区表(File allocation table,FAT)
    o CD-ROM 文件系统(CDFS)
    * 最高层往往依赖于下一层的支持,例如中间层的功能性驱动、最低层硬件总线驱动
    中间层驱动程序
    (2). 中间层驱动程序 如虚拟磁盘、镜像。中间层又可以分为:
    * 功能驱动 控制I/O总线上指定的外设。
    * 过滤型驱动 附在功能驱动前后
    * 软件总线驱动 控制设备集
    * 系统补充驱动 支持系统定义的接口
    (3). 最低层驱动程序 控制连接外设的I/O总线
    * 硬件总线驱动 系统补充性,常控制动态总线
    * 老式驱动 直接控制最低层设备

    Windows中的驱动程序开发,请参考下述链接:http://blogger.org.cn/blog/more.asp?name=binaryluo&id=12379
    DDK+VC 6.0是以前windows驱动程序开发的常用方法。

    此外,建议你看一下驱动开发网:
    http://www.driverdevelop.com/first.html
    http://bbs.driverdevelop.com/

     

    2007年8月3日 3:31