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