Me di cuenta de que la mayoría de los códigos de error de Windows vienen en una de dos formas:
- Los códigos de error del sistema estándar , por ejemplo, 0x05 es Acceso denegado.
- Códigos de error en el formulario
0xC000xxxx
, para los cuales no puedo encontrar ninguna referencia.
Primero consideré que los últimos códigos de error eran solo códigos de error del sistema con los que se había hecho OR bit a bit 0xC0000000
por alguna razón, pero este no parece ser el caso; no coinciden con la naturaleza de la falla si se asignan de esa manera.
Todas las referencias a tales errores en Google parecen estar relacionadas con bloqueos de aplicaciones, pero no se proporcionan nombres de errores.
Tampoco parecen ser específicos de la aplicación, ya que algunas de las Nt*
API dentro de ntdll.dll los devuelven, por ejemplo, NtCreateDirectoryObject
devuelve 0xC0000022
cuando se llama con parámetros incorrectos.
¿Cuál es la diferencia entre los dos tipos de código de error? ¿Microsoft los reconoce oficialmente como códigos de error estándar? ¿Hay una página de referencia para ellos?
Respuestas:
Hay una extensa lista de valores de error en la documentación de los valores de NTSTATUS .
Por ejemplo,
0xC0000022
significaSTATUS_ACCESS_DENIED
, que es un valor de retorno muy común.Algo no relacionado, pero también hay una lista de códigos de Bug Check . Estos códigos generalmente se muestran cuando se recibe un BSOD.
fuente
De acuerdo con alguna información (por ejemplo, /programming/4550207/what-are-the-causes-and-solutions-of-exception-code-c0000005-in-mscorwks-dll ), los códigos de error 0xC00xxxxx son los códigos de error del sistema "normales" de la API Win32 envueltos como códigos de excepción.
fuente