c9_windows设备驱动程序设计.pptxVIP

  • 0
  • 0
  • 约1.99千字
  • 约 36页
  • 2020-07-06 发布于浙江
  • 举报
Windows设备驱动程序设计; Windows 2000/XP的设备驱动程序;虚拟设备驱动程序(Virtual Device Driver,VDD)可使DOS应用程序访问x86平台上的硬件,也可支持Windows 9x下的对端口访问。 WDM驱动程序 是一种遵循电源管理协议并能在Win98和Win2000上实现源代码级兼容的PnP驱动程序。WDM驱动程序又可分为类驱动程序(管理已定义类的设备)和小驱动程序(提供厂商专有的支持)。;; WDM的基本结构;;IRP; 功能驱动程序 :管理FDO所代表的设备,负责其初始化、处理I/O操作、I/O操作完成时产生中断事件,为用户提供一种适当的设备控制方式。 总线驱动程序:负责管理PDO硬件和计算机之间的连接。 过滤器驱动程序:管理FiDO所代表的设备,用于监视和修改IRP流,硬件或软件人员可利用过滤器驱动程序修改上级驱动程序的传递过来的操作。; 设备对象与设备驱动程序关系;应用程序对设备对象的操作过程; 驱动程序处理:每层驱动程序都可决定如何处理IRP,既可直接处理完该IRP就不再向下传,也可处理完后继续向下传递,还可只做向下传递工作。下层处理完的返回信息又通过该包的结构逐层向上传递。;设备驱动程序的装入过程;PnP管理器查找注册表中与该PDO相吻合的各级驱动程序;PnP管理器根据需要给设备发送各种PnP IRP; WDM驱动程序的结构;WDM驱动程序包含例程;驱动程序的DriverEntry函数示例:;驱动程序的AddDevice函数示例:;驱动程序的IRP派遣函数示例:;I/O请求包(IRP);由一个固定的首部和一个可变数目的I/O栈组成。;I/O栈:通过IO_STACK_LOCATION结构数组实现。 一次I/O请求可能对应多个I/O操作 实现方法: 较多个IRP实现; 一个IRP实现+I/O栈实现。(较优);;IRP_MJ_CREATE请求,创建设备映射; IRP_MJ_CLOSE请求,关闭设备映射; IRP_MJ_READ请求,读取设备对象的信息; IRP_MJ_WRITE请求,对设备对象写信息; IRP_MJ_PNP请求,实现PnP管理,如IRP_MN_START_DEVICE请求,启动设备; IRP_MJ_IOCTL请求,I/O控制。 ;2、IRP创建与处理; I/O管理器在创建完IRP后,将I/O请求信息设置到IRP中,并将IRP发送到设备驱动程序中。 ;IoCallDriver的执行过程:;3、IRP参数与Win32 API;五、即插即用;六、数据读/写;1、内存与端口访问;2、响应中断;七、WDM驱动程序的安装文件;节;节;1、有时候读书是一种巧妙地避开思考的方法。5月-205月-20Tuesday, May 26, 2020 2、阅读一切好书如同和过去最杰出的人谈话。19:03:2319:03:2319:035/26/2020 7:03:23 PM 3、越是没有本领的就越加自命不凡。5月-2019:03:2319:03May-2026-May-20 4、越是无能的人,越喜欢挑剔别人的错儿。19:03:2319:03:2319:03Tuesday, May 26, 2020 5、知人者智,自知者明。胜人者有力,自胜者强。5月-205月-2019:03:2319:03:23May 26, 2020 6、意志坚强的人能把世界放在手中像泥块一样任意揉捏。26 五月 20207:03:23 下午19:03:235月-20 7、最具挑战性的挑战莫过于提升自我。。五月 207:03 下午5月-2019:03May 26, 2020 8、业余生活要有意义,不要越轨。2020/5/26 19:03:2319:03:2326 May 2020 9、一个人即使已登上顶峰,也仍要自强不息。7:03:23 下午7:03 下午19:03:235月-20 10、你要做多大的事情,就该承受多大的压力。5/26/2020 7:03:23 PM19:03:2326-5月-20 11、自己要先看得起自己,别人才会看得起你。5/26/2020 7:03 PM5/26/2020 7:03 PM5月-205月-20 12、这一秒不放弃,下一秒就会有希望。26-May-2026 May 20205月-20 13、无论才能知识多么卓著,如果缺乏热情,则无异纸上画饼充饥,无补于事。Tuesday, May 26, 202026-May-205月-20 14、我只是自己不放过自己而已,现在我不会再逼自己眷恋了。5月-2019:03:2326 May 202019:03

文档评论(0)

1亿VIP精品文档

相关文档