O que é o COM Surrogate e por que ele está rodando no Windows
COM Surrogate é um processo normal do Windows, o dllhost.exe em C:\Windows\System32, que roda um componente em um processo separado para que uma falha ali não derrube o programa que o pediu. O motivo mais comum de você vê-lo é o Explorador de Arquivos gerando miniaturas. Várias cópias são normais, e uma que aparece e some enquanto você navega pelas pastas está fazendo o trabalho dela. Uma cópia que continua ocupada, ou um arquivo "aberto no COM Surrogate", normalmente aponta para um único tratador de miniaturas ou para um arquivo ruim.
Por que ele existe
Os programas do Windows costumam carregar código extra como um componente COM em uma DLL. Se essa DLL falha dentro do programa, o programa inteiro cai junto. Raymond Chen explica no Old New Thing da Microsoft que o Explorer usa o COM Surrogate para extrair miniaturas, então uma falha em um extrator de miniaturas destrói o processo substituto em vez do Explorer. Isso também explica a velha mensagem "O COM Surrogate parou de funcionar": em geral quer dizer que um componente falhou ali dentro, e o Explorer sobreviveu por causa do projeto.
O Windows o inicia pedindo um componente específico:
C:\Windows\System32\dllhost.exe /Processid:{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5}
Esse ID é o que se deve pesquisar, e esse em particular é o cache de miniaturas do Windows. Outros programas usam o mesmo processo para os próprios componentes, e por isso o nome sozinho diz pouco sobre quem está por trás de uma cópia ocupada.
Descubra qual é o componente
- Pressione
Ctrl + Shift + Esce abra a guia Detalhes. - Clique com o botão direito em um cabeçalho de coluna, escolha Selecionar colunas e marque Linha de comando.
- Encontre
dllhost.exee leia o ID depois de/Processid:.
Ou liste todas as cópias pelo PowerShell:
Get-CimInstance Win32_Process | Where-Object Name -eq 'dllhost.exe' | Select-Object ProcessId, CommandLine
Depois pesquise o ID, trocando-o pelo seu:
(Get-ItemProperty 'Registry::HKEY_CLASSES_ROOT\CLSID\{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5}').'(default)'
No Windows 11 esse retorna Thumbnail Cache Class Factory for Out of Proc Server. Se o seu nomear um produto de terceiros, a atualização ou a remoção desse produto é a solução.
O que fazer para cada sintoma
| Você vê | Causa provável | Tente |
|---|---|---|
| CPU ou disco altos enquanto uma pasta está aberta | Miniaturas sendo geradas para muitos arquivos grandes | Espere passar, ou mude a exibição dessa pasta para Detalhes |
| CPU alta na mesma pasta toda vez | Um arquivo de mídia danificado, ou um codec que falha nele | Tire os arquivos da pasta em lotes para achá-lo e depois atualize ou remova o pacote de codecs |
| "A ação não pode ser concluída porque o arquivo está aberto no COM Surrogate" | Um tratador de miniaturas ainda segura aquele arquivo | Feche o painel de visualização e a pasta, espere alguns segundos e tente de novo |
| Ele trava sempre ou "parou de funcionar" | Um componente de terceiros quebrado | Leia o ID como acima e depois atualize ou remova esse software |
| Miniaturas erradas ou antigas | Um cache de miniaturas danificado | Limpe Miniaturas na Limpeza de Disco, veja Limpeza de Disco ou Sensor de Armazenamento |
Para parar de gerar miniaturas de vez, abra Explorador de Arquivos › Ver mais (…) › Opções › Modo de Exibição e marque Sempre mostrar ícones, nunca miniaturas. Isso tira a carga ao custo das imagens nas pastas. É também um bom teste: se o problema parar, as miniaturas eram a causa.
É um vírus
O verdadeiro é um arquivo assinado pela Microsoft em C:\Windows\System32, com uma cópia de 32 bits em C:\Windows\SysWOW64. Um malware pode usar o nome emprestado, e também pode rodar código próprio dentro de um dllhost.exe genuíno, então um caminho correto é boa evidência, mas não prova. Confira o arquivo primeiro:
Get-AuthenticodeSignature C:\Windows\System32\dllhost.exe
O signatário deve ser Microsoft Windows. Desconfie de um dllhost.exe rodando de qualquer outro lugar, de uma cópia com muita atividade de rede ou de um ID de componente que aponte para um arquivo em AppData ou Temp. Se algum desses casos se aplicar, rode uma verificação completa com o Microsoft Defender.
O que não fazer
- Não apague o
dllhost.exenem o bloqueie. O Windows e muitos programas dependem dele, e o Verificador de Arquivos do Sistema vai tratar uma cópia ausente como dano. - Não espere que encerrá-lo seja uma solução. Encerrar uma cópia travada é seguro, já que uma miniatura ou uma janela pode falhar e o Windows inicia outra quando precisar, mas a causa continua lá.
- Não o adicione às exceções da Prevenção de Execução de Dados, como sugerem guias antigos. Isso reduz uma proteção sem achar o componente quebrado.
- Não instale um limpador de registro nem um "corretor de DLL" para isso. Nenhum dos dois identifica qual componente está falhando.
Onde o Mole entra
A página Status do Mole para Windows reúne o COM Surrogate em uma linha por sessão, com CPU e memória somadas entre as cópias. Por que está em execução? no menu da linha lista as cópias mais pesadas com PID, CPU e memória, e mostra o Executável, o que o iniciou e, para uma cópia rodando sem elevação na sua própria conta, o Comando com o /Processid, o que dispensa as colunas do Gerenciador de Tarefas. Clique em uma cópia para ver os detalhes dela. Como o COM Surrogate roda da pasta do Windows, o Mole o marca como Sistema e não oferece Encerrar nem Forçar encerramento, então use o Gerenciador de Tarefas se precisar encerrar uma cópia travada. O Mole não repara tratadores de miniaturas, e a página Limpar dele não tem uma linha para o cache de miniaturas, então use a Limpeza de Disco para isso. Para um panorama maior, veja o que fazem os processos comuns do Windows.
Perguntas frequentes
O que é o COM Surrogate?
É o dllhost.exe, um processo do Windows que hospeda um componente fora do programa que o usa. Uma falha ali fica ali. O Explorador de Arquivos o usa para miniaturas, e outros programas também.
Por que há tantos processos COM Surrogate?
Cada cópia hospeda um componente, então várias ao mesmo tempo é normal. Muitas saem sozinhas depois de ficarem ociosas.
Posso encerrar o COM Surrogate?
Pode, encerrar uma cópia travada é seguro, e o Windows inicia outra quando for preciso. Se a mesma cópia volta ocupada sempre, descubra o ID do componente em vez de encerrá-la repetidamente.
Por que aparece que um arquivo está aberto no COM Surrogate?
Um tratador de miniaturas está lendo esse arquivo. Feche a pasta e qualquer painel de visualização, espere alguns segundos e tente de novo. Se continuar acontecendo com o mesmo tipo de arquivo, ligue Sempre mostrar ícones, nunca miniaturas para confirmar a causa.
O COM Surrogate é um vírus?
O arquivo genuíno não é. Confira se ele roda de C:\Windows\System32 ou C:\Windows\SysWOW64 e se está assinado pelo Microsoft Windows, e depois veja qual componente ele hospeda.