¿Qué significa el código HRESULT 0x800401F1 (CO_E_ALREADYINITIALIZED)?

 
Anterior Siguiente
CO_E_NOTINITIALIZED CO_E_CANTDETERMINECLASS

CO_E_ALREADYINITIALIZED

Qué significa CO_E_ALREADYINITIALIZED

CO_E_ALREADYINITIALIZED corresponde al HRESULT 0x800401F1. Windows indica: «Ya se ha llamado a CoInitialize.».

La frontera técnica es inicialización del runtime COM y de sus servicios internos. En este caso, el error depende del lifecycle de inicialización, por lo que hay que correlacionar init/uninit en el mismo hilo y apartment.

Qué comprobar

  • Reúne hilo y apartment model, resultado de CoInitializeEx/servicio relacionado, orden de inicialización y handles u objetos creados antes del fallo en una prueba mínima y reproducible antes de aplicar una reparación.
  • Verifica que «Ya se ha llamado a CoInitialize.» siga siendo cierto con el mismo objeto y parámetros antes de modificar varias condiciones simultáneamente.

Tratamiento recomendado

Reconstruye el orden de inicialización del hilo/apartment y elimina inicializaciones duplicadas o llamadas prematuras. La prueba válida usa un hilo nuevo o un lifecycle limpio y comprueba que cada init/uninit queda balanceado.

Resultados cercanos que significan otra cosa

  • CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN corresponde a «El llamador no revocó un registro específico del apartamento COM antes de cerrar el apartamento.».
  • CO_E_NOTPOOLED significa «El componente COM+ creado debe utilizar un grupo de objetos para funcionar.».

Después del cambio, repite desde un lifecycle limpio y verifica que «Ya se ha llamado a CoInitialize.» desaparece sin relajar controles globales ni sustituir datos por valores artificiales.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.