在过去的几天里,我一直在使用 Windows 2003 上的 SetupApi,但我看到了一堆我没有预料到的错误。例如,如果我传递GUID_NULL给SetupDiGetClassDescription,它会返回 FALSE 并GetLastError()返回0xE0000206。
GUID_NULL 来自SetupDiEnumDeviceInfo;我不是故意这样做的。
我也看到了错误0xE0000209。这些“0xE”错误值在哪里声明、定义或记录?
在过去的几天里,我一直在使用 Windows 2003 上的 SetupApi,但我看到了一堆我没有预料到的错误。例如,如果我传递GUID_NULL给SetupDiGetClassDescription,它会返回 FALSE 并GetLastError()返回0xE0000206。
GUID_NULL 来自SetupDiEnumDeviceInfo;我不是故意这样做的。
我也看到了错误0xE0000209。这些“0xE”错误值在哪里声明、定义或记录?
事实证明,他们在SetupAPI.h,但伪装。
0xE0000206是ERROR_INVALID_CLASS:
#define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)
...并且0xE0000209是ERROR_INVALID_REG_PROPERTY:
#define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)
(并且,在 WinNT.h 中)...
#define APPLICATION_ERROR_MASK 0x20000000
#define ERROR_SEVERITY_ERROR 0xC0000000
0xC | 0x2是0xE。