Why do many Windows error codes start with 0xC000xxxx? Is there a reference for them?

11

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?

windows
asked on Super User Apr 22, 2013 by Polynomial • edited Jul 28, 2013 by slhck

2 Answers

7

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.

answered on Super User Apr 22, 2013 by Der Hochstapler • edited Apr 22, 2013 by Der Hochstapler
0

According to some info (e.g. https://stackoverflow.com/questions/4550207/what-are-the-causes-and-solutions-of-exception-code-c0000005-in-mscorwks-dll), the 0xC00xxxxx error codes are the "normal" system error codes of the Win32 API wrapped as exception codes.

answered on Super User Apr 22, 2013 by Ale • edited May 23, 2017 by Community

User contributions licensed under CC BY-SA 3.0