Im Windows Task-Manager stolpert ihr vielleicht über den Prozess „COM Surrogate“ mit dem Dateinamen „dllhost.exe“. Was das ist und ob ihr den Prozess deaktivieren solltet, erklären wir hier.
Was ist COM Surrogate (dllhost.exe)?
- COM Surrogate ist ein Prozess im Windows-Task-Manager mit dem Dateinamen „dllhost.exe“.
- COM steht für Component Object Model und ist ein Interface, das Microsoft im Jahr 1993 eingeführt hat.
- Entwickler erstellen damit COM-Objekte, die andere Anwendungen erweitern können.
Beispiel
Damit man versteht, wozu der Prozess genau da ist, ist hier ein kleines Beispiel:
- Der Windows-Explorer benutzt COM-Objekte, um kleine Vorschaubilder (Thumbnails) von Bildern zu erstellen und anzuzeigen.
- Über das COM-Objekt werden die Vorschaubilder und -videos dann erstellt.
- Auf diese Weise kann der Windows-Explorer mit neuen Funktionen wie Codec-Unterstützung ergänzt werden.
Problem: Falls ein COM-Objekt aber abstützt, stürzt der Hauptprozess genauso ab. In unserem Beispiel würde also der gesamte Windows-Explorer nicht mehr reagieren, wenn es zu einem Fehler bei der Berechnung des Vorschaubildes kommt.
Das macht der Prozess COM Surrogate
- Damit das Problem im obigen Beispiel nicht auftritt, hat Microsoft den Prozess COM Surrogate entwickelt.
- Dieser startet ein COM-Objekt außerhalb des eigentlichen Prozesses, der ihn angefordert hat.
Ergebnis: Wenn nun ein COM-Objekt abstützt, stürzt nur der COM-Surrogate-Prozess mit ab. So entsteht dann auch die Fehlermeldung COM Surrogate funktioniert nicht mehr. Der Hauptprozess funktioniert aber weiterhin – in unserem Beispiel also der Windows-Explorer.
Obiges Beispiel (mit COM Surrogate)
- Der Windows Explorer startet einen COM-Surrogate-Prozess, wann immer eine Bildervorschau berechnet werden muss.
- Der COM-Surrogate-Prozess dient als Host für das COM-Objekt, das die eigentliche Bildervorschau berechnet.
- Wenn das COM-Objekt abstürzt, stürzt mit ihm nur der COM-Surrogate-Prozess ab.
- Der Windows-Explorer ist davon nicht betroffen.
Im Grunde ist COM Surrogate also ein vorgeschalteter Prozess – als Sicherheitsmaßnahme, falls etwas schief läuft.
Wie weiß ich, welchen Prozess COM Surrogate hostet?
- Der Task-Manager gibt keine Informationen darüber.
- Ihr könnt euch Microsofts Process Explorer dafür installieren.
In den Eigenschaften von dllhost.exe findet ihr dann unter COM CLASS das gehostete Objekt. Im Screenshot ist es das Objekt CortanaMapiHelper.dll.
COM Surrogate deaktivieren?
Wie ihr anhand obiger Beschreibung seht, solltet ihr den Prozess nicht deaktivieren. Er ist ein wichtiger Systemprozess, der bestimmte Aufgaben ausführt. Wenn ihr ihn beendet oder deaktiviert, kann es zu Systemfehlern kommen.