Episode
Defrag Tools #191 - HRESULT Error Codes
In this episode of Defrag Tools, we talk about HRESULT based Error Codes. The 32bits in the HRESULT have meanings, allowing the reader to gain additional insights into the error.
Of note:
The 32nd bit (the top bit) indicates if an error occurred or not. This is why errors are 0x8xxxxxxx.
The 16-26 bits are the Facility - the originating API (Win32, CLR, XAML, etc.).
The 0-15 bits are the (Error) Code.
Common NULL Facility Error Codes
Name
Description
Value
S_OK
Operation successful
0x00000000
S_FALSE
Operation successful but returned no results
0x00000001
E_ABORT
Operation aborted
0x80004004
E_FAIL
Unspecified failure
0x80004005
E_NOINTERFACE
No such interface supported
0x80004002
E_NOTIMPL
Not implemented
0x80004001
E_POINTER
Pointer that is not valid
0x80004003
E_UNEXPECTED
Unexpected failure
0x8000FFFF
Common Win32 Facility Error Codes
These are built by passing a System Error Code to HRESULT_FROM_WIN32
Name
Description
Value
E_ACCESSDENIED
General access denied error
0x80070005
E_HANDLE
Handle that is not valid
0x80070006
E_INVALIDARG
One or more arguments are not valid
0x80070057
E_OUTOFMEMORY
Failed to allocate necessary memory
0x8007000E
Related Links:
HRESULT HRESULT Facility – By Value HRESULT Facility – By Name
In this episode of Defrag Tools, we talk about HRESULT based Error Codes. The 32bits in the HRESULT have meanings, allowing the reader to gain additional insights into the error.
Of note:
The 32nd bit (the top bit) indicates if an error occurred or not. This is why errors are 0x8xxxxxxx.
The 16-26 bits are the Facility - the originating API (Win32, CLR, XAML, etc.).
The 0-15 bits are the (Error) Code.
Common NULL Facility Error Codes
Name
Description
Value
S_OK
Operation successful
0x00000000
S_FALSE
Operation successful but returned no results
0x00000001
E_ABORT
Operation aborted
0x80004004
E_FAIL
Unspecified failure
0x80004005
E_NOINTERFACE
No such interface supported
0x80004002
E_NOTIMPL
Not implemented
0x80004001
E_POINTER
Pointer that is not valid
0x80004003
E_UNEXPECTED
Unexpected failure
0x8000FFFF
Common Win32 Facility Error Codes
These are built by passing a System Error Code to HRESULT_FROM_WIN32
Name
Description
Value
E_ACCESSDENIED
General access denied error
0x80070005
E_HANDLE
Handle that is not valid
0x80070006
E_INVALIDARG
One or more arguments are not valid
0x80070057
E_OUTOFMEMORY
Failed to allocate necessary memory
0x8007000E
Related Links:
HRESULT HRESULT Facility – By Value HRESULT Facility – By Name