Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

「COM Surrogateは動作を停止しました」エラーの解決方法|原因と6つの対処法を徹底解説

写真を見ているときや動画を視聴しているときに、突然「COM Surrogate has stopped working(COM Surrogateは動作を停止しました)」というエラーメッセージが表示されて困っていませんか?実はこのエラーは多くのユーザーが経験するものであり、必ず解決策が存在します。本記事では、COMサロゲートエラーの仕組みと、具体的な修正方法を6つ詳しく解説していきます。

COMサロゲートとは何か?なぜ頻繁にクラッシュするのか?

dllhost.exeというプロセスは「COM Surrogate(COMサロゲート)」という名前で知られています。通常、その存在に気づくことはほとんどありませんが、クラッシュした瞬間にだけ「COM Surrogateは動作を停止しました」というメッセージを目にすることになります。では、COMサロゲートとは一体何なのでしょうか?

COMサロゲートとは、要求元のプロセスの外部でCOMオブジェクトを実行するための「犠牲プロセス(Sacrificial process)」のことです。例えば、エクスプローラーはサムネイル画像を抽出する際にCOMサロゲートを使用します。サムネイル表示が有効になっているフォルダーを開くと、エクスプローラーはCOMサロゲートを起動し、そのフォルダー内のファイルのサムネイル生成処理を任せます。

これは、エクスプローラーがサムネイル抽出プログラム(コーデックなど)を信用していないためです。こうしたコードには安定性に難があるケースが多く、クラッシュのリスクを伴います。そこでMicrosoftは、パフォーマンス面での若干の損失と引き換えに信頼性を高めるため、これらの不安定なコードをメインのエクスプローラープロセスから分離しました。サムネイル抽出処理がクラッシュしても、犠牲になるのはCOMサロゲートプロセスだけであり、エクスプローラー本体は無事に保たれるという仕組みです。

つまりCOMサロゲートとは、「このコードには少し不安があるから、別のプロセスで実行してもらおう。万が一クラッシュしても、自分ではなくCOMサロゲートが犠牲になればいい」という考え方に基づいたものなのです。そして実際にクラッシュが発生したときは、エクスプローラーの懸念が現実になったことを意味しています。

実際のところ、動画やメディアファイルが含まれるフォルダーを閲覧中にこの種のクラッシュが起こる場合、原因は不安定なコーデックである可能性が非常に高いです。それでは、以下の手順に従って「COM Surrogateは動作を停止しました」エラーを修正していきましょう。

「COM Surrogateは動作を停止しました」エラーの修正方法

方法1:コーデックを更新する

この問題は写真や動画の表示に関係しているため、まずはコーデックの更新を試すのが有効です。Windows 10 / 8.1 / 7用の最新コーデックをダウンロードしてインストールしましょう。

DivXやNeroがインストールされている場合は、最新バージョンへのアップデートを検討してください。場合によっては、一度アンインストールしてから再インストールしないと正常に動作しないこともあります。

NeroとDivXをアップデートしても問題が解決しない場合は、C:\Program Files\Common Files\Ahead\DSFilter\NeVideo.ax というファイルを NeVideo.ax.bak にリネームしてみてください。NeVideoHD.ax を NeVideoHD.bak にリネームする必要がある場合もあります。ただし、この操作を行うと Nero Showtime が動作しなくなる点に注意してください。

方法2:サムネイル表示を無効にする

サムネイルプレビューを無効化すると、問題を一時的に回避できます。ただし、これは根本的な解決策ではないため、あくまで応急処置として考えてください。

方法3:DLLを再登録する

いくつかのDLLファイルをWindowsに再登録することで、COMサロゲートエラーが解消される可能性があります。手順は以下の通りです。

1. Windowsボタンを右クリックし、「コマンドプロンプト(管理者)」を選択します。

2. コマンドプロンプトのウィンドウで、以下のコマンドを1行ずつ入力し、それぞれEnterキーを押します。

regsvr32 vbscript.dll
regsvr32 jscript.dll

これで「COM Surrogateは動作を停止しました」の問題が解決するはずですが、解決しない場合は引き続き読み進めてください。

方法4:ハードディスクのエラーチェックを実行する

チェックディスク(chkdsk)ユーティリティを実行することでも、COMサロゲートエラーを修正できる場合があります。ディスクに不良セクターやファイルシステムのエラーが存在すると、dllhost.exeの動作に支障をきたすことがあるためです。管理者権限でコマンドプロンプトを開き、chkdskコマンドを実行してディスクの整合性を確認してみましょう。

方法5:dllhost.exeに対してDEPを無効にする

dllhost.exeに対してデータ実行防止(DEP)を無効にすると、多くのユーザーで問題が解決したと報告されています。設定方法は以下の通りです。

1. DEP設定画面の最後のステップで、下図のように「追加」ボタンをクリックします。

2. 追加ダイアログボックスで、お使いのシステムに応じて以下の実行ファイルを選択します。

32ビットシステムの場合:
C:\Windows\System32\dllhost.exe

64ビットシステムの場合:
C:\Windows\SysWOW64\dllhost.exe

3. dllhostファイルを選択して「開く」をクリックすると、例外リストに追加されます。

これで「COM Surrogateは動作を停止しました」エラーは解決するはずです。

方法6:ディスプレイドライバーをロールバックする

最近のディスプレイドライバーの更新が原因でこのエラーが発生することがあります。ドライバーを更新した後に問題が発生したと気づいた場合は、Windows 10でドライバーをロールバック(以前のバージョンへ戻す)ことで解決できるかもしれません。

1. 「PC」または「マイコンピューター」を右クリックし、「プロパティ」を選択します。

2. 左側のメニューから「デバイスマネージャー」をクリックします。

3. 「ディスプレイアダプター」を展開し、ディスプレイデバイスを右クリックして「デバイスのアンインストール」を選択します。

4. ポップアップが表示されたら、「このデバイスのドライバーソフトウェアを削除する」にチェックを入れて「OK」をクリックします。Windowsがデバイスをアンインストールし、Windows Updateからダウンロード済みのドライバーソフトウェアを削除します。その後、改めて最新のドライバーをインストールしてください。

まとめ

以上の方法のいずれかで、「COM Surrogateは動作を停止しました」エラーを解決できるはずです。特に多いのはコーデックの不具合が原因のケースなので、まずは方法1から順番に試してみることをおすすめします。まだ不明な点や質問がある場合は、お気軽にコメント欄でお知らせください。

  1. Windows 10で「Modern Setup Hostが動作を停止しました」エラーを修正する9つの対処法

    Windows 10には多くのメリットがあります。その中でも特に人気なのが、Windows 7やWindows 8からデータ・アプリケーション・設定を失うことなくアップグレードできる点です。しかし一部のユーザーからは、メディア作成ツール(Media Creation Tool)を使ってWindows 10へアップグレードする際に、「Modern Setup Hostが動作を停止しました」というエラーメッセージが表示されるとの報告があります。 Modern Setup Hostとは? Modern Setup Hostは、自己展開型アーカイブ兼インストーラーです。C:\$Windows.BTSo

  2. Windows 10で「.exeは動作を停止しました」エラーを解決する7つの対処法

    パソコンでプログラムを起動しようとした際に、「.exeは動作を停止しました(.EXE Has Stopped Working)」というエラーメッセージが表示され、アプリが実行できなくて困っていませんか?このエラーは、プログラムの中核となる実行可能ファイル(EXE)が正しく機能できないときに発生します。発生原因はひとつに特定できず、複数の要因が絡み合っていることも珍しくありません。考えられる主な原因は以下の通りです。 システムファイルの破損 互換性設定の問題 マルウェアなど悪意のあるソフトウェアへの感染 ドライバーの旧式化や不足 一時ファイル・ジャンクファイルの蓄積 Windows 10で「