¿Qué significa el código HRESULT 0x80030006 (STG_E_INVALIDHANDLE)?

 
Anterior Siguiente
STG_E_ACCESSDENIED STG_E_INSUFFICIENTMEMORY

STG_E_INVALIDHANDLE

Qué significa STG_E_INVALIDHANDLE

STG_E_INVALIDHANDLE corresponde al HRESULT 0x80030006. El handle u objeto de almacenamiento ya no es válido. La descripción de Windows para este valor es «Se intentó realizar una operación sobre un objeto no válido.» y su origen se clasifica como winerror.h.

Puede tratarse de un handle cerrado, una interfaz COM liberada o una referencia invalidada por revert/reopen. Usarlo de nuevo puede ocultar un problema de lifetime. Structured Storage separa errores de formato, acceso, locking, transacción y backing device. Mantener esa frontera evita diagnosticar todos los STG_* como un simple “error de archivo”.

Datos que conviene capturar

  • Traza creación, AddRef/Release y cierre del objeto hasta la llamada que falla.
  • Comprueba si otro hilo ejecutó Revert, cerró el backing file o reemplazó el objeto compartido.
  • Evita validar únicamente el valor numérico del handle; su generación y propietario importan.

Tratamiento seguro

Corrige el ciclo de vida y vuelve a adquirir un objeto válido. No intentes revivir una interfaz cerrada ni copies handles entre propietarios sin contrato explícito.

Referencias técnicas


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