如何确定哪个进程或服务正在使用 COM Surrogate

如何确定哪个进程或服务正在使用 COM Surrogate

我在 Win7 和 Win10 机器上都遇到了这个问题:当我浏览包含某种文件(具体来说,是约 100GB 的大型 Quicktime 文件)的文件夹时,Windows 会卡住几分钟。一切都停滞不前并锁定。

如果我事先打开任务管理器或资源监视器,我可以看到它是一个 COM Surrogate / dllhost.exe 实例,它似乎正在“咀嚼”巨大的视频文件,并且系统直到它完成才会再次响应。

经过大量的 Google 搜索和研究、卸载软件等,我仍然无法弄清楚背后的原因。我假设这是我安装的某个软件附加到 shell 上的,但我唯一能弄清楚它是什么的方法是复制它(这很容易)并跟踪哪个软件正在创建和使用 dllhost 实例。我该怎么做?

答案1

跑步进程探索器并将鼠标指向 dllhost.exe。现在,您会看到一个工具提示,其中包含由 dllhost.exe 加载的 DLL

在此处输入图片描述

这是缩略图创建 dll。对于您来说,这可能也显示出来,因此请在 Explorer 选项中禁用缩略图。

答案2

COM 代理负责缩略图生成,正如 magicandre1981 已经发布的那样。

Raymond Chen [MSFT] 指出:“实际上,如果您在浏览包含视频或媒体文件的文件夹时遇到此类崩溃,则问题很可能是编解码器不稳定。”https://devblogs.microsoft.com/oldnewthing/20090212-00/?p=19173

https://web.archive.org/web/20100126022525/http://blogs.msdn.com/oldnewthing/archive/2009/02/12/9413816.aspx(备用链接)

可以使用以下方法禁用第三方编解码器已安装的编解码器

补充说明:

如果您在 Process Explorer 中双击 dllhost.exe,它将显示由 dllhost.exe 托管的 CLSID。如果列出了一个,请在此处发布该信息。

(可以查找注册表中的 CLSID 来找到相应的编解码器/缩略图处理程序,并阻止其加载。)

相关内容