Question

I've been playing with the SetupApi on Windows 2003 over the last couple of days, and I'm seeing a bunch of errors I'm not expecting. For example, if I pass GUID_NULL to SetupDiGetClassDescription, it returns FALSE and GetLastError() returns 0xE0000206.

The GUID_NULL came from SetupDiEnumDeviceInfo; I'm not doing this deliberately.

I've also seen error 0xE0000209. Where are these "0xE" error values declared, defined or documented?

Was it helpful?

Solution

It turns out that they're in SetupAPI.h, but disguised.

0xE0000206 is ERROR_INVALID_CLASS:

#define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)

...and 0xE0000209 is ERROR_INVALID_REG_PROPERTY:

#define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)

(and, in WinNT.h)...

#define APPLICATION_ERROR_MASK       0x20000000
#define ERROR_SEVERITY_ERROR         0xC0000000

0xC | 0x2 is 0xE.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top