Los usuarios a menudo necesitan interpretar errores que se producen durante el funcionamiento de los sistemas operativos. En algunos casos, el sistema muestra únicamente un código numérico, a partir del cual resulta difícil determinar siquiera de forma aproximada la causa del problema. El servicio «What Is» utiliza una base de datos de códigos de error y de estado de Windows, Linux, macOS y Solaris que contiene decenas de miles de valores. En la mayoría de los casos, el servicio permite identificar el nombre de la constante y obtener una descripción técnica del código.
Categorías
La versión actual del servicio admite las siguientes categorías de códigos de error y de estado:
Muchas rutinas estándar de controladores en modo kernel y rutinas auxiliares de controladores utilizan el tipo NTSTATUS como valor de retorno. Además, al completar una IRP, los controladores escriben un valor de tipo NTSTATUS en la estructura IO_STATUS_BLOCK del paquete IRP. El tipo NTSTATUS se define en Ntdef.h y los códigos de estado proporcionados por el sistema se definen en Ntstatus.h.
Los códigos de error Win32 deben estar comprendidos entre 0x0000 y 0xFFFF, aunque pueden utilizarse tanto en campos de 16 bits como en campos de 32 bits, por ejemplo dentro del tipo HRESULT descrito en este artículo. Para la mayoría de los valores existe un mensaje predeterminado que permite asociar el código numérico con un texto legible. En ese caso, el código de error Win32 también se conoce como identificador de mensaje.
HRESULT es un tipo de datos utilizado en los sistemas operativos Windows y en el anterior sistema IBM/Microsoft OS/2 para representar errores y advertencias. Originalmente, los intervalos de HRESULT se distribuyeron formalmente entre códigos públicos y códigos internos de Microsoft para evitar colisiones entre códigos pertenecientes a diferentes subsistemas de OS/2. HRESULT es un código numérico. Determinados bits del valor contienen información sobre la naturaleza del error y su origen. Los códigos HRESULT aparecen con mayor frecuencia en la programación basada en COM, donde constituyen la base de una convención estándar para el tratamiento de errores.
Los códigos de comprobación de errores de Windows identifican condiciones críticas que provocan la detención del sistema operativo o, en determinados eventos de diagnóstico, la creación de un volcado sin detener el sistema. El código y sus parámetros ayudan a las herramientas de depuración del kernel a identificar la clase del fallo e investigar el controlador, el componente del sistema operativo o el hardware relacionado.
Códigos de estado de respuesta del Protocolo de Transferencia de Hipertexto (HTTP). El servidor devuelve uno de estos códigos en respuesta a una solicitud del cliente. La base de datos incluye códigos definidos en documentos IETF Request for Comments (RFC), otras especificaciones y algunos valores adicionales utilizados por aplicaciones HTTP comunes. El primer dígito del código determina una de las cinco clases estándar de respuesta. Las frases mostradas son textos habituales y pueden sustituirse por otra descripción comprensible para una persona.
Valor entero devuelto por llamadas al sistema y por determinadas funciones de biblioteca cuando se produce un error, con el fin de indicar su causa. El estándar ISO C define errno como un lvalue modificable de tipo int; no debe declararse explícitamente, ya que errno puede ser una macro. El valor de errno es local a cada hilo: modificarlo en un hilo no afecta a los demás.
La enumeración IppStatus contiene los valores de estado devueltos por las funciones Intel IPP e indica si la operación ha finalizado sin errores.
Código fuente
El servicio se basa en la biblioteca de código abierto AllStat. El código fuente está disponible en nuestro repositorio de GitHub. Agradecemos la participación en el desarrollo de la biblioteca y las propuestas para mejorar el servicio. También puede descargar desde nuestro sitio la utilidad ErrorLookup y las bibliotecas.