Windows CE 5.0:驱动程序---设备管理器

Windows CE 5.0:驱动程序---设备管理器

 

发布日期: 11/1/2004 | 更新日期: 11/1/2004

设备管理器是在 Windows CE 操作系统下运行的进程,它跟踪已加载的驱动程序和它们的接口。它连续不断地运行并且从内核中启动。设备管理器可以在设备接口变得可用和不可用时通知用户。用户或系统本身可以使设备接口变得可用或不可用。另外,设备管理器通知内核设备接口支持文件操作(例如,CreateFile)访问公开流接口的设备。设备管理器向设备驱动程序发送电源通知回调并提供电源管理服务。有关详细信息,请参阅 Power Management

设备管理器控制注册表中的 Active 项。只有设备管理器应当访问 Active 项以获取读取或写入访问权限。您可以通过设备驱动程序的初始化函数的参数间接访问 Active 项。

设备管理器搜索 HKEY_LOCAL_MACHINE/Drivers/RootKey 注册表项,以确定用于开始驱动程序加载过程的项。RootKey 的默认值是 Drivers,但是它通常等于 Drivers/BuiltIn。设备管理器调用 ActivateDeviceEx 以加载由 Dll 子项的值(它位于由 RootKey 值指定的项中)指定的驱动程序。Dll 子项的值默认情况下为 BusEnum.dll(也称为总线枚举器)。加载 BusEnum.dll 会使所有设备驱动程序加载。由 ActivateDeviceEx 加载的设备可以从它的 Active 注册表项中读取它的激活句柄。

当设备管理器加载时,它还加载 I/O 资源管理器,以便从注册表中读取可用资源的列表。有关 I/O 资源管理器的详细信息,请参阅 I/O Resource Manager

设备管理器将总线名称与驱动程序相关联。未命名的设备也可以具有总线名称,因为即使应用程序可能无法访问驱动程序,驱动程序也可能被其他驱动程序或系统实体(例如,电源管理器)访问。总线名称可以具有与正规设备名称不同的 ACL。

设备管理器跟踪由驱动程序公布的接口,并且支持基于全局唯一标识符 (GUID) 搜索驱动程序。IClass 接口可以将接口 GUID 与驱动程序的旧式名称、$device 名称或 $bus 名称(例如,“COM1 :”、“$device/com1”或“$bus/pci_0_3_0”)相关联。

驱动程序可以通过调用 DMAdvertiseInterface 以编程方式公布接口。DMAdvertiseInterface 使驱动程序能够将更多可搜索的 GUID 添加到它们的关联列表中。DMAdvertiseInterface 由 Devmgr.dll 公开,后者还实现了大多数设备管理器功能。因为只有设备管理器可以加载 Devmgr.dll,所以只有设备驱动程序可以调用 DMAdvertiseInterface。如果设备驱动程序在卸载时没有公布它的接口的不可用性,则设备管理器会自动清除接口公布通知。

设备管理器组件

设备管理器由 Device.exe 和 Devmgr.dll 组成。Device.exe 包含 Devmgr.dll,后者实现了核心设备管理器功能。因为设备管理器由两个单独的模块组成,所以设备驱动程序可以直接与设备管理器链接并调用特定的函数(例如,DMAdvertiseInterface),而不会引起系统调用的开销。

下表显示了设备管理器的组件。

组件说明

devcore

提供核心设备管理器功能。

iorm

提供 I/O 资源管理器功能。Iorm 是必需的组件且无法移除。

nopmif

pmif

Pmif 提供了电源管理器 DLL 入口点的接口。

Nopmif 提供了电源管理器入口点的存根版本。

另请参阅

Device File Names | Device Manager Reference | Device Manager Registry Keys | I/O Resource Manager | Resolving Race Conditions in Device Drivers | Stream Interface Drivers

 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows终端中使用"systemctl daemon-reload systemctl restart docker"命令会报错,因为Windows系统并不支持systemctl命令。systemctl是Linux系统中用于管理systemd服务的命令工具。在Windows系统中,你可以使用其他方式来重新加载服务和重启Docker。 解决方案可以是通过Docker Desktop来管理和操作Docker服务。Docker Desktop是一个可在Windows和Mac上运行的应用程序,它提供了一个图形界面和命令行工具来管理和操作Docker容器和服务。你可以从Docker官方网站下载并安装Docker Desktop,然后使用它来重新加载服务和重启Docker。 另外,如果你遇到了特定的错误提示,可以提供更具体的错误信息,以便我能够给出更准确的解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [docker启动报错Warning: docker.service changed on ... Run ‘systemctl daemon-reload‘ to reload units.](https://blog.csdn.net/weixin_45387943/article/details/122958389)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [centos7.6离线安装docker-ce-19.03、nvidia-docker2](https://download.csdn.net/download/qq_28971045/86273739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值