欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    设备管理器.ppt

    • 资源ID:2401674       资源大小:504.01KB        全文页数:19页
    • 资源格式: PPT        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    设备管理器.ppt

    设备管理器,设备管理器简介 设备的初始化 设备的管理,设备管理器简介,Device.exe是Windows CE中的设备管理器(Device Manager)。负责对几乎所有的外设驱动程序进行管理。 设备管理器的功能 为驱动程序(DLL文件)提供宿主进程; 管理驱动程序,负责加载、初始化、卸载驱动程序; 在特殊驱动事件发生时对其他应用程序发出通知; 实现并暴露设备管理相关的API函数; 提供电源管理的接口; 负责对I/O资源进行管理。,设备的初始化,设备初始化的两个阶段 Device.exe本身的初始化; 外设的枚举和加载。,Device.exe本身的初始化,NK根据注册表HKEY_LOCAL_MACHINEinit 下的内容启动进程Device.exe,Device.exe初始化本身的一些数据结构,Device.exe初始化I/O资源管理器和电源管理器,Device.exe加载BusEnum.dll,控制权就交给了 BusEnum.dll,Device.exe本身的初始化结束,外设的枚举和加载,这个阶段也称为总线枚举(Bus Enumeration),此阶段的绝大部分工作是由总线枚举器(BusEnum.dll),由它负责加载和初始化所有的内置外设。 它的源代码是公开的,在%_WINCEROOT%PUBLICCOMMONOAKDRIVERSBUSENUMBUSENUM下,总线枚举的过程,内核,Device.exe,BusEnum.dll,加载,加载,BusEnum.dll (加载ISA设备驱动),BusEnum.dll,加载,NE2000.dll,XXX.dll,加载PCI设备驱动,总线枚举器的位置,Device.exe会在注册表HKEY_LOCAL_MACHINEDriversRootKey下面读取总线枚举器的位置。RootKey的值是总线递归遍历的“根”。如果RootKey的值为DriversBuildIn,那么总线枚举器的信息就存放在HKEY_LOCAL_MACHINEDriversBuiltIn下。,ActivateDeviceEx,ActivateDeviceEx负责加载驱动程序,并将驱动程序的注册值添加到注册表的Active项中。 ActivateDevice函数根据注册表的信息,把对应的驱动DLL加载到Device.exe的地址空间内;然后在注册表HKEY_LOCAL_MACHINEDriversActive键下面添加一个子键,来记录已经加载的驱动程序。 HANDLE ActivateDeviceEx ( LPCWSTR lpszDevKey, /注册表的路径 LPCVOID lpRegEnts, /要添加到注册表Active中的附加信息 DWORD cRegEnts, /lpRegEnts的个数 LPVOID lpvParam /附加信息,会被作为参数传递给驱动的xxx_Init );,设备的管理,设备驱动程序被设备管理器加载后,设备管理器负责对设备进行一系列管理,主要涉及: 设备的枚举 通过名称访问设备 对应用程序的通知,设备的名称管理,应用程序访问驱动最常用的方法:通过文件系统API函数(例如CreateFile(),将文件I/O函数的调用转化为对设备相应函数的访问。 如果用CreateFile()函数打开某个设备驱动,则CreateFile()函数的第1个参数是设备的名字。 设备的命名方式 传统设备命名:3个大写的英文字母+09 设备挂载点命名:$device+ 3个大写的英文字母+数字 总线挂载点命名: $bus+总线名称、总线号、设备号和功能号,应用程序的通知,在编写应用程序时,如果需要用到某个设备,则经常要知道某个设备是否就绪。驱动程序和设备就绪时,向应用程序发送通知。 设备管理器提供了专门的函数,负责向应用程序发送驱动通知: HANDLE RequestDeviceNotifications( const GUID* devclass, /设备的IClass HANDLE hMsgQ, /消息队列的句柄 BOOL fAll /是否发送所有通知 ); BOOL StopDeviceNotifications( HANDLE h / RequestDeviceNotifications打开的句柄 );,接口类(Interface Class),驱动程序的接口有以下特征 每一个Iclass有一个GUID,一个名字 GUID描述类设备接口 Name 描述接口的实例 COM1:, DSK1: 等等 提供一个驱动接口 在注册表中的Iclass子键 驱动程序发布接口 AdvertiseInterface 应用程序访问接口 RequestDeviceNotifications 每个已有的接口的预定义GUID A32942B7-920C-486b-B0E6-92A702A99B35,驱动的加载过程,当Device.exe对设备驱动程序进行安装时将在注册表的HKEY_LOCAL_ MACHINEDrivers项下检查一个字符串,其值为 RootKey,传统地,其名字为 BuiltIn 。 然后设备管理器在进行初始化时使用注册信息检查器为它需要安装的各个驱动读取值为RootKey的键。,驱动的加载过程,驱动的加载过程,安装DLL,给每一个驱动创建一个Active 键,然后调用ActivateDevice 或者 ActivateDeviceEx将DLL注册为系统中的一个设备驱动程序。 ActivateDevice在 HKEY_LOCAL_MACHINEDriversActive下创建一个新的键值。,驱动的加载过程,驱动加载API,设备驱动程序也能通过应用程序进行手动的安装,这是ActivateDeviceEx的一个首选的功能。 安装驱动一个更老的方法是使用RegisterDevice 与 DeregisterDevice,驱动是如何工作的,When CE启动时, Device.exe根据注册表中的设置安装所有的驱动程序。 当安装mydriver.dll时, device.exe 调用 DEM1_Init。 Application程序调用CreateFile(“DEM1”),驱动是如何工作的,Coredll.dll 处理API调用并切换到 device.exe Device.exe 调用mydriver.dll 的DEM1_Open。 CreateFile返回DEM1_Open的retval,

    注意事项

    本文(设备管理器.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开