您的位置:软件 > 开发者网络 > 技术跟踪 > Windows编程 > 正文
WDM设备驱动程序开发平台
[文章信息]
作者:赵永华
时间:2004-04-01
出处:yesky
责任编辑:方舟
[文章导读]
编写硬件设备驱动程序一直是一种具有很强挑战性的复杂工作
advertisement
热点推荐
· IE最新安全漏洞补救几大措施
· M牛的网络生活之下载篇
· Norton Ghost 9.0全新体验
· InstallShield简明使用教程之前言
· Linux系统的硬件驱动程序编写原理
[正文]

1 2 3  下一页

天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。



  编写硬件设备驱动程序一直是一种具有很强挑战性的复杂工作,即便是编写过具有相当难度Win32程序的开发人员,在编写设备驱动程序时也必须去应对种种不适,需要"洗脑"。编写设备驱动程序很象在执行一项艰巨的任务:没有窗口、没有消息需要处理,很难对源代码进行调试设置,几乎所有支持库都无法调用;更糟的是,由于设备驱动程序属于操作系统的信任部分,于是很容易伤害系统,对此开发人员却往往缺乏一种保护手段去防止进程和Windows系统被损。

  WDM(Windows driver model)是微软为开发人员提供的一种编写运行在Windows平台下新硬件驱动程序的有效方法,此即所谓的Windows驱动程序模型。WDM提供了设备类(device classes),由此形成的源代码可以运行在各类Windows平台:Win XP/2000/Me/98。需要指出的是,职业开发人员往往使用的是更有深度的DDK,它除了可以开发WDM类型的驱动程序外,还可以开发非WDM类型Windows驱动程序。

  WDM是一种便捷式的编程技术,它使开发人员写出的驱动程序可以跨平台运行,支持编写微软所支持的WDM 总线驱动程序,在WDM中"总线"(Bus)的概念是一种附加在其它设备(包括物理设备、逻辑设备、虚拟设备)上的设备协议,例如Windows XP内置的WDM技术支持的总线类型包括:PCI(Peripheral Component Interconnect)、动态式即插即用串行I/O总线(如USB和IEEE 1394)、SCSI(Small Computer System Interface)、NDIS(Network Driver Interface Specification)以及远程式NDIS (RNDIS)。

  新版WDM中的RNDIS属于新内容:如简化了对网络设备硬件的开发,减弱了网络设备对驱动程序的依赖性,使最终用户对网络设备的设置安装更简便。WDM新版中对设备的支持主要包括:USB设备类,比如其中的类HID(Human Interface Device);数码相机/扫描仪;通过IEEE 1394标准的视频捕捉设备;音频;控制调制解调器的WinModem。在WDM 类代码中提供的port/miniport 驱动范式,支持第三方厂商为其特殊设备编写"迷你型"驱动minidriver。Windows DDK其实是建立在WDM基础之上,它提供了:Driver Verifier 及 Windows Hardware Compatibility Tests测试工具;被WHQL(Windows Hardware Quality Labs)所识别的第三方驱动程序等集成环境。

  WDM驱动程序的三种类型

  WDM支持的驱动程序具有分层结构,换言之,对于一种设备而言,它可以具有三种类型的drivers:总线driver,或者函数driver,或者过滤式驱动程序(它可以假定或修正设备的行为值)。为一台设备服务的这些驱动程序链就是所谓驱动程序栈。一个驱动程序栈分阶段地处理用户的请求,这些驱动程序一个个相互叠加在一起,低层的总线驱动程序可用于处理与硬件的所有基本联系,而中间的类驱动程序对整个一类驱动程序提供共同的设施。

  微软提供了针对Windows的总线驱动程序,并为第三方设备开发商提供有关服务,如枚举设备、对即插即用和I/O所需电源的管理,并提供了独立于设备管理方式。设备开发商更多地是提供函数式驱动,其基本内容包括:对设备的操作界面,对设备的读写句柄,对设备电源的管理策略。过滤式驱动程序安装在驱动栈一个或多个设备之上或下端,它可以截获设备、或设备类、或总线的请求,判断这些请求,并可以修改其内容或对其进行响应,例如USB键盘的高层过滤驱动程序可以增强加密检查,而适用于鼠标的低层类过滤有助于提高鼠标性能。

  函数式驱动是这样一种结构:属于某类设备的常规执行可以通过其类驱动实现,即是说驱动程序在开发时,开发人员的工作只需要写出非常少的驱动代码minidriver去与硬件打交道,大部分工作可以通过调用类驱动完成。微软提供的类驱动可以实现常见的系统任务,比如即插即用和电源管理。WDM class drivers主要内容包括:

  (1)流式类驱动,以内核模式支持多媒体内容;

  (2)具有支持输入设备的HID类驱动;

  (3)USB 和 IEEE 1394总线类驱动;

  (4)支持串行和并行方式的存储协议。

  Windows支持WDM驱动的各个系统内核组件包括:

  (1)Kernel组件,指基本的同步、性能计算和及时、延缓与IRQ控制;

  (2)Object Manager组件,对象说明;

  (3)Executive执行组件,内存分配、互锁及列项操作;

  (4)I/O 管理组件,包括I/O IRP(Request Packet)控制,设备对象,工作项目,注册表访问,系统状态提示,DMA及中断;

  (5)内存管理,虚拟到物理内存映像,物理内存托管和锁定,驱动程序映像内存锁定,机动I/O空间;

  (6)处理服务,系统线程生成和删除;

  (7)Run-time Library,大容量外存,Unicode和数据类型转换;

  (8)电源管理,电源状态改变,电源IRP控制,设备空闲检测;

  (9)即插即用子系统,硬件检测和资源分配,PnP(Plug and Play) IRP控制以及硬件事件;

  (10)WMI(Windows Management Instrumentation),用于支持设备测试以及检测指示数据的支撑结构;

  (11)内核式流,是连接流数据设备的支撑结构;

  (12)硬件提取层,提取平台,访问和调用I/O端口及内存映像设备。

  电源管理可以是系统级或设备级,前者可以请求整个系统关闭。系统电源有六种状态:不可完全开启、完全关闭、三种休闲状态和一种休眠状态。设备级电源管理则有四种状态:完全开启、完全关闭,加两种休眠状态。一个设备可自行关闭,即使系统其它部分正全速运行。


1 2 3  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 详解11月三大硬件杀手游戏及四大凶器
  • 选硬盘 用好希捷互动存储专家
  • NDS十大最受期待游戏
  • 中国星际个人联赛第6轮综述
  • 教你破解GeForce6800变Ultra
  • 魔兽UD必胜的几大原因
  • 韩国OnGameNet职业联赛最新战况
  • 买LCD有秘诀 两绝招识别坏点
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索