Wat is COM Surrogate en waarom draait het in Windows
COM Surrogate is een normaal Windows-proces, dllhost.exe in C:\Windows\System32, dat een component in een apart proces uitvoert, zodat een fout daarin het programma dat erom vroeg niet meeneemt. Meestal zie je het doordat Verkenner miniaturen maakt. Meerdere exemplaren zijn normaal, en een exemplaar dat verschijnt en verdwijnt terwijl je door mappen bladert doet gewoon zijn werk. Een exemplaar dat druk blijft, of een bestand dat "geopend is in COM Surrogate", wijst meestal op één miniatuurhandler of één kapot bestand.
Waarom het bestaat
Windows-programma's laden vaak extra code als COM-component in een DLL. Als die DLL in het programma crasht, gaat het hele programma mee. Raymond Chen legt op Microsofts Old New Thing uit dat Verkenner COM Surrogate gebruikt bij het ophalen van miniaturen, zodat een crash in een miniatuurextractor het surrogaatproces vernietigt en niet Verkenner zelf. Dat verklaart ook de oude melding "COM Surrogate werkt niet meer": meestal is daar een component gecrasht, en Verkenner bleef overeind dankzij het ontwerp.
Windows start het door om een specifieke component te vragen:
C:\Windows\System32\dllhost.exe /Processid:{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5}
Die ID is wat je moet opzoeken, en deze hoort bij de miniatuurcache van Windows. Andere programma's gebruiken hetzelfde proces voor hun eigen componenten, en daarom zegt de naam alleen weinig over wie achter een druk exemplaar zit.
Uitzoeken welke component het is
- Druk op
Ctrl + Shift + Escen open het tabblad Details. - Klik met de rechtermuisknop op een kolomkop, kies Kolommen selecteren en vink Opdrachtregel aan.
- Zoek
dllhost.exeen lees de ID na/Processid:.
Of toon alle exemplaren vanuit PowerShell:
Get-CimInstance Win32_Process | Where-Object Name -eq 'dllhost.exe' | Select-Object ProcessId, CommandLine
Zoek daarna de ID op, en vervang hem door de jouwe:
(Get-ItemProperty 'Registry::HKEY_CLASSES_ROOT\CLSID\{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5}').'(default)'
Op Windows 11 geeft deze Thumbnail Cache Class Factory for Out of Proc Server. Noemt de jouwe een product van een derde partij, dan is de update of verwijdering van dat product de oplossing.
Wat je per symptoom kunt doen
| Je ziet | Waarschijnlijke oorzaak | Probeer |
|---|---|---|
| Hoog CPU- of schijfgebruik terwijl één map open is | Miniaturen worden gemaakt voor veel grote bestanden | Even wachten, of de weergave van die map op Details zetten |
| Hoog CPU-gebruik steeds in dezelfde map | Eén beschadigd mediabestand, of een codec die erop faalt | Verplaats bestanden in groepen weg om het te vinden, en werk dan het codecpakket bij of verwijder het |
| "De actie kan niet worden voltooid omdat het bestand is geopend in COM Surrogate" | Een miniatuurhandler houdt dat bestand nog vast | Sluit het voorbeeldvenster en de map, wacht een paar seconden en probeer opnieuw |
| Het blijft crashen of "werkt niet meer" | Een kapotte component van een derde partij | Lees de ID zoals hierboven, en werk die software dan bij of verwijder haar |
| Verkeerde of verouderde miniaturen | Een beschadigde miniatuurcache | Wis Miniaturen in Schijfopruiming, zie Schijfopruiming of Opslaginzicht |
Om helemaal geen miniaturen meer te maken, open je Verkenner › Meer weergeven (…) › Opties › Weergave en vink je Altijd pictogrammen weergeven, nooit miniaturen aan. Dat haalt de belasting weg ten koste van de plaatjes in mappen. Het is ook een goede test: stopt het probleem, dan waren miniaturen de oorzaak.
Is het een virus
Het echte bestand is een door Microsoft ondertekend bestand in C:\Windows\System32, met een 32-bits exemplaar in C:\Windows\SysWOW64. Malware kan de naam lenen, en kan ook eigen code uitvoeren binnen een echte dllhost.exe, dus een juist pad is een goede aanwijzing maar geen bewijs. Controleer eerst het bestand:
Get-AuthenticodeSignature C:\Windows\System32\dllhost.exe
De ondertekenaar moet Microsoft Windows zijn. Wees achterdochtig bij een dllhost.exe die ergens anders draait, een exemplaar met veel netwerkactiviteit, of een component-ID die naar een bestand in AppData of Temp wijst. Past een van die dingen, voer dan een volledige scan uit met Microsoft Defender.
Wat je niet moet doen
- Verwijder
dllhost.exeniet en blokkeer het niet. Windows en veel programma's hangen ervan af, en Systeembestandscontrole beschouwt een ontbrekend exemplaar als schade. - Verwacht niet dat beëindigen een oplossing is. Het is veilig om een vastgelopen exemplaar te beëindigen, want een miniatuur of dialoogvenster kan falen en Windows start een nieuw exemplaar wanneer nodig, maar de oorzaak blijft bestaan.
- Voeg het niet toe aan de uitzonderingen van Gegevensuitvoeringspreventie, zoals oudere handleidingen voorstellen. Dat verlaagt een beveiliging zonder de kapotte component te vinden.
- Installeer hiervoor geen registryopschoner of "DLL-fixer". Geen van beide bepaalt welke component faalt.
Waar Mole past
De pagina Status van Mole for Windows voegt COM Surrogate samen tot één rij per sessie, met CPU en geheugen opgeteld over alle exemplaren. Waarom draait dit? in het menu van de rij toont de zwaarste exemplaren met hun PID, CPU en geheugen, en het Uitvoerbaar bestand, wat het heeft gestart en, voor een exemplaar dat zonder verhoogde rechten onder je eigen account draait, de Opdracht met zijn /Processid, wat de kolommen van Taakbeheer bespaart. Klik op een exemplaar voor zijn eigen details. Omdat COM Surrogate vanuit de Windows-map draait, markeert Mole het als Systeem en biedt het geen Beëindig of Forceer stop, dus gebruik Taakbeheer als je een vastgelopen exemplaar wilt beëindigen. Mole repareert geen miniatuurhandlers, en de pagina Opschonen heeft geen rij voor de miniatuurcache, dus gebruik daarvoor Schijfopruiming. Voor meer achtergrond zie wat veelvoorkomende Windows-processen doen.
Veelgestelde vragen
Wat is COM Surrogate?
Het is dllhost.exe, een Windows-proces dat een component buiten het programma host dat het gebruikt. Een crash daar blijft daar. Verkenner gebruikt het voor miniaturen, en andere programma's gebruiken het ook.
Waarom zijn er zoveel COM Surrogate-processen?
Elk exemplaar host één component, dus meerdere tegelijk is normaal. Veel ervan sluiten zelf af zodra ze een tijd inactief zijn geweest.
Kan ik COM Surrogate beëindigen?
Ja, een vastgelopen exemplaar beëindigen is veilig en Windows start een nieuw exemplaar wanneer het nodig is. Komt hetzelfde exemplaar steeds druk terug, zoek dan zijn component-ID in plaats van het herhaaldelijk te beëindigen.
Waarom staat er dat een bestand is geopend in COM Surrogate?
Een miniatuurhandler leest dat bestand. Sluit de map en elk voorbeeldvenster, wacht een paar seconden en probeer opnieuw. Gebeurt het steeds met hetzelfde bestandstype, zet dan Altijd pictogrammen weergeven, nooit miniaturen aan om de oorzaak te bevestigen.
Is COM Surrogate een virus?
Het echte bestand niet. Controleer dat het draait vanuit C:\Windows\System32 of C:\Windows\SysWOW64 en is ondertekend door Microsoft Windows, en kijk dan welke component het host.