GitHunt
KE

kevmitch/parse_hresult

decode cryptic Microsoft Windows error codes

parse_hresult

This is a utility to help make sense of the cryptic HRESULT error codes commonly
used by Microsoft Windows APIs and programs interfacing with them. It is based
on the information available on
Wikipedia and
MSDN.

Usage

Simply run the command with the hexidecimal error code as the argument. The
program will disect the bits of the resulting 32 bit integer and provide
resulting analysis. For example

./parse_hresult 0x80070005

will produce the output

 HRESULT = Access is denied. (0x80070005) (-2147024891)
    8    0    0    7    0    0    0    5
 1000 0000 0000 0111 0000 0000 0000 0101
 SRCN X--- ---- ---- ---- ---- ---- ----
       | FACILITY  | |      CODE       |

 32    S: Severity (status)              = 1 (failure)
 31    R: Reserved (actual severity)     = 0 (normal)
 30    C: Customer (defined by)          = 0 (Microsoft)
 29    N: NT mapped status value         = 0
 28    X: Is message ID?                 = 0
 27-17 FACILITY: The source of the error = 7 (FACILITY_WIN32: Win32 Error codes)
 16-01 CODE: The error code              = 5 (Access is denied. (0x5))

Compiling

The only dependencies other than standard Windows libraries and headers are make
and a c complier (only gcc has been tested). On MSYS2 or Cygwin, the
parse_hresult.exe executable can be produced by typing

make

To remove the executable and object files, run

make clean

Languages

C99.1%Makefile0.9%

Contributors

GNU Lesser General Public License v2.1
Created March 17, 2016
Updated March 8, 2026
kevmitch/parse_hresult | GitHunt