| 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.
