web-dev-qa-db-ja.com

COMサロゲートを使用しているプロセスまたはサービスを特定するにはどうすればよいですか。

私はWin7とWin10の両方のマシンでしばらくこの問題を抱えています:特定の種類のファイルが含まれているフォルダ(具体的には、最大100GBの大きなQuicktimeファイル)を参照すると、Windowsが数分間停止します。すべてが途切れてロックされます。

事前にタスクマネージャーまたはリソースモニターを開くと、巨大なビデオファイルを「かみ砕いている」ように見えるCOMサロゲート/ dllhost.exeインスタンスであり、終了するまでシステムが再び応答しなくなることがわかります。

たくさんのグーグルと調査、ソフトウェアのアンインストールなどの後、私はまだその背後にあるものを理解することができません。インストールしたソフトウェアがシェルに接続されていると思いますが、それが何であるかを理解する唯一の方法は、それを複製し(非常に簡単です)、どのソフトウェアが作成および使用しているかを追跡することです。 dllhostインスタンス。どうやってやるの?

1
user50215

Process Explorer を実行し、dllhost.exeの上にマウスを置きます。これで、dllhost.exeによってロードされたDLLのツールチップが表示されます。

enter image description here

これがdllを作成するサムネイルです。これも表示される可能性があるため、エクスプローラーオプションでサムネイルを無効にします。

1
magicandre1981

Magicandre1981がすでに投稿したように、COMサロゲートはサムネイルの生成を担当します。

また、Raymond Chen [MSFT]は次のように述べています。「実際には、ビデオまたはメディアファイルを含むフォルダを参照しているときにこの種のクラッシュが発生した場合、問題はコーデックの不安定さである可能性が高いです。」 http://blogs.msdn.com/oldnewthing/archive/2009/02/12/9413816.aspx

サードパーティのコーデックは、 InstalledCodec を使用して無効にできます。

追記:

Process Explorerでdllhost.exeをダブルクリックすると、dllhost.exeによってホストされているCLSIDが表示されます。リストされているものがある場合、plsはその情報をここに投稿します。

(レジストリでCLSIDを検索して、対応するコーデック/サムネイルハンドラを見つけ、ロードされないようにすることができます。)

1
w32sh