Site icon EfmSoft

¿Qué significa el código HRESULT 0x80030020 (STG_E_SHAREVIOLATION)?

 
Anterior Siguiente
STG_E_READFAULT STG_E_LOCKVIOLATION

STG_E_SHAREVIOLATION

Qué significa STG_E_SHAREVIOLATION

STG_E_SHAREVIOLATION corresponde al HRESULT 0x80030020. El modo de compartición solicitado entra en conflicto con otra apertura existente. La descripción de Windows para este valor es «Se produjo una infracción de uso compartido.» y su origen se clasifica como winerror.h.

Structured Storage respeta los share modes de la apertura. Un proceso puede tener acceso suficiente y aun así ser incompatible con el STGM_SHARE_* usado por otro handle. Un wrapper puede traducir este HRESULT a una excepción genérica. En telemetría conviene guardar también el valor nativo y la operación COM antes de cruzar esa capa.

Comprobaciones específicas

  • Enumera procesos/handles que mantienen abierto el archivo y sus modos cuando sea posible.
  • Registra STGM_SHARE_DENY_* o SHARE_EXCLUSIVE elegido por cada caller.
  • Comprueba antivirus, indexadores y preview handlers, pero no los culpes sin un handle o traza que lo confirme.

Cómo resolverlo

Coordina las aperturas o selecciona un share mode compatible con la consistencia requerida. No mates procesos indiscriminadamente ni reduzcas exclusividad si rompe la transacción.

Referencias técnicas


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

Exit mobile version