Windows UMDF驱动DLL运行于哪个进程?CoInstaller已在mmc.exe中运行
UMDF驱动进程归属说明
你的CoInstaller运行在mmc.exe是正常的,但UMDF驱动本身绝不会运行在mmc.exe进程中,具体分版本说明:
为什么CoInstaller在mmc.exe
CoInstaller是驱动安装/更新流程中的辅助组件,当你通过设备管理器(MMC的管理单元之一)操作驱动时,mmc.exe会加载CoInstaller来执行安装前的检查、注册表配置或安装后的初始化动作,所以它的运行进程和MMC绑定。
UMDF驱动的实际运行进程
UMDF 1.x版本
驱动DLL会运行在独立的WudfHost.exe进程中。默认情况下,每个UMDF 1驱动会启动一个专属的WudfHost.exe实例(也可通过配置共享宿主进程),这个进程由Windows驱动框架服务(WudfSvc)启动,完全独立于MMC进程。
UMDF 2.x版本
驱动有两种运行模式:
- 默认模式:和UMDF 1.x一致,运行在
WudfHost.exe进程; - 系统托管模式(需通过INF配置
HostProcess=System):驱动会运行在svchost.exe(对应WudfSvc服务的实例)进程中,但依然和mmc.exe无关联。
验证方法
你可以在UMDF驱动代码中添加日志输出当前进程名称,比如调用GetModuleFileName(NULL, ...)获取进程路径并提取文件名;或者用Process Explorer工具,查找你的驱动DLL对应的加载进程,直接确认进程归属。
内容的提问来源于stack exchange,提问作者Tom Xue
相关产品推荐
相关产品推荐

