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

Have feedback? Submit an issue here.