# Qué es COM Surrogate y por qué se ejecuta en Windows

COM Surrogate es un proceso normal de Windows, `dllhost.exe` en `C:\Windows\System32`, que ejecuta un componente en un proceso aparte para que un fallo allí no pueda tumbar el programa que lo pidió. El motivo habitual por el que lo ves es que el Explorador de archivos está generando miniaturas. Es normal que haya varias copias, y una que aparece y desaparece mientras recorres carpetas está haciendo su trabajo. Una copia que sigue ocupada, o un archivo "abierto en COM Surrogate", normalmente apunta a un controlador de miniaturas o a un archivo dañado.

## Por qué existe

Los programas de Windows suelen cargar código adicional como un componente COM en una DLL. Si esa DLL falla dentro del programa, el programa entero cae con ella. Raymond Chen explica en [Old New Thing de Microsoft](https://devblogs.microsoft.com/oldnewthing/20090212-00/?p=19173) que el Explorador usa COM Surrogate al extraer miniaturas, de modo que un fallo en un extractor de miniaturas destruye el proceso sustituto en lugar del Explorador. Eso explica también el viejo mensaje "COM Surrogate ha dejado de funcionar": normalmente significa que un componente falló ahí dentro, y el Explorador sobrevivió gracias al diseño.

Windows lo inicia pidiendo un componente concreto:

```text
C:\Windows\System32\dllhost.exe /Processid:{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5}
```

Ese ID es el que hay que buscar, y ese en concreto es la caché de miniaturas de Windows. Otros programas usan el mismo proceso para sus propios componentes, y por eso el nombre por sí solo dice poco de quién está detrás de una copia ocupada.

## Averigua qué componente es

1. Pulsa `Ctrl + Shift + Esc` y abre la pestaña **Detalles**.
2. Haz clic con el botón derecho en el encabezado de una columna, elige **Seleccionar columnas** y marca **Línea de comandos**.
3. Busca `dllhost.exe` y lee el ID que sigue a `/Processid:`.

O enumera todas las copias desde PowerShell:

```powershell
Get-CimInstance Win32_Process | Where-Object Name -eq 'dllhost.exe' | Select-Object ProcessId, CommandLine
```

Luego busca el ID, sustituyéndolo por el tuyo:

```powershell
(Get-ItemProperty 'Registry::HKEY_CLASSES_ROOT\CLSID\{AB8902B4-09CA-4BB6-B78D-A8F59079A8D5}').'(default)'
```

En Windows 11 ese devuelve `Thumbnail Cache Class Factory for Out of Proc Server`. Si el tuyo nombra un producto de terceros, la solución es actualizar o quitar ese producto.

## Qué hacer con cada síntoma

| Ves | Causa probable | Prueba |
| --- | --- | --- |
| CPU o disco altos mientras una carpeta está abierta | Se están generando miniaturas de muchos archivos grandes | Espera, o cambia la vista de esa carpeta a **Detalles** |
| CPU alta siempre en la misma carpeta | Un archivo multimedia dañado, o un códec que falla con él | Saca archivos por tandas para encontrarlo, y luego actualiza o quita el paquete de códecs |
| "No se puede completar la acción porque el archivo está abierto en COM Surrogate" | Un controlador de miniaturas aún retiene ese archivo | Cierra el panel de vista previa y la carpeta, espera unos segundos e inténtalo de nuevo |
| Se cierra una y otra vez o "ha dejado de funcionar" | Un componente de terceros roto | Lee el ID como arriba y luego actualiza o quita ese software |
| Miniaturas incorrectas o desfasadas | Una caché de miniaturas dañada | Borra **Miniaturas** en el Liberador de espacio en disco, consulta [Liberador de espacio en disco o Sensor de almacenamiento](/es/windows/blog/disk-cleanup-vs-storage-sense-windows) |

Para dejar de generar miniaturas por completo, abre **Explorador de archivos › Ver más (…) › Opciones › Ver** y marca **Mostrar siempre iconos, nunca miniaturas**. Esto quita la carga a costa de las imágenes en las carpetas. También es una buena prueba: si el problema desaparece, las miniaturas eran la causa.

## ¿Es un virus?

El auténtico es un archivo firmado por Microsoft en `C:\Windows\System32`, con una copia de 32 bits en `C:\Windows\SysWOW64`. El malware puede tomar prestado el nombre, y también puede ejecutar su propio código dentro de un `dllhost.exe` genuino, así que una ruta correcta es buena evidencia pero no una prueba. Comprueba antes el archivo:

```powershell
Get-AuthenticodeSignature C:\Windows\System32\dllhost.exe
```

El firmante debería ser `Microsoft Windows`. Desconfía de un `dllhost.exe` que se ejecute desde cualquier otro sitio, de una copia con mucha actividad de red o de un ID de componente que apunte a un archivo en `AppData` o `Temp`. Si encaja alguno, haz un análisis completo con Microsoft Defender.

## Qué no hacer

- No borres `dllhost.exe` ni lo bloquees. Windows y muchos programas dependen de él, y el Comprobador de archivos de sistema tratará una copia ausente como un daño.
- No esperes que finalizarlo sea una solución. Es seguro finalizar una copia atascada, ya que puede fallar una miniatura o un cuadro de diálogo y Windows inicia otra cuando hace falta, pero la causa sigue ahí.
- No lo añadas a las excepciones de Prevención de ejecución de datos, como sugieren guías antiguas. Eso rebaja una protección sin encontrar el componente roto.
- No instales un limpiador del registro ni un "reparador de DLL" para esto. Ninguno identifica qué componente está fallando.

## Dónde encaja Mole

La página **Estado** de Mole para Windows agrupa COM Surrogate en una fila por sesión, con la CPU y la memoria sumadas entre sus copias. **¿Por qué se ejecuta?** en el menú de la fila lista las copias más pesadas con su PID, CPU y memoria, y muestra el **Ejecutable**, qué lo inició y, para una copia que se ejecuta sin elevar bajo tu propia cuenta, el **Comando** con su `/Processid`, lo que te ahorra las columnas del Administrador de tareas. Haz clic en una copia para ver sus propios detalles. Como COM Surrogate se ejecuta desde la carpeta de Windows, Mole lo marca como Sistema y no ofrece **Terminar** ni **Forzar salida**, así que usa el Administrador de tareas si necesitas finalizar una copia atascada. Mole no repara controladores de miniaturas, y su página **Limpiar** no tiene ninguna fila para la caché de miniaturas, así que usa el Liberador de espacio en disco para eso. Para un contexto más amplio, consulta [qué hacen los procesos habituales de Windows](/es/windows/blog/windows-processes-explained).

## Preguntas frecuentes

### ¿Qué es COM Surrogate?

Es `dllhost.exe`, un proceso de Windows que aloja un componente fuera del programa que lo usa. Un fallo ahí se queda ahí. El Explorador de archivos lo usa para las miniaturas, y otros programas también.

### ¿Por qué hay tantos procesos COM Surrogate?

Cada copia aloja un componente, así que es normal que haya varias a la vez. Muchas terminan por sí solas cuando llevan un rato inactivas.

### ¿Puedo finalizar COM Surrogate?

Sí, finalizar una copia atascada es seguro, y Windows inicia una nueva cuando hace falta. Si la misma copia vuelve a estar ocupada una y otra vez, busca el ID de su componente en lugar de finalizarla repetidamente.

### ¿Por qué dice que un archivo está abierto en COM Surrogate?

Un controlador de miniaturas está leyendo ese archivo. Cierra la carpeta y cualquier panel de vista previa, espera unos segundos e inténtalo de nuevo. Si sigue pasando con el mismo tipo de archivo, activa **Mostrar siempre iconos, nunca miniaturas** para confirmar la causa.

### ¿Es COM Surrogate un virus?

El archivo genuino no lo es. Comprueba que se ejecuta desde `C:\Windows\System32` o `C:\Windows\SysWOW64` y que está firmado por Microsoft Windows, y luego mira qué componente aloja.


Canonical: https://mole.fit/es/windows/blog/com-surrogate-dllhost
