Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've noticed that most Windows error codes come in one of two forms:

  • Standard system error codes, e.g. 0x05 is Access Denied.
  • Error codes in the form 0xC000xxxx, which I can't find any reference for.

I first considered that the latter error codes were just system error codes that had been bitwise OR'ed with 0xC0000000 for some reason, but this doesn't seem to be the case; they do not match up to the nature of the fault if mapped in that way.

All of the references to such errors on Google seem to be related to application crashes, but no error names are provided.

They don't seem to be application specific, either, since some of the Nt* APIs inside ntdll.dll return them, e.g. NtCreateDirectoryObject returns 0xC0000022 when called with bad parameters.

What's the difference between the two types of error code? Does Microsoft officially recognise them as standard error codes? Is there a reference page for them?

share|improve this question
have a look at COM Error Codes… – bummi Apr 22 '13 at 11:14
up vote 7 down vote accepted

There's an extensive list of error values in the documentation of NTSTATUS values.

For example, 0xC0000022 stands for STATUS_ACCESS_DENIED, which is a very common return value.

Somewhat unrelated, but there's also a list of Bug Check codes. These codes are usually displayed when receiving a BSOD.

share|improve this answer
Excellent! That link is definitely going in my bookmarks. – Polynomial Apr 22 '13 at 13:57

According to some info (e.g., the 0xC00xxxxx error codes are the "normal" system error codes of the Win32 API wrapped as exception codes.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .