Site icon EfmSoft

¿Qué significa el código HRESULT 0x80030021 (STG_E_LOCKVIOLATION)?

 
Anterior Siguiente
STG_E_SHAREVIOLATION STG_E_FILEALREADYEXISTS

STG_E_LOCKVIOLATION

Qué significa STG_E_LOCKVIOLATION

STG_E_LOCKVIOLATION corresponde al HRESULT 0x80030021. Una región bloqueada impide la operación solicitada sobre el stream. La descripción de Windows para este valor es «Se produjo una infracción de bloqueo.» y su origen se clasifica como winerror.h.

Este código se refiere a locking de rango/semántica del stream y debe correlacionarse con el intervalo exacto, no solo con el archivo completo. El dato decisivo no es solo el bit de severidad del HRESULT, sino el contrato de la llamada que lo devolvió y el estado del objeto en ese instante.

Diagnóstico práctico

  • Registra offset y longitud del lock solicitado y de la operación que colisiona.
  • Traza LockRegion/UnlockRegion y ownership por hilo/proceso.
  • Comprueba que cleanup libere regiones incluso cuando una operación anterior falla o se cancela.

Cómo resolverlo

Espera/libera el lock mediante el propietario correcto o cambia la coordinación. No ignores el bloqueo ni escribas por otra ruta que eluda la garantía de exclusión.

Referencias técnicas


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

Exit mobile version