设备管理器
来源:互联网 发布:微信号采集源码 编辑:程序博客网 时间:2024/04/27 19:27
设备管理器是在Windows CE下运行的一个进程,来跟踪加载的驱动和它们的接口。它由内核加载并持续运行。设备管理器可以在设备接口变得可用和不可用时通知用户。用户或者系统自身可以使得设备接口可用或不可用。另外,设备管理器通知内核设备接口支持文件操作,例如CreateFile,来操作那些导出流接口的设备。设备管理器向设备驱动发送电源通知回调并且提供电源管理服务。
设备管理器控制注册表的Active键。仅设备管理器可以对Active键进行读写操作。你可以通过设备驱动初始化函数的一个参数来对Active键进行间接操作。
设备管理器搜索HKEY_LOCAL_MACHINE/Drivers/RootKey来决定开始加载驱动的注册表键。RootKey的默认值是Drivers但通常等于Drivers/BuiltIn。设备管理器调用ActivateDeviceEx来加载由RootKey键的Dll子键值决定的驱动。Dll子键的默认值是BusEnum.dll,也称为总线枚举器。加载BusEnum.dll会引起所有设备驱动的加载。通过ActivateDeviceEx加载的设备可以从Active注册表键中获取它的激活句柄。
当设备管理器加载时,它也可以加载I/O资源管理器来从注册表中读取一个可用资源列表。
设备管理器跟踪驱动的接口并且支持基于GUID(globally unique identifier)的驱动查找。IClass接口可以把接口GUID与驱动名字,设备名字或总线名字联系起来。例如,COM1:, $device/com1, or $bus/pci_0_3_0。
驱动可以调用DMAdvertiseInterface广播接口(advertise interfaces)。DMAdvertiseInterface使得驱动在它们的列表中增加GUIDs。DMAdvertiseInterface是被Devmgr.dll导出的,它同时也实现了设备管理器的大多数函数。只有设备驱动可以调用DMAdvertiseInterface,因为只有设备管理器可以加载Devmgr.dll。如果当驱动卸载时,设备驱动不广播那些不可用的接口,设备管理器将自动清除接口广播信息。
设备管理器组成
设备管理器由Device.exe和 Devmgr.dll组成。Device.exe包含Devmgr.dll,Devmgr.dll实现设备管理器的核心功能。因为设备管理器由两个独立的模块组成,设备驱动可以直接与设备管理器链接并且调用特定函数,例如DMAdvertiseInterface,而不用导致上层的系统调用。
下表为设备管理器的组成部分。
组成部分 | 描述 |
devcore | 提供设备管理器的核心功能 |
iorm | 提供I/O资源管理器的功能。Iorm 是必须的部分,不能被移除。 |
pmif nopmif | Pmif 提供电源管理器的入口点接口。 Nopmif 提供电源管理器的存根版本(stubbed version)的入口点。 |
- 设备管理器
- 设备管理器
- 设备管理器
- 设备管理器
- 设备管理器
- 设备管理器
- 枚举设备管理器设备
- 遍历设备管理器的设备
- 设备管理器显示隐藏设备
- 设备管理器的实现
- 设备管理器的用途
- XP 设备管理器错误代码!
- 打开设备管理器
- Android设备管理器漏洞
- WinCE 6.0设备管理器
- Android设备管理器
- android设备管理器接口
- Android设备管理器漏洞
- ERP选型及心得
- mina中Half Sync/Half Async模式
- 实用的控件内容保存器 简体修改版
- mina学习资料
- Ubuntu 上设置 Subversion
- 设备管理器
- Asp.net中基于Forms验证的角色验证授权
- 谋划(21)
- SQL优化34条
- IC卡读写器技术及应用
- 谋划(22)
- recently
- Ruby1.8.7+Rails2.2环境搭建
- 非接触IC卡技术及应用