Códigos de error de Windows
Busca qué significa un código de error de Windows: los Win32 de GetLastError, los HRESULT como 0x80070005, los NTSTATUS como 0xC0000005 y los códigos de pantalla azul. Acepta el valor en hexadecimal o en decimal, el nombre simbólico o una parte del mensaje, y separa el HRESULT en sus campos.
Ejemplos:

Nombres y descripciones © Microsoft Corporation, tomados de los archivos de encabezado del Windows SDK y de la documentación de Microsoft Learn, que se publica bajo la licencia CC BY 4.0. Las descripciones se muestran en tu idioma cuando Microsoft las ha traducido.Códigos de error del sistema en Microsoft Learn

Errores frecuentes

Windows Update, instalaciones y archivos

Programas que no se abren o se cierran

Pantallas azules (comprobaciones de errores)

Cómo funciona

Windows informa de los errores con números de cuatro familias distintas. Los códigos Win32, como 5 o 1603, son los que devuelve GetLastError. Los HRESULT, como 0x80070005, son los de COM, Windows Update y los instaladores. Los NTSTATUS, como 0xC0000005, vienen del kernel y aparecen cuando un programa se cierra. Las comprobaciones de errores (bug checks), como 0xD1, son las de las pantallas azules. La herramienta busca en las cuatro familias a la vez, con los nombres y textos que Microsoft publica en el Windows SDK.

Muchos HRESULT llevan dentro un código Win32 o un NTSTATUS. Cuando el valor tiene FACILITY_WIN32, como 0x80070005, la herramienta muestra también el código Win32 que contiene y su descripción, que es la que realmente explica el error. Además separa los bits del valor: la gravedad, la facility que indica qué componente lo generó y el código dentro de esa facility.

Ejemplos

0x80070005FACILITY_WIN32 (7) · 5 → ERROR_ACCESS_DENIEDUn HRESULT que empieza por 0x8007 envuelve un código Win32 en sus cuatro últimos dígitos: 0x0005 es el 5, acceso denegado.
-10737418190xC0000005 · STATUS_ACCESS_VIOLATIONEl Visor de eventos y los códigos de salida de los procesos suelen mostrar el valor como decimal con signo. Es el mismo NTSTATUS de una infracción de acceso.
16030x80070643 · ERROR_INSTALL_FAILUREWindows Installer termina con 1603 cuando falla una instalación, y Windows Update informa del mismo error como el HRESULT 0x80070643.

Casos de uso

  • Entender un error de Windows Update, de Microsoft Store o de un instalador antes de buscar la solución.
  • Traducir el código de salida de un proceso o el valor que muestra el Visor de eventos al nombre de la constante.
  • Identificar la comprobación de errores (bug check) de una pantalla azul a partir del código de detención.
  • Encontrar el valor de una constante como ERROR_ACCESS_DENIED o E_INVALIDARG mientras se programa contra la API de Windows.
  • Ver el texto original en inglés de un error que aparece traducido, para buscarlo en foros y en la documentación.

Preguntas frecuentes

¿Por qué el mismo número aparece como dos errores distintos?

Cada familia numera sus códigos por separado. 0x7B es el error Win32 123, nombre de archivo incorrecto, y también el bug check INACCESSIBLE_BOOT_DEVICE de una pantalla azul. El contexto indica cuál es: si salió de una pantalla azul, es el bug check; si lo devolvió un programa o un comando, el Win32.

¿Cómo se convierte un código Win32 en HRESULT?

Con la macro HRESULT_FROM_WIN32: se toma el código en hexadecimal y se le antepone 0x8007, que pone a 1 el bit de error y a 7 la facility WIN32. El 5 pasa a ser 0x80070005 y el 1603, que es 0x643, pasa a ser 0x80070643. Para volver, se toman los cuatro últimos dígitos.

¿Por qué aparece un número negativo?

Los HRESULT y los NTSTATUS de error tienen el bit más alto a 1, así que al mostrarlos como entero con signo dan un número negativo. -2147024891 es 0x80070005 y -1073741819 es 0xC0000005. La herramienta acepta ambas formas.

¿Por qué algunas descripciones están en inglés?

Las descripciones traducidas son las que Microsoft publica en Microsoft Learn para los códigos Win32. Los textos de los HRESULT, de los NTSTATUS y de los códigos Win32 que Learn no ha traducido a tu idioma se muestran en inglés, tal como figuran en el Windows SDK.

¿Qué hago si el código no aparece?

Los programas pueden definir sus propios códigos, sobre todo los que tienen el bit C a 1 o una facility que no es de Windows, y esos no figuran en el SDK. En ese caso conviene mirar la facility que muestra la herramienta para saber qué componente generó el error y buscar el código en la documentación de ese producto.