在过去的几天里,我一直在使用 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
。