mce.h 28 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078
  1. #pragma once
  2. #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
  3. typedef union _MCI_ADDR {
  4. _ANONYMOUS_STRUCT struct {
  5. ULONG Address;
  6. ULONG Reserved;
  7. } DUMMYSTRUCTNAME;
  8. ULONGLONG QuadPart;
  9. } MCI_ADDR, *PMCI_ADDR;
  10. typedef enum {
  11. HAL_MCE_RECORD,
  12. HAL_MCA_RECORD
  13. } MCA_EXCEPTION_TYPE;
  14. #if defined(_AMD64_)
  15. #if (NTDDI_VERSION <= NTDDI_WINXP)
  16. typedef union _MCI_STATS {
  17. struct {
  18. USHORT McaCod;
  19. USHORT ModelErrorCode;
  20. ULONG OtherInfo:25;
  21. ULONG Damage:1;
  22. ULONG AddressValid:1;
  23. ULONG MiscValid:1;
  24. ULONG Enabled:1;
  25. ULONG Uncorrected:1;
  26. ULONG OverFlow:1;
  27. ULONG Valid:1;
  28. } MciStatus;
  29. ULONG64 QuadPart;
  30. } MCI_STATS, *PMCI_STATS;
  31. #else
  32. typedef union _MCI_STATS {
  33. struct {
  34. USHORT McaErrorCode;
  35. USHORT ModelErrorCode;
  36. ULONG OtherInformation:25;
  37. ULONG ContextCorrupt:1;
  38. ULONG AddressValid:1;
  39. ULONG MiscValid:1;
  40. ULONG ErrorEnabled:1;
  41. ULONG UncorrectedError:1;
  42. ULONG StatusOverFlow:1;
  43. ULONG Valid:1;
  44. } MciStatus;
  45. ULONG64 QuadPart;
  46. } MCI_STATS, *PMCI_STATS;
  47. #endif /* (NTDDI_VERSION <= NTDDI_WINXP) */
  48. #endif /* defined(_AMD64_) */
  49. #if defined(_X86_)
  50. typedef union _MCI_STATS {
  51. struct {
  52. USHORT McaCod;
  53. USHORT MsCod;
  54. ULONG OtherInfo:25;
  55. ULONG Damage:1;
  56. ULONG AddressValid:1;
  57. ULONG MiscValid:1;
  58. ULONG Enabled:1;
  59. ULONG UnCorrected:1;
  60. ULONG OverFlow:1;
  61. ULONG Valid:1;
  62. } MciStats;
  63. ULONGLONG QuadPart;
  64. } MCI_STATS, *PMCI_STATS;
  65. #endif
  66. #define MCA_EXTREG_V2MAX 24
  67. #if defined(_X86_) || defined(_AMD64_)
  68. #if (NTDDI_VERSION >= NTDDI_WINXP)
  69. typedef struct _MCA_EXCEPTION {
  70. ULONG VersionNumber;
  71. MCA_EXCEPTION_TYPE ExceptionType;
  72. LARGE_INTEGER TimeStamp;
  73. ULONG ProcessorNumber;
  74. ULONG Reserved1;
  75. union {
  76. struct {
  77. UCHAR BankNumber;
  78. UCHAR Reserved2[7];
  79. MCI_STATS Status;
  80. MCI_ADDR Address;
  81. ULONGLONG Misc;
  82. } Mca;
  83. struct {
  84. ULONGLONG Address;
  85. ULONGLONG Type;
  86. } Mce;
  87. } u;
  88. ULONG ExtCnt;
  89. ULONG Reserved3;
  90. ULONGLONG ExtReg[MCA_EXTREG_V2MAX];
  91. } MCA_EXCEPTION, *PMCA_EXCEPTION;
  92. #else
  93. typedef struct _MCA_EXCEPTION {
  94. ULONG VersionNumber;
  95. MCA_EXCEPTION_TYPE ExceptionType;
  96. LARGE_INTEGER TimeStamp;
  97. ULONG ProcessorNumber;
  98. ULONG Reserved1;
  99. union {
  100. struct {
  101. UCHAR BankNumber;
  102. UCHAR Reserved2[7];
  103. MCI_STATS Status;
  104. MCI_ADDR Address;
  105. ULONGLONG Misc;
  106. } Mca;
  107. struct {
  108. ULONGLONG Address;
  109. ULONGLONG Type;
  110. } Mce;
  111. } u;
  112. } MCA_EXCEPTION, *PMCA_EXCEPTION;
  113. #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
  114. typedef MCA_EXCEPTION CMC_EXCEPTION, *PCMC_EXCEPTION;
  115. typedef MCA_EXCEPTION CPE_EXCEPTION, *PCPE_EXCEPTION;
  116. #if (NTDDI_VERSION >= NTDDI_WINXP)
  117. #define MCA_EXCEPTION_V1_SIZE FIELD_OFFSET(MCA_EXCEPTION, ExtCnt)
  118. #define MCA_EXCEPTION_V2_SIZE sizeof(struct _MCA_EXCEPTION)
  119. #endif
  120. #endif /* defined(_X86_) || defined(_AMD64_) */
  121. #if defined(_AMD64_) || defined(_IA64_)
  122. typedef UCHAR ERROR_SEVERITY, *PERROR_SEVERITY;
  123. typedef enum _ERROR_SEVERITY_VALUE {
  124. ErrorRecoverable = 0,
  125. ErrorFatal = 1,
  126. ErrorCorrected = 2,
  127. ErrorOthers = 3,
  128. } ERROR_SEVERITY_VALUE;
  129. #endif
  130. #if defined(_IA64_)
  131. typedef union _ERROR_REVISION {
  132. USHORT Revision;
  133. _ANONYMOUS_STRUCT struct {
  134. UCHAR Minor;
  135. UCHAR Major;
  136. } DUMMYSTRUCTNAME;
  137. } ERROR_REVISION, *PERROR_REVISION;
  138. #if (NTDDI_VERSION > NTDDI_WINXP)
  139. #define ERROR_MAJOR_REVISION_SAL_03_00 0
  140. #define ERROR_MINOR_REVISION_SAL_03_00 2
  141. #define ERROR_REVISION_SAL_03_00 {ERROR_MINOR_REVISION_SAL_03_00,ERROR_MAJOR_REVISION_SAL_03_00}
  142. #define ERROR_FIXED_SECTION_REVISION {2,0}
  143. #else
  144. #define ERROR_REVISION_SAL_03_00 {2,0}
  145. #endif /* (NTDDI_VERSION > NTDDI_WINXP) */
  146. typedef union _ERROR_TIMESTAMP {
  147. ULONGLONG TimeStamp;
  148. _ANONYMOUS_STRUCT struct {
  149. UCHAR Seconds;
  150. UCHAR Minutes;
  151. UCHAR Hours;
  152. UCHAR Reserved;
  153. UCHAR Day;
  154. UCHAR Month;
  155. UCHAR Year;
  156. UCHAR Century;
  157. } DUMMYSTRUCTNAME;
  158. } ERROR_TIMESTAMP, *PERROR_TIMESTAMP;
  159. typedef struct _ERROR_GUID {
  160. ULONG Data1;
  161. USHORT Data2;
  162. USHORT Data3;
  163. UCHAR Data4[8];
  164. } ERROR_GUID, *PERROR_GUID;
  165. typedef ERROR_GUID _ERROR_DEVICE_GUID;
  166. typedef _ERROR_DEVICE_GUID ERROR_DEVICE_GUID, *PERROR_DEVICE_GUID;
  167. typedef ERROR_GUID _ERROR_PLATFORM_GUID;
  168. typedef _ERROR_PLATFORM_GUID ERROR_PLATFORM_GUID, *PERROR_PLATFORM_GUID;
  169. typedef union _ERROR_RECORD_VALID {
  170. UCHAR Valid;
  171. _ANONYMOUS_STRUCT struct {
  172. UCHAR OemPlatformID:1;
  173. UCHAR Reserved:7;
  174. } DUMMYSTRUCTNAME;
  175. } ERROR_RECORD_VALID, *PERROR_RECORD_VALID;
  176. typedef struct _ERROR_RECORD_HEADER {
  177. ULONGLONG Id;
  178. ERROR_REVISION Revision;
  179. ERROR_SEVERITY ErrorSeverity;
  180. ERROR_RECORD_VALID Valid;
  181. ULONG Length;
  182. ERROR_TIMESTAMP TimeStamp;
  183. UCHAR OemPlatformId[16];
  184. } ERROR_RECORD_HEADER, *PERROR_RECORD_HEADER;
  185. typedef union _ERROR_RECOVERY_INFO {
  186. UCHAR RecoveryInfo;
  187. _ANONYMOUS_STRUCT struct {
  188. UCHAR Corrected:1;
  189. UCHAR NotContained:1;
  190. UCHAR Reset:1;
  191. UCHAR Reserved:4;
  192. UCHAR Valid:1;
  193. } DUMMYSTRUCTNAME;
  194. } ERROR_RECOVERY_INFO, *PERROR_RECOVERY_INFO;
  195. typedef struct _ERROR_SECTION_HEADER {
  196. ERROR_DEVICE_GUID Guid;
  197. ERROR_REVISION Revision;
  198. ERROR_RECOVERY_INFO RecoveryInfo;
  199. UCHAR Reserved;
  200. ULONG Length;
  201. } ERROR_SECTION_HEADER, *PERROR_SECTION_HEADER;
  202. #if !defined(__midl)
  203. __inline
  204. USHORT
  205. NTAPI
  206. GetFwMceLogProcessorNumber(
  207. PERROR_RECORD_HEADER Log)
  208. {
  209. PERROR_SECTION_HEADER section = (PERROR_SECTION_HEADER)((ULONG64)Log + sizeof(*Log));
  210. USHORT lid = (USHORT)((UCHAR)(section->Reserved));
  211. #ifdef NONAMELESSUNION
  212. lid |= (USHORT)((UCHAR)(Log->TimeStamp.s.Reserved) << 8);
  213. #else
  214. lid |= (USHORT)((UCHAR)(Log->TimeStamp.Reserved) << 8);
  215. #endif
  216. return( lid );
  217. }
  218. #endif /* !__midl */
  219. #define ERROR_PROCESSOR_GUID {0xe429faf1, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  220. typedef union _ERROR_MODINFO_VALID {
  221. ULONGLONG Valid;
  222. _ANONYMOUS_STRUCT struct {
  223. ULONGLONG CheckInfo:1;
  224. ULONGLONG RequestorIdentifier:1;
  225. ULONGLONG ResponderIdentifier:1;
  226. ULONGLONG TargetIdentifier:1;
  227. ULONGLONG PreciseIP:1;
  228. ULONGLONG Reserved:59;
  229. } DUMMYSTRUCTNAME;
  230. } ERROR_MODINFO_VALID, *PERROR_MODINFO_VALID;
  231. typedef enum _ERROR_CHECK_IS {
  232. isIA64 = 0,
  233. isIA32 = 1,
  234. } ERROR_CHECK_IS;
  235. typedef enum _ERROR_CACHE_CHECK_OPERATION {
  236. CacheUnknownOp = 0,
  237. CacheLoad = 1,
  238. CacheStore = 2,
  239. CacheInstructionFetch = 3,
  240. CacheDataPrefetch = 4,
  241. CacheSnoop = 5,
  242. CacheCastOut = 6,
  243. CacheMoveIn = 7,
  244. } ERROR_CACHE_CHECK_OPERATION;
  245. typedef enum _ERROR_CACHE_CHECK_MESI {
  246. CacheInvalid = 0,
  247. CacheHeldShared = 1,
  248. CacheHeldExclusive = 2,
  249. CacheModified = 3,
  250. } ERROR_CACHE_CHECK_MESI;
  251. #if (NTDDI_VERSION >= NTDDI_VISTA)
  252. typedef union _ERROR_CACHE_CHECK {
  253. ULONGLONG CacheCheck;
  254. _ANONYMOUS_STRUCT struct {
  255. ULONGLONG Operation:4;
  256. ULONGLONG Level:2;
  257. ULONGLONG Reserved1:2;
  258. ULONGLONG DataLine:1;
  259. ULONGLONG TagLine:1;
  260. ULONGLONG DataCache:1;
  261. ULONGLONG InstructionCache:1;
  262. ULONGLONG MESI:3;
  263. ULONGLONG MESIValid:1;
  264. ULONGLONG Way:5;
  265. ULONGLONG WayIndexValid:1;
  266. ULONGLONG Reserved2:1;
  267. ULONGLONG DP:1;
  268. ULONGLONG Reserved3:8;
  269. ULONGLONG Index:20;
  270. ULONGLONG Reserved4:2;
  271. ULONGLONG InstructionSet:1;
  272. ULONGLONG InstructionSetValid:1;
  273. ULONGLONG PrivilegeLevel:2;
  274. ULONGLONG PrivilegeLevelValid:1;
  275. ULONGLONG MachineCheckCorrected:1;
  276. ULONGLONG TargetAddressValid:1;
  277. ULONGLONG RequestIdValid:1;
  278. ULONGLONG ResponderIdValid:1;
  279. ULONGLONG PreciseIPValid:1;
  280. } DUMMYSTRUCTNAME;
  281. } ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK;
  282. # else
  283. typedef union _ERROR_CACHE_CHECK {
  284. ULONGLONG CacheCheck;
  285. _ANONYMOUS_STRUCT struct {
  286. ULONGLONG Operation:4;
  287. ULONGLONG Level:2;
  288. ULONGLONG Reserved1:2;
  289. ULONGLONG DataLine:1;
  290. ULONGLONG TagLine:1;
  291. ULONGLONG DataCache:1;
  292. ULONGLONG InstructionCache:1;
  293. ULONGLONG MESI:3;
  294. ULONGLONG MESIValid:1;
  295. ULONGLONG Way:5;
  296. ULONGLONG WayIndexValid:1;
  297. ULONGLONG Reserved2:10;
  298. ULONGLONG Index:20;
  299. ULONGLONG Reserved3:2;
  300. ULONGLONG InstructionSet:1;
  301. ULONGLONG InstructionSetValid:1;
  302. ULONGLONG PrivilegeLevel:2;
  303. ULONGLONG PrivilegeLevelValid:1;
  304. ULONGLONG MachineCheckCorrected:1;
  305. ULONGLONG TargetAddressValid:1;
  306. ULONGLONG RequestIdValid:1;
  307. ULONGLONG ResponderIdValid:1;
  308. ULONGLONG PreciseIPValid:1;
  309. } DUMMYSTRUCTNAME;
  310. } ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK;
  311. #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
  312. typedef enum _ERROR_TLB_CHECK_OPERATION {
  313. TlbUnknownOp = 0,
  314. TlbAccessWithLoad = 1,
  315. TlbAccessWithStore = 2,
  316. TlbAccessWithInstructionFetch = 3,
  317. TlbAccessWithDataPrefetch = 4,
  318. TlbShootDown = 5,
  319. TlbProbe = 6,
  320. TlbVhptFill = 7,
  321. TlbPurge = 8,
  322. } ERROR_TLB_CHECK_OPERATION;
  323. typedef union _ERROR_TLB_CHECK {
  324. ULONGLONG TlbCheck;
  325. _ANONYMOUS_STRUCT struct {
  326. ULONGLONG TRSlot:8;
  327. ULONGLONG TRSlotValid:1;
  328. ULONGLONG Reserved1:1;
  329. ULONGLONG Level:2;
  330. ULONGLONG Reserved2:4;
  331. ULONGLONG DataTransReg:1;
  332. ULONGLONG InstructionTransReg:1;
  333. ULONGLONG DataTransCache:1;
  334. ULONGLONG InstructionTransCache:1;
  335. ULONGLONG Operation:4;
  336. ULONGLONG Reserved3:30;
  337. ULONGLONG InstructionSet:1;
  338. ULONGLONG InstructionSetValid:1;
  339. ULONGLONG PrivilegeLevel:2;
  340. ULONGLONG PrivilegeLevelValid:1;
  341. ULONGLONG MachineCheckCorrected:1;
  342. ULONGLONG TargetAddressValid:1;
  343. ULONGLONG RequestIdValid:1;
  344. ULONGLONG ResponderIdValid:1;
  345. ULONGLONG PreciseIPValid:1;
  346. } DUMMYSTRUCTNAME;
  347. } ERROR_TLB_CHECK, *PERROR_TLB_CHECK;
  348. typedef enum _ERROR_BUS_CHECK_OPERATION {
  349. BusUnknownOp = 0,
  350. BusPartialRead = 1,
  351. BusPartialWrite = 2,
  352. BusFullLineRead = 3,
  353. BusFullLineWrite = 4,
  354. BusWriteBack = 5,
  355. BusSnoopProbe = 6,
  356. BusIncomingPtcG = 7,
  357. BusWriteCoalescing = 8,
  358. } ERROR_BUS_CHECK_OPERATION;
  359. #if (NTDDI_VERSION >= NTDDI_VISTA)
  360. typedef union _ERROR_BUS_CHECK {
  361. ULONGLONG BusCheck;
  362. _ANONYMOUS_STRUCT struct {
  363. ULONGLONG Size:5;
  364. ULONGLONG Internal:1;
  365. ULONGLONG External:1;
  366. ULONGLONG CacheTransfer:1;
  367. ULONGLONG Type:8;
  368. ULONGLONG Severity:5;
  369. ULONGLONG Hierarchy:2;
  370. ULONGLONG DP:1;
  371. ULONGLONG Status:8;
  372. ULONGLONG Reserved1:22;
  373. ULONGLONG InstructionSet:1;
  374. ULONGLONG InstructionSetValid:1;
  375. ULONGLONG PrivilegeLevel:2;
  376. ULONGLONG PrivilegeLevelValid:1;
  377. ULONGLONG MachineCheckCorrected:1;
  378. ULONGLONG TargetAddressValid:1;
  379. ULONGLONG RequestIdValid:1;
  380. ULONGLONG ResponderIdValid:1;
  381. ULONGLONG PreciseIPValid:1;
  382. } DUMMYSTRUCTNAME;
  383. } ERROR_BUS_CHECK, *PERROR_BUS_CHECK;
  384. #else
  385. typedef union _ERROR_BUS_CHECK {
  386. ULONGLONG BusCheck;
  387. _ANONYMOUS_STRUCT struct {
  388. ULONGLONG Size:5;
  389. ULONGLONG Internal:1;
  390. ULONGLONG External:1;
  391. ULONGLONG CacheTransfer:1;
  392. ULONGLONG Type:8;
  393. ULONGLONG Severity:5;
  394. ULONGLONG Hierarchy:2;
  395. ULONGLONG Reserved1:1;
  396. ULONGLONG Status:8;
  397. ULONGLONG Reserved2:22;
  398. ULONGLONG InstructionSet:1;
  399. ULONGLONG InstructionSetValid:1;
  400. ULONGLONG PrivilegeLevel:2;
  401. ULONGLONG PrivilegeLevelValid:1;
  402. ULONGLONG MachineCheckCorrected:1;
  403. ULONGLONG TargetAddressValid:1;
  404. ULONGLONG RequestIdValid:1;
  405. ULONGLONG ResponderIdValid:1;
  406. ULONGLONG PreciseIPValid:1;
  407. } DUMMYSTRUCTNAME;
  408. } ERROR_BUS_CHECK, *PERROR_BUS_CHECK;
  409. #endif
  410. typedef enum _ERROR_REGFILE_CHECK_IDENTIFIER {
  411. RegFileUnknownId = 0,
  412. GeneralRegisterBank1 = 1,
  413. GeneralRegisterBank0 = 2,
  414. FloatingPointRegister = 3,
  415. BranchRegister = 4,
  416. PredicateRegister = 5,
  417. ApplicationRegister = 6,
  418. ControlRegister = 7,
  419. RegionRegister = 8,
  420. ProtectionKeyRegister = 9,
  421. DataBreakPointRegister = 10,
  422. InstructionBreakPointRegister = 11,
  423. PerformanceMonitorControlRegister = 12,
  424. PerformanceMonitorDataRegister = 13,
  425. } ERROR_REGFILE_CHECK_IDENTIFIER;
  426. typedef enum _ERROR_REGFILE_CHECK_OPERATION {
  427. RegFileUnknownOp = 0,
  428. RegFileRead = 1,
  429. RegFileWrite = 2,
  430. } ERROR_REGFILE_CHECK_OPERATION;
  431. typedef union _ERROR_REGFILE_CHECK {
  432. ULONGLONG RegFileCheck;
  433. _ANONYMOUS_STRUCT struct {
  434. ULONGLONG Identifier:4;
  435. ULONGLONG Operation:4;
  436. ULONGLONG RegisterNumber:7;
  437. ULONGLONG RegisterNumberValid:1;
  438. ULONGLONG Reserved1:38;
  439. ULONGLONG InstructionSet:1;
  440. ULONGLONG InstructionSetValid:1;
  441. ULONGLONG PrivilegeLevel:2;
  442. ULONGLONG PrivilegeLevelValid:1;
  443. ULONGLONG MachineCheckCorrected:1;
  444. ULONGLONG Reserved2:3;
  445. ULONGLONG PreciseIPValid:1;
  446. } DUMMYSTRUCTNAME;
  447. } ERROR_REGFILE_CHECK, *PERROR_REGFILE_CHECK;
  448. #if (NTDDK_VERSION <= WINXP)
  449. typedef enum _ERROR_MS_CHECK_OPERATION {
  450. MsUnknownOp = 0,
  451. MsReadOrLoad = 1,
  452. MsWriteOrStore = 2
  453. } ERROR_MS_CHECK_OPERATION;
  454. #else
  455. typedef enum _ERROR_MS_CHECK_OPERATION {
  456. MsUnknownOp = 0,
  457. MsReadOrLoad = 1,
  458. MsWriteOrStore = 2,
  459. MsOverTemperature = 3,
  460. MsNormalTemperature = 4
  461. } ERROR_MS_CHECK_OPERATION;
  462. #endif
  463. typedef union _ERROR_MS_CHECK {
  464. ULONGLONG MsCheck;
  465. _ANONYMOUS_STRUCT struct {
  466. ULONGLONG StructureIdentifier:5;
  467. ULONGLONG Level:3;
  468. ULONGLONG ArrayId:4;
  469. ULONGLONG Operation:4;
  470. ULONGLONG Way:6;
  471. ULONGLONG WayValid:1;
  472. ULONGLONG IndexValid:1;
  473. ULONGLONG Reserved1:8;
  474. ULONGLONG Index:8;
  475. ULONGLONG Reserved2:14;
  476. ULONGLONG InstructionSet:1;
  477. ULONGLONG InstructionSetValid:1;
  478. ULONGLONG PrivilegeLevel:2;
  479. ULONGLONG PrivilegeLevelValid:1;
  480. ULONGLONG MachineCheckCorrected:1;
  481. ULONGLONG TargetAddressValid:1;
  482. ULONGLONG RequestIdValid:1;
  483. ULONGLONG ResponderIdValid:1;
  484. ULONGLONG PreciseIPValid:1;
  485. } DUMMYSTRUCTNAME;
  486. } ERROR_MS_CHECK, *PERROR_MS_CHECK;
  487. typedef union _ERROR_CHECK_INFO {
  488. ULONGLONG CheckInfo;
  489. ERROR_CACHE_CHECK CacheCheck;
  490. ERROR_TLB_CHECK TlbCheck;
  491. ERROR_BUS_CHECK BusCheck;
  492. ERROR_REGFILE_CHECK RegFileCheck;
  493. ERROR_MS_CHECK MsCheck;
  494. } ERROR_CHECK_INFO, *PERROR_CHECK_INFO;
  495. typedef struct _ERROR_MODINFO {
  496. ERROR_MODINFO_VALID Valid;
  497. ERROR_CHECK_INFO CheckInfo;
  498. ULONGLONG RequestorId;
  499. ULONGLONG ResponderId;
  500. ULONGLONG TargetId;
  501. ULONGLONG PreciseIP;
  502. } ERROR_MODINFO, *PERROR_MODINFO;
  503. typedef union _ERROR_PROCESSOR_VALID {
  504. ULONGLONG Valid;
  505. _ANONYMOUS_STRUCT struct {
  506. ULONGLONG ErrorMap:1;
  507. ULONGLONG StateParameter:1;
  508. ULONGLONG CRLid:1;
  509. ULONGLONG StaticStruct:1;
  510. ULONGLONG CacheCheckNum:4;
  511. ULONGLONG TlbCheckNum:4;
  512. ULONGLONG BusCheckNum:4;
  513. ULONGLONG RegFileCheckNum:4;
  514. ULONGLONG MsCheckNum:4;
  515. ULONGLONG CpuIdInfo:1;
  516. ULONGLONG Reserved:39;
  517. } DUMMYSTRUCTNAME;
  518. } ERROR_PROCESSOR_VALID, *PERROR_PROCESSOR_VALID;
  519. typedef union _ERROR_PROCESSOR_ERROR_MAP {
  520. ULONGLONG ErrorMap;
  521. _ANONYMOUS_STRUCT struct {
  522. ULONGLONG Cid:4;
  523. ULONGLONG Tid:4;
  524. ULONGLONG Eic:4;
  525. ULONGLONG Edc:4;
  526. ULONGLONG Eit:4;
  527. ULONGLONG Edt:4;
  528. ULONGLONG Ebh:4;
  529. ULONGLONG Erf:4;
  530. ULONGLONG Ems:16;
  531. ULONGLONG Reserved:16;
  532. } DUMMYSTRUCTNAME;
  533. } ERROR_PROCESSOR_ERROR_MAP, *PERROR_PROCESSOR_ERROR_MAP;
  534. typedef ERROR_PROCESSOR_ERROR_MAP _ERROR_PROCESSOR_LEVEL_INDEX;
  535. typedef _ERROR_PROCESSOR_LEVEL_INDEX ERROR_PROCESSOR_LEVEL_INDEX, *PERROR_PROCESSOR_LEVEL_INDEX;
  536. typedef union _ERROR_PROCESSOR_STATE_PARAMETER {
  537. ULONGLONG StateParameter;
  538. _ANONYMOUS_STRUCT struct {
  539. ULONGLONG reserved0:2;
  540. ULONGLONG rz:1;
  541. ULONGLONG ra:1;
  542. ULONGLONG me:1;
  543. ULONGLONG mn:1;
  544. ULONGLONG sy:1;
  545. ULONGLONG co:1;
  546. ULONGLONG ci:1;
  547. ULONGLONG us:1;
  548. ULONGLONG hd:1;
  549. ULONGLONG tl:1;
  550. ULONGLONG mi:1;
  551. ULONGLONG pi:1;
  552. ULONGLONG pm:1;
  553. ULONGLONG dy:1;
  554. ULONGLONG in:1;
  555. ULONGLONG rs:1;
  556. ULONGLONG cm:1;
  557. ULONGLONG ex:1;
  558. ULONGLONG cr:1;
  559. ULONGLONG pc:1;
  560. ULONGLONG dr:1;
  561. ULONGLONG tr:1;
  562. ULONGLONG rr:1;
  563. ULONGLONG ar:1;
  564. ULONGLONG br:1;
  565. ULONGLONG pr:1;
  566. ULONGLONG fp:1;
  567. ULONGLONG b1:1;
  568. ULONGLONG b0:1;
  569. ULONGLONG gr:1;
  570. ULONGLONG dsize:16;
  571. ULONGLONG reserved1:11;
  572. ULONGLONG cc:1;
  573. ULONGLONG tc:1;
  574. ULONGLONG bc:1;
  575. ULONGLONG rc:1;
  576. ULONGLONG uc:1;
  577. } DUMMYSTRUCTNAME;
  578. } ERROR_PROCESSOR_STATE_PARAMETER, *PERROR_PROCESSOR_STATE_PARAMETER;
  579. typedef union _PROCESSOR_LOCAL_ID {
  580. ULONGLONG LocalId;
  581. _ANONYMOUS_STRUCT struct {
  582. ULONGLONG reserved:16;
  583. ULONGLONG eid:8;
  584. ULONGLONG id:8;
  585. ULONGLONG ignored:32;
  586. } DUMMYSTRUCTNAME;
  587. } PROCESSOR_LOCAL_ID, *PPROCESSOR_LOCAL_ID;
  588. typedef struct _ERROR_PROCESSOR_MS {
  589. ULONGLONG MsError[1];
  590. } ERROR_PROCESSOR_MS, *PERROR_PROCESSOR_MS;
  591. typedef struct _ERROR_PROCESSOR_CPUID_INFO {
  592. ULONGLONG CpuId0;
  593. ULONGLONG CpuId1;
  594. ULONGLONG CpuId2;
  595. ULONGLONG CpuId3;
  596. ULONGLONG CpuId4;
  597. ULONGLONG Reserved;
  598. } ERROR_PROCESSOR_CPUID_INFO, *PERROR_PROCESSOR_CPUID_INFO;
  599. typedef union _ERROR_PROCESSOR_STATIC_INFO_VALID {
  600. ULONGLONG Valid;
  601. _ANONYMOUS_STRUCT struct {
  602. ULONGLONG MinState:1;
  603. ULONGLONG BR:1;
  604. ULONGLONG CR:1;
  605. ULONGLONG AR:1;
  606. ULONGLONG RR:1;
  607. ULONGLONG FR:1;
  608. ULONGLONG Reserved:58;
  609. } DUMMYSTRUCTNAME;
  610. } ERROR_PROCESSOR_STATIC_INFO_VALID, *PERROR_PROCESSOR_STATIC_INFO_VALID;
  611. typedef struct _ERROR_PROCESSOR_STATIC_INFO {
  612. ERROR_PROCESSOR_STATIC_INFO_VALID Valid;
  613. UCHAR MinState[1024];
  614. ULONGLONG BR[8];
  615. ULONGLONG CR[128];
  616. ULONGLONG AR[128];
  617. ULONGLONG RR[8];
  618. ULONGLONG FR[2 * 128];
  619. } ERROR_PROCESSOR_STATIC_INFO, *PERROR_PROCESSOR_STATIC_INFO;
  620. typedef struct _ERROR_PROCESSOR {
  621. ERROR_SECTION_HEADER Header;
  622. ERROR_PROCESSOR_VALID Valid;
  623. ERROR_PROCESSOR_ERROR_MAP ErrorMap;
  624. ERROR_PROCESSOR_STATE_PARAMETER StateParameter;
  625. PROCESSOR_LOCAL_ID CRLid;
  626. } ERROR_PROCESSOR, *PERROR_PROCESSOR;
  627. #define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_SHIFT 59
  628. #define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_MASK 0x1
  629. #define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_SHIFT 60
  630. #define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_MASK 0x1
  631. #define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_SHIFT 61
  632. #define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_MASK 0x1
  633. #define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_SHIFT 62
  634. #define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_MASK 0x1
  635. #define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT 63
  636. #define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK 0x1
  637. #define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_SHIFT ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT
  638. #define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_MASK ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK
  639. typedef enum _ERR_TYPES {
  640. ERR_INTERNAL = 1,
  641. ERR_BUS = 16,
  642. ERR_MEM = 4,
  643. ERR_TLB = 5,
  644. ERR_CACHE = 6,
  645. ERR_FUNCTION = 7,
  646. ERR_SELFTEST = 8,
  647. ERR_FLOW = 9,
  648. ERR_MAP = 17,
  649. ERR_IMPROPER = 18,
  650. ERR_UNIMPL = 19,
  651. ERR_LOL = 20,
  652. ERR_RESPONSE = 21,
  653. ERR_PARITY = 22,
  654. ERR_PROTOCOL = 23,
  655. ERR_ERROR = 24,
  656. ERR_TIMEOUT = 25,
  657. ERR_POISONED = 26,
  658. } _ERR_TYPE;
  659. typedef union _ERROR_STATUS {
  660. ULONGLONG Status;
  661. _ANONYMOUS_STRUCT struct {
  662. ULONGLONG Reserved0:8;
  663. ULONGLONG Type:8;
  664. ULONGLONG Address:1;
  665. ULONGLONG Control:1;
  666. ULONGLONG Data:1;
  667. ULONGLONG Responder:1;
  668. ULONGLONG Requestor:1;
  669. ULONGLONG FirstError:1;
  670. ULONGLONG Overflow:1;
  671. ULONGLONG Reserved1:41;
  672. } DUMMYSTRUCTNAME;
  673. } ERROR_STATUS, *PERROR_STATUS;
  674. typedef struct _ERROR_OEM_DATA {
  675. USHORT Length;
  676. } ERROR_OEM_DATA, *PERROR_OEM_DATA;
  677. typedef union _ERROR_BUS_SPECIFIC_DATA {
  678. ULONGLONG BusSpecificData;
  679. _ANONYMOUS_STRUCT struct {
  680. ULONGLONG LockAsserted:1;
  681. ULONGLONG DeferLogged:1;
  682. ULONGLONG IOQEmpty:1;
  683. ULONGLONG DeferredTransaction:1;
  684. ULONGLONG RetriedTransaction:1;
  685. ULONGLONG MemoryClaimedTransaction:1;
  686. ULONGLONG IOClaimedTransaction:1;
  687. ULONGLONG ResponseParitySignal:1;
  688. ULONGLONG DeferSignal:1;
  689. ULONGLONG HitMSignal:1;
  690. ULONGLONG HitSignal:1;
  691. ULONGLONG RequestBusFirstCycle:6;
  692. ULONGLONG RequestBusSecondCycle:6;
  693. ULONGLONG AddressParityBusFirstCycle:2;
  694. ULONGLONG AddressParityBusSecondCycle:2;
  695. ULONGLONG ResponseBus:3;
  696. ULONGLONG RequestParitySignalFirstCycle:1;
  697. ULONGLONG RequestParitySignalSecondCycle:1;
  698. ULONGLONG Reserved:32;
  699. } DUMMYSTRUCTNAME;
  700. } ERROR_BUS_SPECIFIC_DATA, *PERROR_BUS_SPECIFIC_DATA;
  701. #define ERROR_MEMORY_GUID {0xe429faf2, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  702. typedef union _ERROR_MEMORY_VALID {
  703. ULONGLONG Valid;
  704. _ANONYMOUS_STRUCT struct {
  705. ULONGLONG ErrorStatus:1;
  706. ULONGLONG PhysicalAddress:1;
  707. ULONGLONG AddressMask:1;
  708. ULONGLONG Node:1;
  709. ULONGLONG Card:1;
  710. ULONGLONG Module:1;
  711. ULONGLONG Bank:1;
  712. ULONGLONG Device:1;
  713. ULONGLONG Row:1;
  714. ULONGLONG Column:1;
  715. ULONGLONG BitPosition:1;
  716. ULONGLONG RequestorId:1;
  717. ULONGLONG ResponderId:1;
  718. ULONGLONG TargetId:1;
  719. ULONGLONG BusSpecificData:1;
  720. ULONGLONG OemId:1;
  721. ULONGLONG OemData:1;
  722. ULONGLONG Reserved:47;
  723. } DUMMYSTRUCTNAME;
  724. } ERROR_MEMORY_VALID, *PERROR_MEMORY_VALID;
  725. typedef struct _ERROR_MEMORY {
  726. ERROR_SECTION_HEADER Header;
  727. ERROR_MEMORY_VALID Valid;
  728. ERROR_STATUS ErrorStatus;
  729. ULONGLONG PhysicalAddress;
  730. ULONGLONG PhysicalAddressMask;
  731. USHORT Node;
  732. USHORT Card;
  733. USHORT Module;
  734. USHORT Bank;
  735. USHORT Device;
  736. USHORT Row;
  737. USHORT Column;
  738. USHORT BitPosition;
  739. ULONGLONG RequestorId;
  740. ULONGLONG ResponderId;
  741. ULONGLONG TargetId;
  742. ULONGLONG BusSpecificData;
  743. UCHAR OemId[16];
  744. ERROR_OEM_DATA OemData;
  745. } ERROR_MEMORY, *PERROR_MEMORY;
  746. #define ERROR_PCI_BUS_GUID {0xe429faf4, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  747. typedef union _ERROR_PCI_BUS_VALID {
  748. ULONGLONG Valid;
  749. _ANONYMOUS_STRUCT struct {
  750. ULONGLONG ErrorStatus:1;
  751. ULONGLONG ErrorType:1;
  752. ULONGLONG Id:1;
  753. ULONGLONG Address:1;
  754. ULONGLONG Data:1;
  755. ULONGLONG CmdType:1;
  756. ULONGLONG RequestorId:1;
  757. ULONGLONG ResponderId:1;
  758. ULONGLONG TargetId:1;
  759. ULONGLONG OemId:1;
  760. ULONGLONG OemData:1;
  761. ULONGLONG Reserved:53;
  762. } DUMMYSTRUCTNAME;
  763. } ERROR_PCI_BUS_VALID, *PERROR_PCI_BUS_VALID;
  764. typedef struct _ERROR_PCI_BUS_TYPE {
  765. UCHAR Type;
  766. UCHAR Reserved;
  767. } ERROR_PCI_BUS_TYPE, *PERROR_PCI_BUS_TYPE;
  768. #define PciBusUnknownError ((UCHAR)0)
  769. #define PciBusDataParityError ((UCHAR)1)
  770. #define PciBusSystemError ((UCHAR)2)
  771. #define PciBusMasterAbort ((UCHAR)3)
  772. #define PciBusTimeOut ((UCHAR)4)
  773. #define PciMasterDataParityError ((UCHAR)5)
  774. #define PciAddressParityError ((UCHAR)6)
  775. #define PciCommandParityError ((UCHAR)7)
  776. typedef struct _ERROR_PCI_BUS_ID {
  777. UCHAR BusNumber;
  778. UCHAR SegmentNumber;
  779. } ERROR_PCI_BUS_ID, *PERROR_PCI_BUS_ID;
  780. typedef struct _ERROR_PCI_BUS {
  781. ERROR_SECTION_HEADER Header;
  782. ERROR_PCI_BUS_VALID Valid;
  783. ERROR_STATUS ErrorStatus;
  784. ERROR_PCI_BUS_TYPE Type;
  785. ERROR_PCI_BUS_ID Id;
  786. UCHAR Reserved[4];
  787. ULONGLONG Address;
  788. ULONGLONG Data;
  789. ULONGLONG CmdType;
  790. ULONGLONG RequestorId;
  791. ULONGLONG ResponderId;
  792. ULONGLONG TargetId;
  793. UCHAR OemId[16];
  794. ERROR_OEM_DATA OemData;
  795. } ERROR_PCI_BUS, *PERROR_PCI_BUS;
  796. #define ERROR_PCI_COMPONENT_GUID {0xe429faf6, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  797. typedef union _ERROR_PCI_COMPONENT_VALID {
  798. ULONGLONG Valid;
  799. _ANONYMOUS_STRUCT struct {
  800. ULONGLONG ErrorStatus:1;
  801. ULONGLONG Info:1;
  802. ULONGLONG MemoryMappedRegistersPairs:1;
  803. ULONGLONG ProgrammedIORegistersPairs:1;
  804. ULONGLONG RegistersDataPairs:1;
  805. ULONGLONG OemData:1;
  806. ULONGLONG Reserved:58;
  807. } DUMMYSTRUCTNAME;
  808. } ERROR_PCI_COMPONENT_VALID, *PERROR_PCI_COMPONENT_VALID;
  809. typedef struct _ERROR_PCI_COMPONENT_INFO {
  810. USHORT VendorId;
  811. USHORT DeviceId;
  812. UCHAR ClassCodeInterface;
  813. UCHAR ClassCodeSubClass;
  814. UCHAR ClassCodeBaseClass;
  815. UCHAR FunctionNumber;
  816. UCHAR DeviceNumber;
  817. UCHAR BusNumber;
  818. UCHAR SegmentNumber;
  819. UCHAR Reserved0;
  820. ULONG Reserved1;
  821. } ERROR_PCI_COMPONENT_INFO, *PERROR_PCI_COMPONENT_INFO;
  822. typedef struct _ERROR_PCI_COMPONENT {
  823. ERROR_SECTION_HEADER Header;
  824. ERROR_PCI_COMPONENT_VALID Valid;
  825. ERROR_STATUS ErrorStatus;
  826. ERROR_PCI_COMPONENT_INFO Info;
  827. ULONG MemoryMappedRegistersPairs;
  828. ULONG ProgrammedIORegistersPairs;
  829. } ERROR_PCI_COMPONENT, *PERROR_PCI_COMPONENT;
  830. #define ERROR_SYSTEM_EVENT_LOG_GUID {0xe429faf3, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  831. typedef union _ERROR_SYSTEM_EVENT_LOG_VALID {
  832. ULONGLONG Valid;
  833. _ANONYMOUS_STRUCT struct {
  834. ULONGLONG RecordId:1;
  835. ULONGLONG RecordType:1;
  836. ULONGLONG GeneratorId:1;
  837. ULONGLONG EVMRev:1;
  838. ULONGLONG SensorType:1;
  839. ULONGLONG SensorNum:1;
  840. ULONGLONG EventDirType:1;
  841. ULONGLONG EventData1:1;
  842. ULONGLONG EventData2:1;
  843. ULONGLONG EventData3:1;
  844. ULONGLONG Reserved:54;
  845. } DUMMYSTRUCTNAME;
  846. } ERROR_SYSTEM_EVENT_LOG_VALID, *PSYSTEM_EVENT_LOG_VALID;
  847. typedef struct _ERROR_SYSTEM_EVENT_LOG {
  848. ERROR_SECTION_HEADER Header;
  849. ERROR_SYSTEM_EVENT_LOG_VALID Valid;
  850. USHORT RecordId;
  851. UCHAR RecordType;
  852. ULONG TimeStamp;
  853. USHORT GeneratorId;
  854. UCHAR EVMRevision;
  855. UCHAR SensorType;
  856. UCHAR SensorNumber;
  857. UCHAR EventDir;
  858. UCHAR Data1;
  859. UCHAR Data2;
  860. UCHAR Data3;
  861. } ERROR_SYSTEM_EVENT_LOG, *PERROR_SYSTEM_EVENT_LOG;
  862. #define ERROR_SMBIOS_GUID {0xe429faf5, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  863. typedef union _ERROR_SMBIOS_VALID {
  864. ULONGLONG Valid;
  865. _ANONYMOUS_STRUCT struct {
  866. ULONGLONG EventType:1;
  867. ULONGLONG Length:1;
  868. ULONGLONG TimeStamp:1;
  869. ULONGLONG OemData:1;
  870. ULONGLONG Reserved:60;
  871. } DUMMYSTRUCTNAME;
  872. } ERROR_SMBIOS_VALID, *PERROR_SMBIOS_VALID;
  873. typedef UCHAR ERROR_SMBIOS_EVENT_TYPE, *PERROR_SMBIOS_EVENT_TYPE;
  874. typedef struct _ERROR_SMBIOS {
  875. ERROR_SECTION_HEADER Header;
  876. ERROR_SMBIOS_VALID Valid;
  877. ERROR_SMBIOS_EVENT_TYPE EventType;
  878. UCHAR Length;
  879. ERROR_TIMESTAMP TimeStamp;
  880. ERROR_OEM_DATA OemData;
  881. } ERROR_SMBIOS, *PERROR_SMBIOS;
  882. #define ERROR_PLATFORM_SPECIFIC_GUID {0xe429faf7, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  883. typedef union _ERROR_PLATFORM_SPECIFIC_VALID {
  884. ULONGLONG Valid;
  885. _ANONYMOUS_STRUCT struct {
  886. ULONGLONG ErrorStatus:1;
  887. ULONGLONG RequestorId:1;
  888. ULONGLONG ResponderId:1;
  889. ULONGLONG TargetId:1;
  890. ULONGLONG BusSpecificData:1;
  891. ULONGLONG OemId:1;
  892. ULONGLONG OemData:1;
  893. ULONGLONG OemDevicePath:1;
  894. ULONGLONG Reserved:56;
  895. } DUMMYSTRUCTNAME;
  896. } ERROR_PLATFORM_SPECIFIC_VALID, *PERROR_PLATFORM_SPECIFIC_VALID;
  897. typedef struct _ERROR_PLATFORM_SPECIFIC {
  898. ERROR_SECTION_HEADER Header;
  899. ERROR_PLATFORM_SPECIFIC_VALID Valid;
  900. ERROR_STATUS ErrorStatus;
  901. ULONGLONG RequestorId;
  902. ULONGLONG ResponderId;
  903. ULONGLONG TargetId;
  904. ERROR_BUS_SPECIFIC_DATA BusSpecificData;
  905. UCHAR OemId[16];
  906. ERROR_OEM_DATA OemData;
  907. } ERROR_PLATFORM_SPECIFIC, *PERROR_PLATFORM_SPECIFIC;
  908. #define ERROR_PLATFORM_BUS_GUID {0xe429faf9, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  909. typedef union _ERROR_PLATFORM_BUS_VALID {
  910. ULONGLONG Valid;
  911. _ANONYMOUS_STRUCT struct {
  912. ULONGLONG ErrorStatus:1;
  913. ULONGLONG RequestorId:1;
  914. ULONGLONG ResponderId:1;
  915. ULONGLONG TargetId:1;
  916. ULONGLONG BusSpecificData:1;
  917. ULONGLONG OemId:1;
  918. ULONGLONG OemData:1;
  919. ULONGLONG OemDevicePath:1;
  920. ULONGLONG Reserved:56;
  921. } DUMMYSTRUCTNAME;
  922. } ERROR_PLATFORM_BUS_VALID, *PERROR_PLATFORM_BUS_VALID;
  923. typedef struct _ERROR_PLATFORM_BUS {
  924. ERROR_SECTION_HEADER Header;
  925. ERROR_PLATFORM_BUS_VALID Valid;
  926. ERROR_STATUS ErrorStatus;
  927. ULONGLONG RequestorId;
  928. ULONGLONG ResponderId;
  929. ULONGLONG TargetId;
  930. ERROR_BUS_SPECIFIC_DATA BusSpecificData;
  931. UCHAR OemId[16];
  932. ERROR_OEM_DATA OemData;
  933. } ERROR_PLATFORM_BUS, *PERROR_PLATFORM_BUS;
  934. #define ERROR_PLATFORM_HOST_CONTROLLER_GUID {0xe429faf8, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
  935. typedef union _ERROR_PLATFORM_HOST_CONTROLLER_VALID {
  936. ULONGLONG Valid;
  937. _ANONYMOUS_STRUCT struct {
  938. ULONGLONG ErrorStatus:1;
  939. ULONGLONG RequestorId:1;
  940. ULONGLONG ResponderId:1;
  941. ULONGLONG TargetId:1;
  942. ULONGLONG BusSpecificData:1;
  943. ULONGLONG OemId:1;
  944. ULONGLONG OemData:1;
  945. ULONGLONG OemDevicePath:1;
  946. ULONGLONG Reserved:56;
  947. } DUMMYSTRUCTNAME;
  948. } ERROR_PLATFORM_HOST_CONTROLLER_VALID, *PERROR_PLATFORM_HOST_CONTROLLER_VALID;
  949. typedef struct _ERROR_PLATFORM_HOST_CONTROLLER {
  950. ERROR_SECTION_HEADER Header;
  951. ERROR_PCI_COMPONENT_VALID Valid;
  952. ERROR_STATUS ErrorStatus;
  953. ULONGLONG RequestorId;
  954. ULONGLONG ResponderId;
  955. ULONGLONG TargetId;
  956. ERROR_BUS_SPECIFIC_DATA BusSpecificData;
  957. UCHAR OemId[16];
  958. ERROR_OEM_DATA OemData;
  959. } ERROR_PLATFORM_HOST_CONTROLLER, *PERROR_PLATFORM_HOST_CONTROLLER;
  960. typedef ERROR_RECORD_HEADER ERROR_LOGRECORD, *PERROR_LOGRECORD;
  961. typedef ERROR_RECORD_HEADER MCA_EXCEPTION, *PMCA_EXCEPTION;
  962. typedef ERROR_RECORD_HEADER CMC_EXCEPTION, *PCMC_EXCEPTION;
  963. typedef ERROR_RECORD_HEADER CPE_EXCEPTION, *PCPE_EXCEPTION;
  964. #if (NTDDI_VERSION > NTDDI_WINXP)
  965. typedef ERROR_RECORD_HEADER INIT_EXCEPTION, *PINIT_EXCEPTION;
  966. #endif
  967. #endif /* defined(_IA64_) */
  968. #endif /* defined(_X86_) || defined(_IA64_) || defined(_AMD64_) */