首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 移动开发 | 游戏开发 | 数据库开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  操作系统首页 | Windows编程 | Linux编程
  您现在的位置:天新网 > 软件开发 > 操作系统 > Windows编程
WDM设备驱动程序开发平台
http://dev.21tx.com 2004年04月01日 Yesky

每日文章精萃
.Net:深入探讨.NET中的钩子技术 Java:Java语言入门级的十二大特色详细介
ASP:关于生成目录树结构的类 PHP:挑战最棒的留言本的源码(二)
JSP:Resin 1.2 重要源代码暴露漏洞 CGI:CGI教学:CGI安全问题(二)
VB:VB“超频”秘籍之给字符串提速 VC:#pragma 预处理指令详解

1 2 3 下一页




  编写硬件设备驱动程序一直是一种具有很强挑战性的复杂工作,即便是编写过具有相当难度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端口及内存映像设备。

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

上一篇: Win32编程基础知识
下一篇: Win32编程中如何处理控制台消息

1 2 3 下一页

编辑推荐
相关内容
·浅析Win2000进程的创建
·Win32位程序设计初步之系统安全
·Win32程序设计初步之线程
·Windows下多线程编程技术及其实现
·开发WDM型USB设备驱动程序
·Windows SDK编程之基本结构
·浅析Windows编程的剪贴板机制
·Win32编程基础知识
·改变思路,从另一个角度使用多态
·几种MAIL SERVER的功能应用比较
·USB设备的Bulk模式驱动程序设计
·打开”金笼子”——VXD技术漫谈
·Win32位程序设计初步之网络通信
·Win32位程序设计初步之服务
·Windows SDK编程之建立控件
·Windows程序的基本结构
·虚拟设备驱动程序的实现
·Windows编程中的堆管理
·Longhorn应用开发部署初探
·Internet上的图像检索技术
最近更新
人气最热
·Windows编程中的堆管理
·Win2k驱动程序设计之硬件
·Win2000驱动程序设计初步
·Longhorn应用开发部署初探
·Win32编程基础知识
·Win32编程中如何处理控制台消息
·Win32串口操作的技巧
·UML辅助网站规划和设计指南
·NetBIOS特性与编程基础
·AT&T x86 asm 语法
·Win32编程基础知识
·Windows编程中的堆管理
·Win2k驱动程序设计之硬件
·UML辅助网站规划和设计指南
·Win2000驱动程序设计初步
·Longhorn应用开发部署初探
·Win32串口操作的技巧
·用DirectDraw编写动画程序
·Internet上的图像检索技术
·Win32编程中如何处理控制台消息

 
·[硬件]芯一样价更低 阿尔法54M无线路由280
·[数码]新品炫耀 用ipod组成最发烧的音响系统
·[汽车]驴友救命图:自助游意外频发催生生命地
·[开发]MSHFlexGrid 控件的应用
·[资讯]美国科学家研制激光快速美臀法塑造迷人
·[游戏]梦幻国度专区
·[本本]不玩PDA SONY坚决集中兵力布阵笔记本
·[办公]我与老公的真实感受 体验佳能传真机
·[手机]高配不贵 夏新直板设计A665仅售1799元
·[考试]呼市打掉一青少年犯罪团伙 "老大"仅14
·[学院]显示器常见故障维修之实战篇
·[娱乐]喷气纸飞机
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net