- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows 驅動程序設計簡介
微机原理与系统Windows驱动程序设计简介 罗文坚 李曦 Email: wjluo@ustc.edu.cn Tel:0551-3602824-1 内容 设备驱动程序设计的基本概念 开发工具介绍 Windows系统介绍 Win2000下的WDM设备驱动程序 实例:用DriverWorks设计PCI卡的WDM驱动程序 核心:板卡的I/O和中断处理。 参考书籍 武安河,周利莉。Windows设备驱动程序(VxD与WDM)开发务实。电子工业出版社。 张惠娟等。 Windows环境下的设备驱动程序设计。西安电子科技大学出版社。 Chris Cant著(孙义等译)。 Windows WDM设备驱动程序开发指南。机械工业出版社。 Walter Oney. Programming the Microsoft Windows Driver Model. Microsoft Press. 什么是设备驱动程序? 驱动程序是驱动某种实际或虚拟设备的一段程序,是操作系统与设备之间的接口,操作系统通过驱动程序来驱动特定的硬件(或虚拟设备)。 微软提供了一些标准设备,如鼠标、键盘、网卡、硬盘、U盘的驱动程序。 自己开发的产品通常需要自行编写驱动程序 具体硬件的特性千差万别,每一种硬件都有其自身独特的工作方式。操作系统本身对此并不能完全了解。这就需要一个双方都能理解的“桥梁”,而这个“桥梁”就是驱动程序。 为什么需要驱动程序? 驱动程序是硬件设备和应用程序之间必不可少的一层。 可以把驱动程序当作是对设备的一个抽象,它为应用程序提供一个访问硬件的接口。 应用程序与设备驱动程序 应用程序总是以规范方式访问硬件设备,而不需要理解和关心设备具体的硬件实现细节。 设备驱动程序实际上是一系列控制硬件设备的函数,它是链接操作系统和系统外部设计的关键模块,它提供外部硬件设备的软件接口。 Windows驱动程序类型 VxD(Virtual Device Driver)驱动程序:Windows95和Windows98以及WindowsME KMD(Kernel Model Driver):WindowsNT的内核态驱动程序 WDM(Win32 Driver Model)驱动程序:Windows98、Windows2000和WindowsXP WDM是目前主流的驱动模式。 WDF(Windows Driver Foundation):微软新一代的驱动程序模型,现在相应的DDK还在测试阶段 Windows2000, WindowsXp, Windows Server 2003, Windows Longhorn WDM驱动程序开发工具简介 DDK:Microsoft DriverWorks:NuMega公司 DriverWorks+DDK Windriver:Jungo公司 DDK:微软 DDK(即Driver Development Kit)是微软提供的驱动程序开发包。 需安装DDK和Visual C++ 可以不使用Visual C++,ddk有自带的编译链接工具,但一般使用Visual C++环境,更加熟悉 DriverWorks:NuMega公司 它可以集成到VC 开发环境中,这样就可以像生成可视化应用程序框架一样生成驱动程序框架,省去了大量的编写代码的时间。 DriverWorks用于WDM驱动程序开发。 用DDK开发驱动程序太复杂,就像用汇编写应用程序一样,而用WinDriver写驱动效率高但开发出来的驱动程序的效率要差一些(一般认为),而且支持的硬件有限。 需安装DDK、Visual C++、 DriverStudio 它和DDk的关系就像是sdk和mfc的关系 NuMega公司还提供了SoftIce等调试工具。 DriverWorks:NuMega公司 Windriver:Jungo公司 我们通常将Windriver开发的驱动程序用作测试用,比如硬件测试或原型系统开发等。 使用Windriver的优点是: 驱动程序员无须熟悉操作系统内核,无须实现DDK以及其它驱动程序编程。 Windriver实际上是提供了几个能够在用户模式下(非操作内核模式下)使用的文件给用户使用,其实际的硬件接口操作是通过Windriver自身提供的驱动程序Windrvr.sys、Wdpnp.sys和windrvr.sys来完成的。 用户在开发程序时仅需将Windriver提供的几个用户模式下运行的文件和用户程序一起编译即可完成对外设的操作。当然前提是安装Windriver或按照windriver的要求完成驱动程序的发布(根据不同的操作系统拷贝Windrvr.sys、Wdpnp.sys或windrvr.sys到Windows系统目录下并注册)。 Windriver:Ju
文档评论(0)