¿Qué significa el código NTSTATUS 0xC0000022 (STATUS_ACCESS_DENIED)?

 
Anterior Siguiente
STATUS_ALREADY_COMMITTED STATUS_BUFFER_TOO_SMALL

STATUS_ACCESS_DENIED

Qué significa STATUS_ACCESS_DENIED

Windows evaluó el contexto de seguridad del caller contra el objeto o la operación y no concedió el acceso solicitado. Este resultado no significa automáticamente «hay que ejecutar como administrador». La decisión puede depender de la DACL, ACE de deny, SID restringidos, integrity level, privilegios, tipo de token y del access mask exacto pedido.

Una causa frecuente en software es pedir derechos más amplios de los necesarios. Un open con GENERIC_ALL puede fallar aunque el mismo usuario tenga permiso suficiente para lectura. También importa si el thread estaba impersonando: el access check puede usar un token diferente del primary token del proceso.

Qué comprobar

  • Registre el desired access mask de la llamada que recibió el rechazo.
  • Inspeccione owner, DACL e integrity policy del objeto concreto.
  • Determine qué token estaba efectivo: primary, impersonation o restricted token.
  • Solicite sólo los derechos realmente necesarios antes de ampliar ACL o privilegios.

Referencias técnicas


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