《[精选]wince设备管理器.pptx》由会员分享,可在线阅读,更多相关《[精选]wince设备管理器.pptx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、设备管理器l 设备管理器简介l 设备的初始化l 设备的管理设备管理器简介l l Device.exe 是Windows CE 中的设备管理器Device Manager。负责对几乎所有的外设驱动程序进行管理。l l 设备管理器的功能 为驱动程序 为驱动程序 DLL DLL 文件 文件 提供宿主进程;提供宿主进程;管理驱动程序,负责加载、初始化、卸载驱动程序;管理驱动程序,负责加载、初始化、卸载驱动程序;在特殊驱动事件发生时对其他应用程序发出通知;在特殊驱动事件发生时对其他应用程序发出通知;实现并暴露设备管理相关的 实现并暴露设备管理相关的API API 函数;函数;提供电源管理的接口;提供电源
2、管理的接口;负责对 负责对I/O I/O 资源进行管理。资源进行管理。设备的初始化ll 设备初始化的两个阶段 Device.exe 本身的初始化;外设的枚举和加载。Device.exe 本身的初始化NK NK 根据注册表 根据注册表HKEY_LOCAL_MACHINEinit HKEY_LOCAL_MACHINEinit下的内容启动进程 下的内容启动进程Device.exe Device.exeDevice.exe Device.exe 初始化本身的一些数据结构 初始化本身的一些数据结构Device.exe Device.exe 初始化 初始化I/O I/O 资源管理器和电源管理器 资源管理器
3、和电源管理器Device.exe Device.exe 加载 加载BusEnum.dll BusEnum.dll,控制权就交给了,控制权就交给了BusEnum.dll BusEnum.dll,Device.exe Device.exe 本身的初始化结束 本身的初始化结束外设的枚举和加载l l这个阶段也称为总线枚举这个阶段也称为总线枚举Bus EnumerationBus Enumeration,此阶段的绝大局部工作是由总线枚举器此阶段的绝大局部工作是由总线枚举器BusEnum.dllBusEnum.dll,由它负责加载和初始化所有的内由它负责加载和初始化所有的内置外设。置外设。l l 它的源代
4、码是公开的,在%_WINCEROOT%PUBLIC%_WINCEROOT%PUBLIC MONOAKDRIVERSBUSENUMBUSENUMMONOAKDRIVERSBUSENUMBUSENUM下下总线枚举的过程内核Device.exeBusEnum.dll加载 加载加载 加载BusEnum.dll加载ISA 设备驱动BusEnum.dll加载 加载NE2000.dll XXX.dll加载 加载PCI PCI 设备驱 设备驱动 动总线枚举器的位置l l Device.exe Device.exe 会在注册表 会在注册表HKEY_LOCAL_MACHINEDriversRootKey HKEY
5、_LOCAL_MACHINEDriversRootKey 下面读取 下面读取总线枚举器的位置。总线枚举器的位置。RootKey RootKey 的值是总线递归遍历的 的值是总线递归遍历的“根。如果 根。如果RootKey RootKey 的值为 的值为DriversBuildIn,DriversBuildIn,那么总线枚 那么总线枚举器的信息就存放在 举器的信息就存放在HKEY_LOCAL_MACHINEDriversBuiltIn HKEY_LOCAL_MACHINEDriversBuiltIn 下。下。ActivateDeviceExl l ActivateDeviceEx Activat
6、eDeviceEx 负责加载驱动程序,并将驱动程序的注 负责加载驱动程序,并将驱动程序的注册值添加到注册表的 册值添加到注册表的Active Active 项中。项中。l l ActivateDevice ActivateDevice 函数根据注册表的信息,把对应的驱动 函数根据注册表的信息,把对应的驱动DLL DLL加载到 加载到Device.exe Device.exe 的地址空间内;然后在注册表 的地址空间内;然后在注册表HKEY_LOCAL_MACHINEDriversActive HKEY_LOCAL_MACHINEDriversActive 键下面添加一个 键下面添加一个子键,来记
7、录已经加载的驱动程序。子键,来记录已经加载的驱动程序。l l HANDLE ActivateDeviceEx HANDLE ActivateDeviceEx LPCWSTR LPCWSTR lpszDevKey lpszDevKey,/,/注册表的路径 注册表的路径 LPCVOID LPCVOID lpRegEnts lpRegEnts,/,/要添加到注册表 要添加到注册表Active Active 中的附加 中的附加信息 信息 DWORD DWORD cRegEnts cRegEnts,/lpRegEnts,/lpRegEnts 的个数 的个数 LPVOID LPVOID lpvParam
8、lpvParam/附加信息,会被作为参数传递给 附加信息,会被作为参数传递给驱动的 驱动的xxx_Init xxx_Init;设备的管理ll 设备驱动程序被设备管理器加载后,设备管理器负责对设备进行一系列管理,主要涉及:设备的枚举 通过名称访问设备 对应用程序的通知设备的名称管理l l 应用程序访问驱动最常用的方法:通过文件系统API 函数例如CreateFile,将文件I/O 函数的调用转化为对设备相应函数的访问。如果用CreateFile 函数翻开某个设备驱动,则CreateFile 函数的第1 个参数是设备的名字。l l 设备的命名方式 传统设备命名:传统设备命名:3 3 个大写的英文字
9、母 个大写的英文字母+09+09 设备挂载点命名:设备挂载点命名:$device+3$device+3 个大写的英文字母 个大写的英文字母+数字 数字 总线挂载点命名:总线挂载点命名:$bus+$bus+总线名称、总线号、设备号和 总线名称、总线号、设备号和功能号 功能号应用程序的通知l l 在编写应用程序时,如果需要用到某个设备,则经常要知道某个设备是否就绪。驱动程序和设备就绪时,向应用程序发送通知。l l 设备管理器提供了专门的函数,负责向应用程序发送驱动通知:HANDLE RequestDeviceNotifications HANDLE RequestDeviceNotificatio
10、ns const GUID*const GUID*devclass devclass,/,/设备的 设备的IClass IClass HANDLE HANDLE hMsgQ hMsgQ,/,/消息队列的句柄 消息队列的句柄 BOOL BOOL fAll fAll/是否发送所有通知 是否发送所有通知;BOOL StopDeviceNotifications BOOL StopDeviceNotifications HANDLE HANDLE h h/RequestDeviceNotifications/RequestDeviceNotifications 翻开的句柄 翻开的句柄;接口类Inter
11、face Class l l 驱动程序的接口有以下特征 驱动程序的接口有以下特征 每一个 每一个Iclass Iclass 有一个 有一个GUID GUID,一个名字 一个名字 GUID GUID 描述类设备接口 描述类设备接口 Name Name 描述接口的实例 描述接口的实例 1:,DSK1:1:,DSK1:等等 等等l l 提供一个驱动接口 提供一个驱动接口 在注册表中的 在注册表中的Iclass Iclass 子键 子键 驱动程序发布接口 驱动程序发布接口 AdvertiseInterface AdvertiseInterfacel l 应用程序访问接口 应用程序访问接口 Reques
12、tDeviceNotifications RequestDeviceNotificationsl l 每个已有的接口的预定义 每个已有的接口的预定义GUID GUID A32942B7-920C-486b-B0E6-92A702A99B35 A32942B7-920C-486b-B0E6-92A702A99B35 驱动的加载过程1.1.当Device.exe 对设备驱动程序进行安装时将在注册表的HKEY_LOCAL_ MACHINEDrivers 项下检查一个字符串,其值为 RootKey,传统地,其名字为 BuiltIn。2.2.然后设备管理器在进行初始化时使用注册信息检查器为它需要安装的各
13、个驱动读取值为RootKey 的键。驱动的加载过程驱动的加载过程3.3.安装DLL,给每一个驱动创立一个Active 键,然后调用ActivateDevice 或者 ActivateDeviceEx 将DLL 注册为系统中的一个设备驱动程序。4.4.ActivateDevice 在 HKEY_LOCAL_MACHINEDriversActive 下创立一个新的键值。驱动的加载过程驱动加载APIl l 设备驱动程序也能通过应用程序进行手动的安装,这是ActivateDeviceEx 的一个首选的功能。l l 安装驱动一个更老的方法是使用RegisterDevice 与 DeregisterDev
14、ice 驱动是如何工作的1.1.When CE 启动时,Device.exe 根据注册表中的设置安装所有的驱动程序。2.2.当安装mydriver.dll 时,device.exe 调用 DEM1_Init。3.3.Application 程序调用CreateFile“DEM1 驱动是如何工作的4.4.Coredll.dll 处理API 调用并切换到 device.exe5.5.Device.exe 调用mydriver.dll 的DEM1_Open。6.6.CreateFile 返回DEM1_Open 的retvall l 9 9、静夜四无、静夜四无 邻 邻,荒居旧,荒居旧 业贫 业贫。6
15、6 月 月-23-236 6 月 月-23-23Thursday,June 1,2023 Thursday,June 1,2023l l 10 10、雨中黄叶、雨中黄叶 树 树,灯下白,灯下白 头 头 人。人。12:23:13 12:23:1312:23:13 12:23:1312:23 12:236/1/2023 12:23:13 PM 6/1/2023 12:23:13 PMl l 11 11、以我独沈久,愧君相、以我独沈久,愧君相 见频 见频。6 6 月 月-23-2312:23:13 12:23:1312:23 12:23Jun-23 Jun-2301-Jun-23 01-Jun-23
16、l l 12 12、故人江海、故人江海 别 别,几度隔山川。,几度隔山川。12:23:13 12:23:1312:23:13 12:23:1312:23 12:23Thursday,June 1,2023 Thursday,June 1,2023l l 13 13、乍、乍 见 见 翻疑梦,相悲各 翻疑梦,相悲各 问 问 年。年。6 6 月 月-23-236 6 月 月-23-2312:23:13 12:23:1312:23:13 12:23:13June 1,2023 June 1,2023l l 14 14、他、他 乡 乡 生白 生白 发 发,旧国,旧国 见 见 青山。青山。01 01 六月
17、 六月 2023 202312:23:13 12:23:13 下午 下午12:23:13 12:23:136 6 月 月-23-23l l 15 15、比不了得就不比,得不到的就不要。、比不了得就不比,得不到的就不要。六月 六月 23 2312:23 12:23 下午 下午6 6 月 月-23-2312:23 12:23June 1,2023 June 1,2023l l 16 16、行、行 动 动 出成果,工作出 出成果,工作出 财 财 富。富。2023/6/1 12:23:13 2023/6/1 12:23:1312:23:13 12:23:1301 June 2023 01 June 2
18、023l l 17 17、做前,能、做前,能 够环视 够环视 四周;做 四周;做 时 时,你只能或者最好沿着以脚,你只能或者最好沿着以脚 为 为 起点的射 起点的射 线 线 向前。向前。12:23:13 12:23:13 下午 下午12:23 12:23 下午 下午12:23:13 12:23:136 6 月 月-23-23l l 9 9、没有失、没有失 败 败,只有,只有 暂时 暂时 停止成功!。停止成功!。6 6 月 月-23-236 6 月 月-23-23Thursday,June 1,2023 Thursday,June 1,2023l l 10 10、很多事情努力了未必有、很多事情努
19、力了未必有 结 结 果,但是不努力却什么改 果,但是不努力却什么改 变 变 也没有。也没有。12:23:13 12:23:1312:23:13 12:23:1312:23 12:236/1/2023 12:23:13 PM 6/1/2023 12:23:13 PMl l 11 11、成功就是日复一日那一点点小小努力的、成功就是日复一日那一点点小小努力的 积 积 累。累。6 6 月 月-23-2312:23:13 12:23:1312:23 12:23Jun-23 Jun-2301-Jun-23 01-Jun-23l l 12 12、世、世 间 间 成事,不求其 成事,不求其 绝对圆满 绝对圆满
20、,留一份缺乏,可得无限完美。,留一份缺乏,可得无限完美。12:23:13 12:23:1312:23:13 12:23:1312:23 12:23Thursday,June 1,2023 Thursday,June 1,2023l l 13 13、不知香、不知香 积 积 寺,数里入云峰。寺,数里入云峰。6 6 月 月-23-236 6 月 月-23-2312:23:13 12:23:1312:23:13 12:23:13June 1,2023 June 1,2023l l 14 14、意志、意志 坚强 坚强 的人能把世界放在手中像泥 的人能把世界放在手中像泥 块 块 一 一 样 样 任意揉捏。
21、任意揉捏。01 01 六月 六月 2023 202312:23:13 12:23:13 下午 下午12:23:13 12:23:136 6 月 月-23-23l l 15 15、楚塞三湘接,、楚塞三湘接,荆门 荆门 九派通。九派通。六月 六月 23 2312:23 12:23 下午 下午6 6 月 月-23-2312:23 12:23June 1,2023 June 1,2023l l 16 16、少年十五二十、少年十五二十 时 时,步行,步行 夺 夺 得胡 得胡 马骑 马骑。2023/6/1 12:23:13 2023/6/1 12:23:1312:23:13 12:23:1301 June
22、 2023 01 June 2023l l 17 17、空山新雨后,天气晚来秋。、空山新雨后,天气晚来秋。12:23:13 12:23:13 下午 下午12:23 12:23 下午 下午12:23:13 12:23:136 6 月 月-23-23l l 9 9、杨 杨 柳散和 柳散和 风 风,青山澹吾,青山澹吾 虑 虑。6 6 月 月-23-236 6 月 月-23-23Thursday,June 1,2023 Thursday,June 1,2023l l 10 10、阅读 阅读 一切好 一切好 书 书 如同和 如同和 过 过 去最杰出的人 去最杰出的人 谈话 谈话。12:23:13 12:
23、23:1312:23:13 12:23:1312:23 12:236/1/2023 12:23:13 PM 6/1/2023 12:23:13 PMl l 11 11、越是没有本、越是没有本 领 领 的就越加自命非凡。的就越加自命非凡。6 6 月 月-23-2312:23:13 12:23:1312:23 12:23Jun-23 Jun-2301-Jun-23 01-Jun-23l l 12 12、越是无能的人,越喜、越是无能的人,越喜 欢 欢 挑剔 挑剔 别 别 人的 人的 错 错 儿。儿。12:23:13 12:23:1312:23:13 12:23:1312:23 12:23Thursd
24、ay,June 1,2023 Thursday,June 1,2023l l 13 13、知人者智,自知者明。、知人者智,自知者明。胜 胜 人者有力,自 人者有力,自 胜 胜 者 者 强 强。6 6 月 月-23-236 6 月 月-23-2312:23:13 12:23:1312:23:13 12:23:13June 1,2023 June 1,2023l l 14 14、意志、意志 坚强 坚强 的人能把世界放在手中像泥 的人能把世界放在手中像泥 块 块 一 一 样 样 任意揉捏。任意揉捏。01 01 六月 六月 2023 202312:23:13 12:23:13 下午 下午12:23:1
25、3 12:23:136 6 月 月-23-23l l 15 15、最具挑、最具挑 战 战 性的挑 性的挑 战 战 莫 莫 过 过 于提升自我。于提升自我。六月 六月 23 2312:23 12:23 下午 下午6 6 月 月-23-2312:23 12:23June 1,2023 June 1,2023l l 16 16、业 业 余生活要有意 余生活要有意 义 义,不要越,不要越 轨 轨。2023/6/1 12:23:13 2023/6/1 12:23:1312:23:13 12:23:1301 June 2023 01 June 2023l l 17 17、一个人即使已登上、一个人即使已登上 顶 顶 峰,也仍要自 峰,也仍要自 强 强 不息。不息。12:23:13 12:23:13 下午 下午12:23 12:23 下午 下午12:23:13 12:23:136 6 月 月-23-23MOMODA POWERPOINTLorem ipsum dolor sit amet,consectetur adipiscing elit.Fusce id urna blandit,eleifend nulla ac,fringilla purus.Nulla iaculis tempor felis ut cursus.感 谢 您 的 下 载 观 看专家告诉