Windows 10のCOMサロゲート(dllhost.exe)とは?動作の仕組みとエラー・クラッシュへの対処法を徹底解説
タスクマネージャーを開いたとき、「このプロセスは何をしているんだろう?」と疑問に思ったことはありませんか?最近のWindowsではプロセス名がわかりやすくなっていますが、その正確な役割まで把握するのは意外と難しいものです。
そんな中で見かけたことがあるかもしれないのが、「COMサロゲート(COM Surrogate)」、別名dllhost.exeというプロセスです。これは何のためのプロセスなのか、なぜ起動するのか、そしてウイルスではないのか——本記事で詳しく解説します。
COMサロゲートとは何か?
Microsoftによると、COMサロゲートとは「要求元のプロセス外でCOMオブジェクトを実行するための、いわば『身代わり』として動作するプロセス」です。少々わかりにくい定義なので、具体例を挙げながら分解して見ていきましょう。
まず、COM(Component Object Model:コンポーネント オブジェクト モデル)オブジェクトとは、Microsoftが設計したソフトウェア間の連携規格であり、複数のプロセス同士が容易にやり取りできるようにする仕組みです。たとえば、Word文書の中にExcelの表を埋め込んでいる場合、Excel側での編集内容がWord内の表にも自動的に反映される——これは共有オブジェクトのおかげで実現しています。
そしてプロセス名からも推測できるように、これらのCOMオブジェクトは実体としてはDLLファイルです。保護されたWindowsフォルダーに配置されており、OS(オペレーティングシステム)が正常に機能するために欠かせない存在となっています。
「身代わり」というのはどういう意味?
次に、「身代わりとして動作するプロセス」という表現の意味を掘り下げてみましょう。ここでも例を使って説明します。
COMサロゲートの代表的な利用シーンが、エクスプローラーによるサムネイル画像の生成です。古いバージョンのWindowsでは、エクスプローラーのプロセス自体がサムネイルの生成処理を行っていました。しかし、サムネイル抽出処理は必ずしも安定しているとは限らず、これが原因で頻繁にクラッシュが発生していました。
経験のある方も多いはずです。数百枚の画像が入ったフォルダーや、Windowsが想定していないファイル形式を含むフォルダーを開くと、エクスプローラーが丸ごと落ちてしまうことがありました。
そこでWindowsは、クラッシュのリスクがある処理を検知すると、COMサロゲートという別プロセスを立ち上げて危険な処理を任せるようになりました。サムネイルを大量に生成するフォルダーを開く際には、エクスプローラーからCOMサロゲートへ処理が委譲されます。こうすることで、仮にサムネイル読み込み中にクラッシュしても、エクスプローラー本体は無事に済むのです。
このプロセスを終了させてもいい?
他の重要なWindowsプロセスと異なり、タスクマネージャー(Ctrl + Shift + Esc)を開いてCOMサロゲートのプロセスを強制終了することは可能です。ただし、基本的におすすめはできません。プログラムが必要に応じてこのプロセスを作成しているため、終了させるといずれかの処理が中断されてしまいます。
また、COMサロゲートは他のプログラムからの要求時にのみ起動するため、無効化することもできません。
どのプロセスがCOMサロゲートを起動したのか確認する方法
標準のタスクマネージャーは機能がシンプルなため、COMサロゲートの詳細情報を確認することができません。複数のインスタンスが同時に動いていることも多いので、「一体どのプログラムが起動しているのか?」と気になるでしょう。それを調べるには、高機能なタスクマネージャー代替ツールとして人気のProcess Explorerをダウンロードする必要があります。
Process Explorerは、PC上で実行中のプロセスに関する豊富な詳細情報を提供しており、COMサロゲートを起動した親プロセスを特定できます。リストの中からdllhost.exeを探してください。Description欄にCOM Surrogateと表示されているはずです。マウスカーソルを重ねると、そのプロセスの正体に関する情報がポップアップ表示されます。
dllhostのプロセスが見つからない場合は、Ctrl + Fで検索バーを開き、dllhost.exeと入力すればすべてのインスタンスを簡単に見つけられます。何も表示されない場合は、現時点でCOMサロゲートを使用しているプログラムがない可能性があります。
以下の例では、このCOMサロゲートがサムネイル処理を担当していることが確認できます。
COMサロゲートのクラッシュを修正する方法
COMサロゲートは普段あまり意識されることはなく、多くの方が気づくのは「動作が停止しました」というエラーが表示され、Windows 10のパフォーマンスに影響が出たときでしょう。大半の場合、原因となるのは特定のファイルで、特にサムネイル関連であることが多いです。COMサロゲートのエラーが繰り返し発生する場合は、以下の解決策を順番に試してみてください。
- コーデックパックやメディアソフトウェアを更新・アンインストールする。 K-Lite Codec Packのようなコーデックパックや、DivX、Neroなどのメディアツールを使用している場合、それらが原因になっている可能性があります。現在ではVLCさえあればあらゆる形式を再生でき、Neroの代替となる無料ソフトも豊富にあるため、思い切ってアンインストールするのも一案です。
- Windows Updateを適用する。 最新のアップデートをインストールすることで問題が解消したという報告もあります。常に有効とは限りませんが、手軽に試せる第一歩です。Microsoftが最新のパッチで特定のファイル形式に関する不具合を修正しているかもしれません。
- 既存のサムネイルを削除する。 破損したサムネイルがCOMサロゲートのクラッシュを引き起こしている場合は、ディスククリーンアップツールで削除できます。これによりWindowsがサムネイルキャッシュを再構築し、問題が解決する可能性があります。
- 問題のファイルを特定する。 前述のProcess Explorerを使って、dllhostがアクセスしようとしているファイルを調べます。特定のファイルが示されていれば、それがほぼ間違いなく原因です。そのファイルを削除して、問題が収まるか確認しましょう。
- データ実行防止(DEP)の対象からCOMサロゲートを除外する。 Windowsには、悪意のあるコードの実行を防ぐ「データ実行防止(DEP)」という仕組みがあり、特定のプロセスをこの対象から除外できます。COMサロゲートを除外することでエラーが止まる場合があります。
- スタートメニューに「advanced system」と入力し、「システムの詳細設定の表示」を選択します。パフォーマンス欄の「設定」ボタンをクリックし、「データ実行防止」タブを開きます。
- 2番目の選択肢「すべてのプログラムおよびサービスについて、次のものを除くDEPを有効にする」を選び、「追加」ボタンをクリックします。
- 32ビットシステムの場合はC:\Windows\System32\dllhost.exe、64ビット版Windowsの場合はC:\Windows\SysWOW64\dllhost.exeを指定します。OKをクリックして変更を保存します。
- ハードディスクのエラーをスキャンする。 エラーが不定期に発生する場合は、いくつかのスキャンを実行しましょう。コマンドプロンプトでSFCコマンドを使ってWindowsシステムファイルを修復したり、CHKDSKコマンドでハードディスクのエラーをチェックしたりできます。
- コマンドプロンプトでDLLファイルを再登録する。 コマンドプロンプトでregsvr32 vbscript.dllとregsvr32 jscript.dllを実行すると、関連する2つのDLLが再登録され、COMサロゲートのクラッシュが解消されることがあります。
- アンチウイルスソフトを確認する。 カスペルスキー製アンチウイルスとの競合が原因という報告もあります。アンチウイルス保護を一時的に無効化して、同じファイルやフォルダーへのアクセスでもエラーが発生するか試してみてください。
- サムネイルを必要としないなら、完全に無効化する。
これはウイルス感染の兆候?
通常のCOMサロゲートプロセスはWindowsの標準的な構成要素であり、悪意のあるものではありません。ただし、一部のマルウェアはdllhostプロセスを装って不正な活動を行うことが知られています。タスクマネージャーに大量のCOMサロゲートが表示され、CPU使用率が異常に高い場合は、感染の兆候かもしれません。
この種のマルウェアは重要なシステムプロセスやファイルになりすますため、自分だけで除去しようとするのはおすすめしません。誤って重要なファイルを削除してしまう恐れがあります。代わりに、インストール済みのアンチウイルスでスキャンを実行し、さらに別のソフトでもスキャンして、確実に駆除できているか確認しましょう。
アンチウイルス選びに迷ったら、広告表示のないおすすめのセキュリティソフト一覧を参考にしてください。また、常時使用していなくてもWindows Defenderでスキャンできることを忘れないでください(むしろ常時有効にしておくべきですが)。
スタートメニューに「defender」と入力してWindows Defender セキュリティセンターを開きます。「ウイルスと脅威の防止」を選択し、「クイックスキャン」ボタンをクリックしてスキャンを実行します。
どのアンチウイルスを使う場合でも、定評あるMalwarebytesによるセカンドオピニオン(二重チェック)を行うのも賢い選択です。
まとめ:COMサロゲートを理解しよう
今回は、COMサロゲートプロセスについて知っておくべきことを一通り解説しました。このプロセスは、別のプログラムが何らかのタスクを外部委託したいときに生成するヘルパー的な存在です。そのため、時間帯によって稼働数が変動します。クラッシュ時のトラブルシューティング方法も、ウイルス感染を見分けるポイントも、もう把握できたはずです。
さらにWindowsに関する知識を深めたい方は、PCトラブルシューティング初心者向けガイドもぜひチェックしてみてください。
あなたのPCでCOMサロゲートプロセスを目撃したことはありますか?クラッシュのトラブルに遭遇したことがあれば、どんな方法で解決したか、ぜひコメント欄で教えてください!
画像クレジット:Jeanette.Dietl/Depositphotos
-
Windows 10の「更新とセキュリティ」が開かない・クラッシュする問題を解決する5つの対処法
Windows 10の「更新とセキュリティ」は、パソコンを安全かつ快適に使い続けるために欠かせない重要な設定項目です。Windows Updateを通じて最新のセキュリティパッチや機能更新プログラムを取得し、システムを常に最適な状態に保つ役割を担っています。 しかし、一部のユーザーからは「更新とセキュリティが開けない」「開こうとすると突然クラッシュする」といった不具合の報告が寄せられています。もしあなたも同じ症状に悩まされているなら、ご安心ください。この記事では、Windows 10でアップデートを正しく取得する方法と、「更新とセキュリティ」に関連するトラブルを解決する具体的な手順を詳しく解説
-
Windows 10/11でCOMサロゲートのCPU使用率が高くなる問題を解決する方法
タスク マネージャーを開いたら、「COMサロゲート」が高いCPU使用率を占めていて驚いたことはありませんか?COMサロゲート(dllhost.exe)は「Component Object Model(コンポーネント オブジェクト モデル)」の略称で、画像や動画などのマルチメディアファイルを処理してサムネイルを生成する、Windowsの正規プロセスです。ただし、この名前を悪用したマルウェアに偽装されているケースもあるため、油断はできません。正規のCOMサロゲートは1993年にMicrosoftによって開発された仕組みで、開発者が複数のプログラミング言語を使ってCOMオブジェクトを作成できるように