WinCE 6.0设备管理器
http://www.cnblogs.com/NorthCan/archive/2011/07/21/2112749.html
WinCE6设备管理器(Device Manager以下简称DM)的职能主要由三个Module完成。NK.exe去加载device.dll,device.dll加载devmgr.dll。最后活主要由devmgr.dll来干。有个疑问:那WinCE6的设备管理器是不是工作在内核态?由它所加载的驱动是不是也工作在内核态?某本WinCE书籍里讲到WinCE6的“用户态设备管理器”,我有点疑虑。
DM负责设备驱动的加载,初始化以及卸载。DM将驱动程序的导出接口进行封装,对应用层提供系统API接口。DM可以在设备发生某特定事件时向应用程序发出通知。DM负责管理设备使用的内存和IO端口等资源。
【WinCE 6.0设备管理器】系统启动之后,首先进行DM初始化,DM加载busenum.dll(称为总线枚举器,以下简称BE),BE负责加载和初始化注册表键BuiltIn下各个子键所描述的驱动。
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn]
"Dll"="BusEnum.dll"
BE首先枚举BuiltIn下的各个子键,找到Dll键值,也就是驱动的DLL文件名。然后调用ActivateDeviceEx函数加载该DLL。之后在[HKEY_LOCAL_MACHINE\Drivers\Active]下为加载成功的驱动创建一个子键,写入一些信息。BE调用驱动导出的XXX_Init,进行一些驱动的初始化操作,如映射IO和一些寄存器等。
BuiltIn子键下的驱动信息:
文章图片
加载成功的一个串口驱动:
文章图片
除了打印机和显示设备,HID设备,以及触摸屏等驱动由GWES管理之外,DM为WinCE操作系统掌管着其近乎所有的设备驱动。劳苦功高。
推荐阅读
- Android|Android install 多个设备时指定设备
- 视频搬运工小赵-10#16.04元
- Android6.0~9.0适配
- Spring|Spring Boot 整合 Activiti6.0.0
- VM|VM ware 的 harbor 私有仓库搭建 (Ubuntu16.04)
- ElasticSearch6.6.0强大的JAVA|ElasticSearch6.6.0强大的JAVA API详解
- Python+树莓派制作IoT(物联网)门控设备
- window.navigator.userAgent用来区分设备和浏览器
- Ubuntu|Ubuntu 16.04(LTS)---- 系统安装(1)
- ubuntu16.04-caffe-tensorflow安装教程