¿Qué son los objetos '#$'?

Objeto COM y COM Surrogate: ¿Qué son?

09/01/2017

Valoración: 4.23 (10413 votos)

Seguramente, en más de una ocasión, has abierto el Administrador de Tareas de Windows para investigar por qué tu ordenador va lento o simplemente por curiosidad. Al revisar la interminable lista de procesos, es muy probable que te hayas topado con uno llamado COM Surrogate o su nombre de archivo, dllhost.exe. Su presencia puede generar desconfianza, haciéndonos preguntar: ¿Qué es esto? ¿Es un virus? ¿Debería cerrarlo? La respuesta corta es que no solo es inofensivo, sino que es una pieza fundamental para la estabilidad de tu sistema operativo. En este artículo, desmitificaremos por completo el Component Object Model (COM) y su fiel ayudante, el proceso COM Surrogate.

¿Cuáles son los objetos con la letra a?
Dejamos más de 100 objetos con la letra A, como aceite, acordeón, agenda, altavoz, anzuelo, archivo, aspa, asiento, autocar, apio, árbol, argonauta, aspiradora, alfombra, ayuntamiento, azahar, axioma, avance, autopista y muchas más. La letra A es la primera vocal y la primera letra del abecedario español.
Índice de Contenido

Desglosando el Misterio: ¿Qué Significa COM?

Para entender al proceso, primero debemos entender la tecnología que le da nombre. COM son las siglas de Component Object Model (Modelo de Objetos Componentes), una interfaz de software desarrollada por Microsoft e introducida por primera vez en 1993. Suena complejo, pero la idea es bastante ingeniosa y modular. Pensemos en ello como si fueran piezas de LEGO para programadores.

El objetivo principal de COM es permitir a los desarrolladores crear "componentes" de software reutilizables. Estos componentes, u objetos, pueden ser creados en diferentes lenguajes de programación y luego "conectarse" a otras aplicaciones para extender sus funcionalidades sin necesidad de reescribir todo el programa. Cada parte del acrónimo tiene un significado clave:

  • Componente: Es una pieza de código independiente y reutilizable que realiza una tarea específica. No es un programa completo, sino una parte que puede ser usada por otros programas.
  • Objeto: En programación, un objeto es una entidad que contiene tanto datos como las operaciones (métodos) para manipular esos datos. Un objeto COM es una instancia de uno de estos componentes, listo para ser utilizado.
  • Modelo: Se refiere al estándar o conjunto de reglas que define cómo estos componentes deben ser creados, cómo interactúan entre sí y cómo se integran en las aplicaciones.

Gracias a este modelo, una aplicación puede solicitar a Windows que realice una tarea sin necesidad de saber cómo se hace internamente. Simplemente invoca al objeto COM correcto y este se encarga del resto.

Un Ejemplo del Día a Día: El Explorador de Archivos

La mejor forma de entender el poder de los objetos COM es con un ejemplo que usas todos los días: las miniaturas en el Explorador de Archivos de Windows. Cuando abres una carpeta llena de imágenes, videos o documentos PDF, Windows te muestra una pequeña previsualización de cada archivo.

¿Qué son los objetos para niños?
¿Qué son los objetos definición para niños? Se entiende por objeto todo aquel elemento o cuerpo inanimado, que casi siempre es de tamaño pequeño o mediano. En otras palabras un objeto es una cosa que puede percibirse por medio de nuestros sentidos, y sobre el que se piensa, pero carece de vida propia. ¿Cómo son los objetos?

El Explorador de Archivos no tiene incorporado el código para leer cada uno de los cientos de formatos de archivo que existen (JPG, PNG, MP4, AVI, DOCX, PDF, etc.). Hacerlo sería increíblemente ineficiente y haría que el explorador fuera un programa gigantesco y difícil de actualizar.

Aquí es donde entran los objetos COM. Para cada tipo de archivo, existe un objeto COM especializado (a menudo llamado "manejador de miniaturas" o "codec"). Cuando el Explorador necesita mostrar una miniatura de un video .AVI, no intenta leer el video por sí mismo. En su lugar, le pide al objeto COM registrado para archivos .AVI que genere la miniatura. Este objeto sabe exactamente cómo decodificar el video y extraer un fotograma para crear la previsualización.

Esta arquitectura es brillante porque si instalas un nuevo programa que introduce un nuevo formato de video, como .MKV, este programa puede registrar su propio objeto COM en el sistema. A partir de ese momento, el Explorador de Archivos, sin necesidad de ser actualizado, podrá mostrar miniaturas para los archivos .MKV. Ha extendido su funcionalidad de forma transparente para el usuario.

¿Qué es un objeto COM y ejemplos?
Un buen ejemplo es el administrador de archivos de Windows. Hace uso de objetos COM para crear miniaturas de imágenes y otros archivos cuando abres una carpeta. El objeto COM se encarga de gestionar el procesador de imágenes, vídeos y otros archivos para generar estas miniaturas.

El Héroe Anónimo: COM Surrogate (dllhost.exe) al Rescate

Ahora que entendemos la utilidad de los objetos COM, surge una pregunta importante: ¿Qué pasa si uno de estos objetos COM falla? Los códecs de video, por ejemplo, pueden ser inestables o tener errores.

En las versiones más antiguas de Windows, el objeto COM se ejecutaba dentro del mismo proceso que la aplicación que lo solicitaba. En nuestro ejemplo, el códec de video se cargaba directamente dentro del proceso del Explorador de Archivos (explorer.exe). Si ese códec se bloqueaba, se llevaba consigo a todo el proceso del Explorador. El resultado era desastroso: la barra de tareas desaparecía, las ventanas se cerraban y todo el escritorio se reiniciaba. Era una experiencia de usuario muy frustrante.

Para solucionar este grave problema de estabilidad, Microsoft introdujo el proceso COM Surrogate. Su nombre lo dice todo: actúa como un "sustituto".

El funcionamiento es el siguiente:

  1. El Explorador de Archivos necesita una miniatura.
  2. En lugar de cargar el objeto COM directamente, le pide al sistema que lo ejecute en un proceso COM Surrogate.
  3. El sistema crea una nueva instancia de dllhost.exe (el "anfitrión de DLL", ya que los objetos COM suelen estar contenidos en archivos .dll) y carga el objeto COM dentro de este nuevo proceso.
  4. El objeto COM hace su trabajo y devuelve la miniatura al Explorador.

La magia ocurre cuando algo sale mal. Si el objeto COM se bloquea, el que se cierra es únicamente el proceso COM Surrogate (dllhost.exe) que lo contenía. El Explorador de Archivos (explorer.exe) ni se inmuta y sigue funcionando con total normalidad. A lo sumo, no se mostrará esa miniatura en particular, pero el sistema permanecerá estable. El COM Surrogate actúa como una barrera de contención, un proceso "sacrificable" que protege a las aplicaciones principales de fallos de terceros.

¿Qué se puede hacer con los objetos una vez que existen?
Una vez que existen como objetos individuales, es posible modificar sus propiedades. Por ejemplo, si dibuja tres botones de comando en un formulario, cada objeto botón de comando es una instancia de la clase CommandButton. Se crean todos los objetos como copias idénticas de sus clases.

Tabla Comparativa: Estabilidad del Sistema

EscenarioSistema Antiguo (Sin Surrogate)Sistema Moderno (Con COM Surrogate)
Explorer pide generar una miniatura de video.El objeto COM (códec) se carga dentro de explorer.exe.Se crea un proceso dllhost.exe y el códec se carga dentro de él.
El códec de video tiene un error y se bloquea.Todo el proceso explorer.exe se bloquea. El escritorio y la barra de tareas se reinician.Solo el proceso dllhost.exe se cierra. El explorer.exe sigue funcionando.
Resultado para el usuarioInterrupción grave, pérdida de trabajo en ventanas abiertas, frustración.Una miniatura podría no aparecer, pero el sistema permanece estable y funcional.

Preguntas Frecuentes (FAQ) sobre COM Surrogate

P: ¿Es COM Surrogate (dllhost.exe) un virus?

R: No. El proceso dllhost.exe legítimo es un componente esencial y seguro del sistema operativo Windows. Sin embargo, como con muchos archivos de sistema, es teóricamente posible que un malware intente disfrazarse con el mismo nombre. El archivo legítimo se encuentra en la carpeta C:\Windows\System32. Si encuentras un `dllhost.exe` en otra ubicación y consume recursos de forma extraña, sí sería prudente analizarlo con un antivirus.

P: ¿Por qué a veces veo varios procesos dllhost.exe ejecutándose al mismo tiempo?

R: Es completamente normal. Windows puede lanzar múltiples instancias de COM Surrogate para aislar diferentes objetos COM. Por ejemplo, una instancia podría estar generando miniaturas para el Explorador, mientras que otra podría estar siendo utilizada por una aplicación de terceros para otra tarea. Aislar cada uno en su propio proceso aumenta aún más la estabilidad general del sistema.

P: El proceso COM Surrogate está usando mucha CPU o memoria. ¿Es un problema?

R: Puede ser normal de forma temporal. Si acabas de abrir una carpeta con cientos de videos de alta resolución, COM Surrogate trabajará intensamente para procesar todos esos archivos y generar las miniaturas, lo que provocará un pico de uso de CPU y RAM. Este uso debería disminuir una vez que la tarea finalice. Si el consumo elevado es constante, podría indicar un problema subyacente, como un códec de video corrupto o un software de terceros mal programado que está causando que el objeto COM entre en un bucle.

¿Qué es un objeto COM y ejemplos?
Un buen ejemplo es el administrador de archivos de Windows. Hace uso de objetos COM para crear miniaturas de imágenes y otros archivos cuando abres una carpeta. El objeto COM se encarga de gestionar el procesador de imágenes, vídeos y otros archivos para generar estas miniaturas.

P: ¿Puedo deshabilitar o cerrar COM Surrogate?

R: No deberías hacerlo. Es una parte integral del funcionamiento de Windows. Si finalizas la tarea desde el Administrador, es probable que vuelva a aparecer tan pronto como otra aplicación necesite un objeto COM. Deshabilitarlo (si fuera posible) causaría que muchas funciones del sistema dejen de operar correctamente y podría generar una gran inestabilidad.

P: ¿Cómo puedo saber qué está haciendo un proceso dllhost.exe específico?

R: El Administrador de Tareas de Windows es limitado en este aspecto. Para una visión más profunda, puedes usar una herramienta gratuita de Microsoft llamada Process Explorer. Al ejecutarla y localizar un proceso `dllhost.exe`, puedes ver en su panel inferior o en sus propiedades qué DLLs y manejadores específicos ha cargado, dándote una pista clara sobre qué objeto COM está alojando en ese momento.

Conclusión: Un Guardián Silencioso

Lejos de ser una amenaza, COM Surrogate (dllhost.exe) es uno de los muchos mecanismos inteligentes que Windows utiliza para protegerse a sí mismo y ofrecer una experiencia de usuario fluida y estable. Actúa como un guardián silencioso, asumiendo el riesgo de ejecutar código potencialmente inestable para que tus aplicaciones principales, como el Explorador de Archivos, no tengan que hacerlo. La próxima vez que lo veas en tu lista de procesos, puedes estar tranquilo sabiendo que está ahí para hacer tu sistema más robusto y resistente a los fallos.

Si quieres conocer otros artículos parecidos a Objeto COM y COM Surrogate: ¿Qué son? puedes visitar la categoría Tecnología.

Subir