| #pragma once |
| |
| #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_) |
| |
| typedef union _MCI_ADDR { |
| _ANONYMOUS_STRUCT struct { |
| ULONG Address; |
| ULONG Reserved; |
| } DUMMYSTRUCTNAME; |
| ULONGLONG QuadPart; |
| } MCI_ADDR, *PMCI_ADDR; |
| |
| typedef enum { |
| HAL_MCE_RECORD, |
| HAL_MCA_RECORD |
| } MCA_EXCEPTION_TYPE; |
| |
| #if defined(_AMD64_) |
| |
| #if (NTDDI_VERSION <= NTDDI_WINXP) |
| |
| typedef union _MCI_STATS { |
| struct { |
| USHORT McaCod; |
| USHORT ModelErrorCode; |
| ULONG OtherInfo:25; |
| ULONG Damage:1; |
| ULONG AddressValid:1; |
| ULONG MiscValid:1; |
| ULONG Enabled:1; |
| ULONG Uncorrected:1; |
| ULONG OverFlow:1; |
| ULONG Valid:1; |
| } MciStatus; |
| ULONG64 QuadPart; |
| } MCI_STATS, *PMCI_STATS; |
| |
| #else |
| |
| typedef union _MCI_STATS { |
| struct { |
| USHORT McaErrorCode; |
| USHORT ModelErrorCode; |
| ULONG OtherInformation:25; |
| ULONG ContextCorrupt:1; |
| ULONG AddressValid:1; |
| ULONG MiscValid:1; |
| ULONG ErrorEnabled:1; |
| ULONG UncorrectedError:1; |
| ULONG StatusOverFlow:1; |
| ULONG Valid:1; |
| } MciStatus; |
| ULONG64 QuadPart; |
| } MCI_STATS, *PMCI_STATS; |
| |
| #endif /* (NTDDI_VERSION <= NTDDI_WINXP) */ |
| |
| #endif /* defined(_AMD64_) */ |
| |
| #if defined(_X86_) |
| typedef union _MCI_STATS { |
| struct { |
| USHORT McaCod; |
| USHORT MsCod; |
| ULONG OtherInfo:25; |
| ULONG Damage:1; |
| ULONG AddressValid:1; |
| ULONG MiscValid:1; |
| ULONG Enabled:1; |
| ULONG UnCorrected:1; |
| ULONG OverFlow:1; |
| ULONG Valid:1; |
| } MciStats; |
| ULONGLONG QuadPart; |
| } MCI_STATS, *PMCI_STATS; |
| #endif |
| |
| #define MCA_EXTREG_V2MAX 24 |
| |
| #if defined(_X86_) || defined(_AMD64_) |
| |
| #if (NTDDI_VERSION >= NTDDI_WINXP) |
| |
| typedef struct _MCA_EXCEPTION { |
| ULONG VersionNumber; |
| MCA_EXCEPTION_TYPE ExceptionType; |
| LARGE_INTEGER TimeStamp; |
| ULONG ProcessorNumber; |
| ULONG Reserved1; |
| union { |
| struct { |
| UCHAR BankNumber; |
| UCHAR Reserved2[7]; |
| MCI_STATS Status; |
| MCI_ADDR Address; |
| ULONGLONG Misc; |
| } Mca; |
| struct { |
| ULONGLONG Address; |
| ULONGLONG Type; |
| } Mce; |
| } u; |
| ULONG ExtCnt; |
| ULONG Reserved3; |
| ULONGLONG ExtReg[MCA_EXTREG_V2MAX]; |
| } MCA_EXCEPTION, *PMCA_EXCEPTION; |
| |
| #else |
| |
| typedef struct _MCA_EXCEPTION { |
| ULONG VersionNumber; |
| MCA_EXCEPTION_TYPE ExceptionType; |
| LARGE_INTEGER TimeStamp; |
| ULONG ProcessorNumber; |
| ULONG Reserved1; |
| union { |
| struct { |
| UCHAR BankNumber; |
| UCHAR Reserved2[7]; |
| MCI_STATS Status; |
| MCI_ADDR Address; |
| ULONGLONG Misc; |
| } Mca; |
| struct { |
| ULONGLONG Address; |
| ULONGLONG Type; |
| } Mce; |
| } u; |
| } MCA_EXCEPTION, *PMCA_EXCEPTION; |
| |
| #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */ |
| |
| typedef MCA_EXCEPTION CMC_EXCEPTION, *PCMC_EXCEPTION; |
| typedef MCA_EXCEPTION CPE_EXCEPTION, *PCPE_EXCEPTION; |
| |
| #if (NTDDI_VERSION >= NTDDI_WINXP) |
| #define MCA_EXCEPTION_V1_SIZE FIELD_OFFSET(MCA_EXCEPTION, ExtCnt) |
| #define MCA_EXCEPTION_V2_SIZE sizeof(struct _MCA_EXCEPTION) |
| #endif |
| |
| #endif /* defined(_X86_) || defined(_AMD64_) */ |
| |
| #if defined(_AMD64_) || defined(_IA64_) |
| |
| typedef UCHAR ERROR_SEVERITY, *PERROR_SEVERITY; |
| |
| typedef enum _ERROR_SEVERITY_VALUE { |
| ErrorRecoverable = 0, |
| ErrorFatal = 1, |
| ErrorCorrected = 2, |
| ErrorOthers = 3, |
| } ERROR_SEVERITY_VALUE; |
| |
| #endif |
| |
| #if defined(_IA64_) |
| |
| typedef union _ERROR_REVISION { |
| USHORT Revision; |
| _ANONYMOUS_STRUCT struct { |
| UCHAR Minor; |
| UCHAR Major; |
| } DUMMYSTRUCTNAME; |
| } ERROR_REVISION, *PERROR_REVISION; |
| |
| #if (NTDDI_VERSION > NTDDI_WINXP) |
| #define ERROR_MAJOR_REVISION_SAL_03_00 0 |
| #define ERROR_MINOR_REVISION_SAL_03_00 2 |
| #define ERROR_REVISION_SAL_03_00 {ERROR_MINOR_REVISION_SAL_03_00,ERROR_MAJOR_REVISION_SAL_03_00} |
| #define ERROR_FIXED_SECTION_REVISION {2,0} |
| #else |
| #define ERROR_REVISION_SAL_03_00 {2,0} |
| #endif /* (NTDDI_VERSION > NTDDI_WINXP) */ |
| |
| typedef union _ERROR_TIMESTAMP { |
| ULONGLONG TimeStamp; |
| _ANONYMOUS_STRUCT struct { |
| UCHAR Seconds; |
| UCHAR Minutes; |
| UCHAR Hours; |
| UCHAR Reserved; |
| UCHAR Day; |
| UCHAR Month; |
| UCHAR Year; |
| UCHAR Century; |
| } DUMMYSTRUCTNAME; |
| } ERROR_TIMESTAMP, *PERROR_TIMESTAMP; |
| |
| typedef struct _ERROR_GUID { |
| ULONG Data1; |
| USHORT Data2; |
| USHORT Data3; |
| UCHAR Data4[8]; |
| } ERROR_GUID, *PERROR_GUID; |
| |
| typedef ERROR_GUID _ERROR_DEVICE_GUID; |
| typedef _ERROR_DEVICE_GUID ERROR_DEVICE_GUID, *PERROR_DEVICE_GUID; |
| |
| typedef ERROR_GUID _ERROR_PLATFORM_GUID; |
| typedef _ERROR_PLATFORM_GUID ERROR_PLATFORM_GUID, *PERROR_PLATFORM_GUID; |
| |
| typedef union _ERROR_RECORD_VALID { |
| UCHAR Valid; |
| _ANONYMOUS_STRUCT struct { |
| UCHAR OemPlatformID:1; |
| UCHAR Reserved:7; |
| } DUMMYSTRUCTNAME; |
| } ERROR_RECORD_VALID, *PERROR_RECORD_VALID; |
| |
| typedef struct _ERROR_RECORD_HEADER { |
| ULONGLONG Id; |
| ERROR_REVISION Revision; |
| ERROR_SEVERITY ErrorSeverity; |
| ERROR_RECORD_VALID Valid; |
| ULONG Length; |
| ERROR_TIMESTAMP TimeStamp; |
| UCHAR OemPlatformId[16]; |
| } ERROR_RECORD_HEADER, *PERROR_RECORD_HEADER; |
| |
| typedef union _ERROR_RECOVERY_INFO { |
| UCHAR RecoveryInfo; |
| _ANONYMOUS_STRUCT struct { |
| UCHAR Corrected:1; |
| UCHAR NotContained:1; |
| UCHAR Reset:1; |
| UCHAR Reserved:4; |
| UCHAR Valid:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_RECOVERY_INFO, *PERROR_RECOVERY_INFO; |
| |
| typedef struct _ERROR_SECTION_HEADER { |
| ERROR_DEVICE_GUID Guid; |
| ERROR_REVISION Revision; |
| ERROR_RECOVERY_INFO RecoveryInfo; |
| UCHAR Reserved; |
| ULONG Length; |
| } ERROR_SECTION_HEADER, *PERROR_SECTION_HEADER; |
| |
| #if !defined(__midl) |
| __inline |
| USHORT |
| NTAPI |
| GetFwMceLogProcessorNumber( |
| PERROR_RECORD_HEADER Log) |
| { |
| PERROR_SECTION_HEADER section = (PERROR_SECTION_HEADER)((ULONG64)Log + sizeof(*Log)); |
| USHORT lid = (USHORT)((UCHAR)(section->Reserved)); |
| #ifdef NONAMELESSUNION |
| lid |= (USHORT)((UCHAR)(Log->TimeStamp.s.Reserved) << 8); |
| #else |
| lid |= (USHORT)((UCHAR)(Log->TimeStamp.Reserved) << 8); |
| #endif |
| return( lid ); |
| } |
| #endif /* !__midl */ |
| |
| #define ERROR_PROCESSOR_GUID {0xe429faf1, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_MODINFO_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG CheckInfo:1; |
| ULONGLONG RequestorIdentifier:1; |
| ULONGLONG ResponderIdentifier:1; |
| ULONGLONG TargetIdentifier:1; |
| ULONGLONG PreciseIP:1; |
| ULONGLONG Reserved:59; |
| } DUMMYSTRUCTNAME; |
| } ERROR_MODINFO_VALID, *PERROR_MODINFO_VALID; |
| |
| typedef enum _ERROR_CHECK_IS { |
| isIA64 = 0, |
| isIA32 = 1, |
| } ERROR_CHECK_IS; |
| |
| typedef enum _ERROR_CACHE_CHECK_OPERATION { |
| CacheUnknownOp = 0, |
| CacheLoad = 1, |
| CacheStore = 2, |
| CacheInstructionFetch = 3, |
| CacheDataPrefetch = 4, |
| CacheSnoop = 5, |
| CacheCastOut = 6, |
| CacheMoveIn = 7, |
| } ERROR_CACHE_CHECK_OPERATION; |
| |
| typedef enum _ERROR_CACHE_CHECK_MESI { |
| CacheInvalid = 0, |
| CacheHeldShared = 1, |
| CacheHeldExclusive = 2, |
| CacheModified = 3, |
| } ERROR_CACHE_CHECK_MESI; |
| |
| #if (NTDDI_VERSION >= NTDDI_VISTA) |
| |
| typedef union _ERROR_CACHE_CHECK { |
| ULONGLONG CacheCheck; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG Operation:4; |
| ULONGLONG Level:2; |
| ULONGLONG Reserved1:2; |
| ULONGLONG DataLine:1; |
| ULONGLONG TagLine:1; |
| ULONGLONG DataCache:1; |
| ULONGLONG InstructionCache:1; |
| ULONGLONG MESI:3; |
| ULONGLONG MESIValid:1; |
| ULONGLONG Way:5; |
| ULONGLONG WayIndexValid:1; |
| ULONGLONG Reserved2:1; |
| ULONGLONG DP:1; |
| ULONGLONG Reserved3:8; |
| ULONGLONG Index:20; |
| ULONGLONG Reserved4:2; |
| ULONGLONG InstructionSet:1; |
| ULONGLONG InstructionSetValid:1; |
| ULONGLONG PrivilegeLevel:2; |
| ULONGLONG PrivilegeLevelValid:1; |
| ULONGLONG MachineCheckCorrected:1; |
| ULONGLONG TargetAddressValid:1; |
| ULONGLONG RequestIdValid:1; |
| ULONGLONG ResponderIdValid:1; |
| ULONGLONG PreciseIPValid:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK; |
| |
| # else |
| |
| typedef union _ERROR_CACHE_CHECK { |
| ULONGLONG CacheCheck; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG Operation:4; |
| ULONGLONG Level:2; |
| ULONGLONG Reserved1:2; |
| ULONGLONG DataLine:1; |
| ULONGLONG TagLine:1; |
| ULONGLONG DataCache:1; |
| ULONGLONG InstructionCache:1; |
| ULONGLONG MESI:3; |
| ULONGLONG MESIValid:1; |
| ULONGLONG Way:5; |
| ULONGLONG WayIndexValid:1; |
| ULONGLONG Reserved2:10; |
| ULONGLONG Index:20; |
| ULONGLONG Reserved3:2; |
| ULONGLONG InstructionSet:1; |
| ULONGLONG InstructionSetValid:1; |
| ULONGLONG PrivilegeLevel:2; |
| ULONGLONG PrivilegeLevelValid:1; |
| ULONGLONG MachineCheckCorrected:1; |
| ULONGLONG TargetAddressValid:1; |
| ULONGLONG RequestIdValid:1; |
| ULONGLONG ResponderIdValid:1; |
| ULONGLONG PreciseIPValid:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_CACHE_CHECK, *PERROR_CACHE_CHECK; |
| |
| #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ |
| |
| typedef enum _ERROR_TLB_CHECK_OPERATION { |
| TlbUnknownOp = 0, |
| TlbAccessWithLoad = 1, |
| TlbAccessWithStore = 2, |
| TlbAccessWithInstructionFetch = 3, |
| TlbAccessWithDataPrefetch = 4, |
| TlbShootDown = 5, |
| TlbProbe = 6, |
| TlbVhptFill = 7, |
| TlbPurge = 8, |
| } ERROR_TLB_CHECK_OPERATION; |
| |
| typedef union _ERROR_TLB_CHECK { |
| ULONGLONG TlbCheck; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG TRSlot:8; |
| ULONGLONG TRSlotValid:1; |
| ULONGLONG Reserved1:1; |
| ULONGLONG Level:2; |
| ULONGLONG Reserved2:4; |
| ULONGLONG DataTransReg:1; |
| ULONGLONG InstructionTransReg:1; |
| ULONGLONG DataTransCache:1; |
| ULONGLONG InstructionTransCache:1; |
| ULONGLONG Operation:4; |
| ULONGLONG Reserved3:30; |
| ULONGLONG InstructionSet:1; |
| ULONGLONG InstructionSetValid:1; |
| ULONGLONG PrivilegeLevel:2; |
| ULONGLONG PrivilegeLevelValid:1; |
| ULONGLONG MachineCheckCorrected:1; |
| ULONGLONG TargetAddressValid:1; |
| ULONGLONG RequestIdValid:1; |
| ULONGLONG ResponderIdValid:1; |
| ULONGLONG PreciseIPValid:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_TLB_CHECK, *PERROR_TLB_CHECK; |
| |
| typedef enum _ERROR_BUS_CHECK_OPERATION { |
| BusUnknownOp = 0, |
| BusPartialRead = 1, |
| BusPartialWrite = 2, |
| BusFullLineRead = 3, |
| BusFullLineWrite = 4, |
| BusWriteBack = 5, |
| BusSnoopProbe = 6, |
| BusIncomingPtcG = 7, |
| BusWriteCoalescing = 8, |
| } ERROR_BUS_CHECK_OPERATION; |
| |
| #if (NTDDI_VERSION >= NTDDI_VISTA) |
| |
| typedef union _ERROR_BUS_CHECK { |
| ULONGLONG BusCheck; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG Size:5; |
| ULONGLONG Internal:1; |
| ULONGLONG External:1; |
| ULONGLONG CacheTransfer:1; |
| ULONGLONG Type:8; |
| ULONGLONG Severity:5; |
| ULONGLONG Hierarchy:2; |
| ULONGLONG DP:1; |
| ULONGLONG Status:8; |
| ULONGLONG Reserved1:22; |
| ULONGLONG InstructionSet:1; |
| ULONGLONG InstructionSetValid:1; |
| ULONGLONG PrivilegeLevel:2; |
| ULONGLONG PrivilegeLevelValid:1; |
| ULONGLONG MachineCheckCorrected:1; |
| ULONGLONG TargetAddressValid:1; |
| ULONGLONG RequestIdValid:1; |
| ULONGLONG ResponderIdValid:1; |
| ULONGLONG PreciseIPValid:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_BUS_CHECK, *PERROR_BUS_CHECK; |
| |
| #else |
| |
| typedef union _ERROR_BUS_CHECK { |
| ULONGLONG BusCheck; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG Size:5; |
| ULONGLONG Internal:1; |
| ULONGLONG External:1; |
| ULONGLONG CacheTransfer:1; |
| ULONGLONG Type:8; |
| ULONGLONG Severity:5; |
| ULONGLONG Hierarchy:2; |
| ULONGLONG Reserved1:1; |
| ULONGLONG Status:8; |
| ULONGLONG Reserved2:22; |
| ULONGLONG InstructionSet:1; |
| ULONGLONG InstructionSetValid:1; |
| ULONGLONG PrivilegeLevel:2; |
| ULONGLONG PrivilegeLevelValid:1; |
| ULONGLONG MachineCheckCorrected:1; |
| ULONGLONG TargetAddressValid:1; |
| ULONGLONG RequestIdValid:1; |
| ULONGLONG ResponderIdValid:1; |
| ULONGLONG PreciseIPValid:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_BUS_CHECK, *PERROR_BUS_CHECK; |
| |
| #endif |
| |
| typedef enum _ERROR_REGFILE_CHECK_IDENTIFIER { |
| RegFileUnknownId = 0, |
| GeneralRegisterBank1 = 1, |
| GeneralRegisterBank0 = 2, |
| FloatingPointRegister = 3, |
| BranchRegister = 4, |
| PredicateRegister = 5, |
| ApplicationRegister = 6, |
| ControlRegister = 7, |
| RegionRegister = 8, |
| ProtectionKeyRegister = 9, |
| DataBreakPointRegister = 10, |
| InstructionBreakPointRegister = 11, |
| PerformanceMonitorControlRegister = 12, |
| PerformanceMonitorDataRegister = 13, |
| } ERROR_REGFILE_CHECK_IDENTIFIER; |
| |
| typedef enum _ERROR_REGFILE_CHECK_OPERATION { |
| RegFileUnknownOp = 0, |
| RegFileRead = 1, |
| RegFileWrite = 2, |
| } ERROR_REGFILE_CHECK_OPERATION; |
| |
| typedef union _ERROR_REGFILE_CHECK { |
| ULONGLONG RegFileCheck; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG Identifier:4; |
| ULONGLONG Operation:4; |
| ULONGLONG RegisterNumber:7; |
| ULONGLONG RegisterNumberValid:1; |
| ULONGLONG Reserved1:38; |
| ULONGLONG InstructionSet:1; |
| ULONGLONG InstructionSetValid:1; |
| ULONGLONG PrivilegeLevel:2; |
| ULONGLONG PrivilegeLevelValid:1; |
| ULONGLONG MachineCheckCorrected:1; |
| ULONGLONG Reserved2:3; |
| ULONGLONG PreciseIPValid:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_REGFILE_CHECK, *PERROR_REGFILE_CHECK; |
| |
| #if (NTDDK_VERSION <= WINXP) |
| typedef enum _ERROR_MS_CHECK_OPERATION { |
| MsUnknownOp = 0, |
| MsReadOrLoad = 1, |
| MsWriteOrStore = 2 |
| } ERROR_MS_CHECK_OPERATION; |
| #else |
| typedef enum _ERROR_MS_CHECK_OPERATION { |
| MsUnknownOp = 0, |
| MsReadOrLoad = 1, |
| MsWriteOrStore = 2, |
| MsOverTemperature = 3, |
| MsNormalTemperature = 4 |
| } ERROR_MS_CHECK_OPERATION; |
| #endif |
| |
| typedef union _ERROR_MS_CHECK { |
| ULONGLONG MsCheck; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG StructureIdentifier:5; |
| ULONGLONG Level:3; |
| ULONGLONG ArrayId:4; |
| ULONGLONG Operation:4; |
| ULONGLONG Way:6; |
| ULONGLONG WayValid:1; |
| ULONGLONG IndexValid:1; |
| ULONGLONG Reserved1:8; |
| ULONGLONG Index:8; |
| ULONGLONG Reserved2:14; |
| ULONGLONG InstructionSet:1; |
| ULONGLONG InstructionSetValid:1; |
| ULONGLONG PrivilegeLevel:2; |
| ULONGLONG PrivilegeLevelValid:1; |
| ULONGLONG MachineCheckCorrected:1; |
| ULONGLONG TargetAddressValid:1; |
| ULONGLONG RequestIdValid:1; |
| ULONGLONG ResponderIdValid:1; |
| ULONGLONG PreciseIPValid:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_MS_CHECK, *PERROR_MS_CHECK; |
| |
| typedef union _ERROR_CHECK_INFO { |
| ULONGLONG CheckInfo; |
| ERROR_CACHE_CHECK CacheCheck; |
| ERROR_TLB_CHECK TlbCheck; |
| ERROR_BUS_CHECK BusCheck; |
| ERROR_REGFILE_CHECK RegFileCheck; |
| ERROR_MS_CHECK MsCheck; |
| } ERROR_CHECK_INFO, *PERROR_CHECK_INFO; |
| |
| typedef struct _ERROR_MODINFO { |
| ERROR_MODINFO_VALID Valid; |
| ERROR_CHECK_INFO CheckInfo; |
| ULONGLONG RequestorId; |
| ULONGLONG ResponderId; |
| ULONGLONG TargetId; |
| ULONGLONG PreciseIP; |
| } ERROR_MODINFO, *PERROR_MODINFO; |
| |
| typedef union _ERROR_PROCESSOR_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG ErrorMap:1; |
| ULONGLONG StateParameter:1; |
| ULONGLONG CRLid:1; |
| ULONGLONG StaticStruct:1; |
| ULONGLONG CacheCheckNum:4; |
| ULONGLONG TlbCheckNum:4; |
| ULONGLONG BusCheckNum:4; |
| ULONGLONG RegFileCheckNum:4; |
| ULONGLONG MsCheckNum:4; |
| ULONGLONG CpuIdInfo:1; |
| ULONGLONG Reserved:39; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PROCESSOR_VALID, *PERROR_PROCESSOR_VALID; |
| |
| typedef union _ERROR_PROCESSOR_ERROR_MAP { |
| ULONGLONG ErrorMap; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG Cid:4; |
| ULONGLONG Tid:4; |
| ULONGLONG Eic:4; |
| ULONGLONG Edc:4; |
| ULONGLONG Eit:4; |
| ULONGLONG Edt:4; |
| ULONGLONG Ebh:4; |
| ULONGLONG Erf:4; |
| ULONGLONG Ems:16; |
| ULONGLONG Reserved:16; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PROCESSOR_ERROR_MAP, *PERROR_PROCESSOR_ERROR_MAP; |
| |
| typedef ERROR_PROCESSOR_ERROR_MAP _ERROR_PROCESSOR_LEVEL_INDEX; |
| typedef _ERROR_PROCESSOR_LEVEL_INDEX ERROR_PROCESSOR_LEVEL_INDEX, *PERROR_PROCESSOR_LEVEL_INDEX; |
| |
| typedef union _ERROR_PROCESSOR_STATE_PARAMETER { |
| ULONGLONG StateParameter; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG reserved0:2; |
| ULONGLONG rz:1; |
| ULONGLONG ra:1; |
| ULONGLONG me:1; |
| ULONGLONG mn:1; |
| ULONGLONG sy:1; |
| ULONGLONG co:1; |
| ULONGLONG ci:1; |
| ULONGLONG us:1; |
| ULONGLONG hd:1; |
| ULONGLONG tl:1; |
| ULONGLONG mi:1; |
| ULONGLONG pi:1; |
| ULONGLONG pm:1; |
| ULONGLONG dy:1; |
| ULONGLONG in:1; |
| ULONGLONG rs:1; |
| ULONGLONG cm:1; |
| ULONGLONG ex:1; |
| ULONGLONG cr:1; |
| ULONGLONG pc:1; |
| ULONGLONG dr:1; |
| ULONGLONG tr:1; |
| ULONGLONG rr:1; |
| ULONGLONG ar:1; |
| ULONGLONG br:1; |
| ULONGLONG pr:1; |
| ULONGLONG fp:1; |
| ULONGLONG b1:1; |
| ULONGLONG b0:1; |
| ULONGLONG gr:1; |
| ULONGLONG dsize:16; |
| ULONGLONG reserved1:11; |
| ULONGLONG cc:1; |
| ULONGLONG tc:1; |
| ULONGLONG bc:1; |
| ULONGLONG rc:1; |
| ULONGLONG uc:1; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PROCESSOR_STATE_PARAMETER, *PERROR_PROCESSOR_STATE_PARAMETER; |
| |
| typedef union _PROCESSOR_LOCAL_ID { |
| ULONGLONG LocalId; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG reserved:16; |
| ULONGLONG eid:8; |
| ULONGLONG id:8; |
| ULONGLONG ignored:32; |
| } DUMMYSTRUCTNAME; |
| } PROCESSOR_LOCAL_ID, *PPROCESSOR_LOCAL_ID; |
| |
| typedef struct _ERROR_PROCESSOR_MS { |
| ULONGLONG MsError[1]; |
| } ERROR_PROCESSOR_MS, *PERROR_PROCESSOR_MS; |
| |
| typedef struct _ERROR_PROCESSOR_CPUID_INFO { |
| ULONGLONG CpuId0; |
| ULONGLONG CpuId1; |
| ULONGLONG CpuId2; |
| ULONGLONG CpuId3; |
| ULONGLONG CpuId4; |
| ULONGLONG Reserved; |
| } ERROR_PROCESSOR_CPUID_INFO, *PERROR_PROCESSOR_CPUID_INFO; |
| |
| typedef union _ERROR_PROCESSOR_STATIC_INFO_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG MinState:1; |
| ULONGLONG BR:1; |
| ULONGLONG CR:1; |
| ULONGLONG AR:1; |
| ULONGLONG RR:1; |
| ULONGLONG FR:1; |
| ULONGLONG Reserved:58; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PROCESSOR_STATIC_INFO_VALID, *PERROR_PROCESSOR_STATIC_INFO_VALID; |
| |
| typedef struct _ERROR_PROCESSOR_STATIC_INFO { |
| ERROR_PROCESSOR_STATIC_INFO_VALID Valid; |
| UCHAR MinState[1024]; |
| ULONGLONG BR[8]; |
| ULONGLONG CR[128]; |
| ULONGLONG AR[128]; |
| ULONGLONG RR[8]; |
| ULONGLONG FR[2 * 128]; |
| } ERROR_PROCESSOR_STATIC_INFO, *PERROR_PROCESSOR_STATIC_INFO; |
| |
| typedef struct _ERROR_PROCESSOR { |
| ERROR_SECTION_HEADER Header; |
| ERROR_PROCESSOR_VALID Valid; |
| ERROR_PROCESSOR_ERROR_MAP ErrorMap; |
| ERROR_PROCESSOR_STATE_PARAMETER StateParameter; |
| PROCESSOR_LOCAL_ID CRLid; |
| } ERROR_PROCESSOR, *PERROR_PROCESSOR; |
| |
| #define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_SHIFT 59 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_CACHE_CHECK_MASK 0x1 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_SHIFT 60 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_TLB_CHECK_MASK 0x1 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_SHIFT 61 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_BUS_CHECK_MASK 0x1 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_SHIFT 62 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_REG_CHECK_MASK 0x1 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT 63 |
| #define ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK 0x1 |
| |
| #define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_SHIFT ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_SHIFT |
| #define ERROR_PROCESSOR_STATE_PARAMETER_UNKNOWN_CHECK_MASK ERROR_PROCESSOR_STATE_PARAMETER_MICROARCH_CHECK_MASK |
| |
| typedef enum _ERR_TYPES { |
| ERR_INTERNAL = 1, |
| ERR_BUS = 16, |
| ERR_MEM = 4, |
| ERR_TLB = 5, |
| ERR_CACHE = 6, |
| ERR_FUNCTION = 7, |
| ERR_SELFTEST = 8, |
| ERR_FLOW = 9, |
| ERR_MAP = 17, |
| ERR_IMPROPER = 18, |
| ERR_UNIMPL = 19, |
| ERR_LOL = 20, |
| ERR_RESPONSE = 21, |
| ERR_PARITY = 22, |
| ERR_PROTOCOL = 23, |
| ERR_ERROR = 24, |
| ERR_TIMEOUT = 25, |
| ERR_POISONED = 26, |
| } _ERR_TYPE; |
| |
| typedef union _ERROR_STATUS { |
| ULONGLONG Status; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG Reserved0:8; |
| ULONGLONG Type:8; |
| ULONGLONG Address:1; |
| ULONGLONG Control:1; |
| ULONGLONG Data:1; |
| ULONGLONG Responder:1; |
| ULONGLONG Requestor:1; |
| ULONGLONG FirstError:1; |
| ULONGLONG Overflow:1; |
| ULONGLONG Reserved1:41; |
| } DUMMYSTRUCTNAME; |
| } ERROR_STATUS, *PERROR_STATUS; |
| |
| typedef struct _ERROR_OEM_DATA { |
| USHORT Length; |
| } ERROR_OEM_DATA, *PERROR_OEM_DATA; |
| |
| typedef union _ERROR_BUS_SPECIFIC_DATA { |
| ULONGLONG BusSpecificData; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG LockAsserted:1; |
| ULONGLONG DeferLogged:1; |
| ULONGLONG IOQEmpty:1; |
| ULONGLONG DeferredTransaction:1; |
| ULONGLONG RetriedTransaction:1; |
| ULONGLONG MemoryClaimedTransaction:1; |
| ULONGLONG IOClaimedTransaction:1; |
| ULONGLONG ResponseParitySignal:1; |
| ULONGLONG DeferSignal:1; |
| ULONGLONG HitMSignal:1; |
| ULONGLONG HitSignal:1; |
| ULONGLONG RequestBusFirstCycle:6; |
| ULONGLONG RequestBusSecondCycle:6; |
| ULONGLONG AddressParityBusFirstCycle:2; |
| ULONGLONG AddressParityBusSecondCycle:2; |
| ULONGLONG ResponseBus:3; |
| ULONGLONG RequestParitySignalFirstCycle:1; |
| ULONGLONG RequestParitySignalSecondCycle:1; |
| ULONGLONG Reserved:32; |
| } DUMMYSTRUCTNAME; |
| } ERROR_BUS_SPECIFIC_DATA, *PERROR_BUS_SPECIFIC_DATA; |
| |
| #define ERROR_MEMORY_GUID {0xe429faf2, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_MEMORY_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG ErrorStatus:1; |
| ULONGLONG PhysicalAddress:1; |
| ULONGLONG AddressMask:1; |
| ULONGLONG Node:1; |
| ULONGLONG Card:1; |
| ULONGLONG Module:1; |
| ULONGLONG Bank:1; |
| ULONGLONG Device:1; |
| ULONGLONG Row:1; |
| ULONGLONG Column:1; |
| ULONGLONG BitPosition:1; |
| ULONGLONG RequestorId:1; |
| ULONGLONG ResponderId:1; |
| ULONGLONG TargetId:1; |
| ULONGLONG BusSpecificData:1; |
| ULONGLONG OemId:1; |
| ULONGLONG OemData:1; |
| ULONGLONG Reserved:47; |
| } DUMMYSTRUCTNAME; |
| } ERROR_MEMORY_VALID, *PERROR_MEMORY_VALID; |
| |
| typedef struct _ERROR_MEMORY { |
| ERROR_SECTION_HEADER Header; |
| ERROR_MEMORY_VALID Valid; |
| ERROR_STATUS ErrorStatus; |
| ULONGLONG PhysicalAddress; |
| ULONGLONG PhysicalAddressMask; |
| USHORT Node; |
| USHORT Card; |
| USHORT Module; |
| USHORT Bank; |
| USHORT Device; |
| USHORT Row; |
| USHORT Column; |
| USHORT BitPosition; |
| ULONGLONG RequestorId; |
| ULONGLONG ResponderId; |
| ULONGLONG TargetId; |
| ULONGLONG BusSpecificData; |
| UCHAR OemId[16]; |
| ERROR_OEM_DATA OemData; |
| } ERROR_MEMORY, *PERROR_MEMORY; |
| |
| #define ERROR_PCI_BUS_GUID {0xe429faf4, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_PCI_BUS_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG ErrorStatus:1; |
| ULONGLONG ErrorType:1; |
| ULONGLONG Id:1; |
| ULONGLONG Address:1; |
| ULONGLONG Data:1; |
| ULONGLONG CmdType:1; |
| ULONGLONG RequestorId:1; |
| ULONGLONG ResponderId:1; |
| ULONGLONG TargetId:1; |
| ULONGLONG OemId:1; |
| ULONGLONG OemData:1; |
| ULONGLONG Reserved:53; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PCI_BUS_VALID, *PERROR_PCI_BUS_VALID; |
| |
| typedef struct _ERROR_PCI_BUS_TYPE { |
| UCHAR Type; |
| UCHAR Reserved; |
| } ERROR_PCI_BUS_TYPE, *PERROR_PCI_BUS_TYPE; |
| |
| #define PciBusUnknownError ((UCHAR)0) |
| #define PciBusDataParityError ((UCHAR)1) |
| #define PciBusSystemError ((UCHAR)2) |
| #define PciBusMasterAbort ((UCHAR)3) |
| #define PciBusTimeOut ((UCHAR)4) |
| #define PciMasterDataParityError ((UCHAR)5) |
| #define PciAddressParityError ((UCHAR)6) |
| #define PciCommandParityError ((UCHAR)7) |
| |
| typedef struct _ERROR_PCI_BUS_ID { |
| UCHAR BusNumber; |
| UCHAR SegmentNumber; |
| } ERROR_PCI_BUS_ID, *PERROR_PCI_BUS_ID; |
| |
| typedef struct _ERROR_PCI_BUS { |
| ERROR_SECTION_HEADER Header; |
| ERROR_PCI_BUS_VALID Valid; |
| ERROR_STATUS ErrorStatus; |
| ERROR_PCI_BUS_TYPE Type; |
| ERROR_PCI_BUS_ID Id; |
| UCHAR Reserved[4]; |
| ULONGLONG Address; |
| ULONGLONG Data; |
| ULONGLONG CmdType; |
| ULONGLONG RequestorId; |
| ULONGLONG ResponderId; |
| ULONGLONG TargetId; |
| UCHAR OemId[16]; |
| ERROR_OEM_DATA OemData; |
| } ERROR_PCI_BUS, *PERROR_PCI_BUS; |
| |
| #define ERROR_PCI_COMPONENT_GUID {0xe429faf6, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_PCI_COMPONENT_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG ErrorStatus:1; |
| ULONGLONG Info:1; |
| ULONGLONG MemoryMappedRegistersPairs:1; |
| ULONGLONG ProgrammedIORegistersPairs:1; |
| ULONGLONG RegistersDataPairs:1; |
| ULONGLONG OemData:1; |
| ULONGLONG Reserved:58; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PCI_COMPONENT_VALID, *PERROR_PCI_COMPONENT_VALID; |
| |
| typedef struct _ERROR_PCI_COMPONENT_INFO { |
| USHORT VendorId; |
| USHORT DeviceId; |
| UCHAR ClassCodeInterface; |
| UCHAR ClassCodeSubClass; |
| UCHAR ClassCodeBaseClass; |
| UCHAR FunctionNumber; |
| UCHAR DeviceNumber; |
| UCHAR BusNumber; |
| UCHAR SegmentNumber; |
| UCHAR Reserved0; |
| ULONG Reserved1; |
| } ERROR_PCI_COMPONENT_INFO, *PERROR_PCI_COMPONENT_INFO; |
| |
| typedef struct _ERROR_PCI_COMPONENT { |
| ERROR_SECTION_HEADER Header; |
| ERROR_PCI_COMPONENT_VALID Valid; |
| ERROR_STATUS ErrorStatus; |
| ERROR_PCI_COMPONENT_INFO Info; |
| ULONG MemoryMappedRegistersPairs; |
| ULONG ProgrammedIORegistersPairs; |
| } ERROR_PCI_COMPONENT, *PERROR_PCI_COMPONENT; |
| |
| #define ERROR_SYSTEM_EVENT_LOG_GUID {0xe429faf3, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_SYSTEM_EVENT_LOG_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG RecordId:1; |
| ULONGLONG RecordType:1; |
| ULONGLONG GeneratorId:1; |
| ULONGLONG EVMRev:1; |
| ULONGLONG SensorType:1; |
| ULONGLONG SensorNum:1; |
| ULONGLONG EventDirType:1; |
| ULONGLONG EventData1:1; |
| ULONGLONG EventData2:1; |
| ULONGLONG EventData3:1; |
| ULONGLONG Reserved:54; |
| } DUMMYSTRUCTNAME; |
| } ERROR_SYSTEM_EVENT_LOG_VALID, *PSYSTEM_EVENT_LOG_VALID; |
| |
| typedef struct _ERROR_SYSTEM_EVENT_LOG { |
| ERROR_SECTION_HEADER Header; |
| ERROR_SYSTEM_EVENT_LOG_VALID Valid; |
| USHORT RecordId; |
| UCHAR RecordType; |
| ULONG TimeStamp; |
| USHORT GeneratorId; |
| UCHAR EVMRevision; |
| UCHAR SensorType; |
| UCHAR SensorNumber; |
| UCHAR EventDir; |
| UCHAR Data1; |
| UCHAR Data2; |
| UCHAR Data3; |
| } ERROR_SYSTEM_EVENT_LOG, *PERROR_SYSTEM_EVENT_LOG; |
| |
| #define ERROR_SMBIOS_GUID {0xe429faf5, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_SMBIOS_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG EventType:1; |
| ULONGLONG Length:1; |
| ULONGLONG TimeStamp:1; |
| ULONGLONG OemData:1; |
| ULONGLONG Reserved:60; |
| } DUMMYSTRUCTNAME; |
| } ERROR_SMBIOS_VALID, *PERROR_SMBIOS_VALID; |
| |
| typedef UCHAR ERROR_SMBIOS_EVENT_TYPE, *PERROR_SMBIOS_EVENT_TYPE; |
| |
| typedef struct _ERROR_SMBIOS { |
| ERROR_SECTION_HEADER Header; |
| ERROR_SMBIOS_VALID Valid; |
| ERROR_SMBIOS_EVENT_TYPE EventType; |
| UCHAR Length; |
| ERROR_TIMESTAMP TimeStamp; |
| ERROR_OEM_DATA OemData; |
| } ERROR_SMBIOS, *PERROR_SMBIOS; |
| |
| #define ERROR_PLATFORM_SPECIFIC_GUID {0xe429faf7, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_PLATFORM_SPECIFIC_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG ErrorStatus:1; |
| ULONGLONG RequestorId:1; |
| ULONGLONG ResponderId:1; |
| ULONGLONG TargetId:1; |
| ULONGLONG BusSpecificData:1; |
| ULONGLONG OemId:1; |
| ULONGLONG OemData:1; |
| ULONGLONG OemDevicePath:1; |
| ULONGLONG Reserved:56; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PLATFORM_SPECIFIC_VALID, *PERROR_PLATFORM_SPECIFIC_VALID; |
| |
| typedef struct _ERROR_PLATFORM_SPECIFIC { |
| ERROR_SECTION_HEADER Header; |
| ERROR_PLATFORM_SPECIFIC_VALID Valid; |
| ERROR_STATUS ErrorStatus; |
| ULONGLONG RequestorId; |
| ULONGLONG ResponderId; |
| ULONGLONG TargetId; |
| ERROR_BUS_SPECIFIC_DATA BusSpecificData; |
| UCHAR OemId[16]; |
| ERROR_OEM_DATA OemData; |
| } ERROR_PLATFORM_SPECIFIC, *PERROR_PLATFORM_SPECIFIC; |
| |
| #define ERROR_PLATFORM_BUS_GUID {0xe429faf9, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_PLATFORM_BUS_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG ErrorStatus:1; |
| ULONGLONG RequestorId:1; |
| ULONGLONG ResponderId:1; |
| ULONGLONG TargetId:1; |
| ULONGLONG BusSpecificData:1; |
| ULONGLONG OemId:1; |
| ULONGLONG OemData:1; |
| ULONGLONG OemDevicePath:1; |
| ULONGLONG Reserved:56; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PLATFORM_BUS_VALID, *PERROR_PLATFORM_BUS_VALID; |
| |
| typedef struct _ERROR_PLATFORM_BUS { |
| ERROR_SECTION_HEADER Header; |
| ERROR_PLATFORM_BUS_VALID Valid; |
| ERROR_STATUS ErrorStatus; |
| ULONGLONG RequestorId; |
| ULONGLONG ResponderId; |
| ULONGLONG TargetId; |
| ERROR_BUS_SPECIFIC_DATA BusSpecificData; |
| UCHAR OemId[16]; |
| ERROR_OEM_DATA OemData; |
| } ERROR_PLATFORM_BUS, *PERROR_PLATFORM_BUS; |
| |
| #define ERROR_PLATFORM_HOST_CONTROLLER_GUID {0xe429faf8, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}} |
| |
| typedef union _ERROR_PLATFORM_HOST_CONTROLLER_VALID { |
| ULONGLONG Valid; |
| _ANONYMOUS_STRUCT struct { |
| ULONGLONG ErrorStatus:1; |
| ULONGLONG RequestorId:1; |
| ULONGLONG ResponderId:1; |
| ULONGLONG TargetId:1; |
| ULONGLONG BusSpecificData:1; |
| ULONGLONG OemId:1; |
| ULONGLONG OemData:1; |
| ULONGLONG OemDevicePath:1; |
| ULONGLONG Reserved:56; |
| } DUMMYSTRUCTNAME; |
| } ERROR_PLATFORM_HOST_CONTROLLER_VALID, *PERROR_PLATFORM_HOST_CONTROLLER_VALID; |
| |
| typedef struct _ERROR_PLATFORM_HOST_CONTROLLER { |
| ERROR_SECTION_HEADER Header; |
| ERROR_PCI_COMPONENT_VALID Valid; |
| ERROR_STATUS ErrorStatus; |
| ULONGLONG RequestorId; |
| ULONGLONG ResponderId; |
| ULONGLONG TargetId; |
| ERROR_BUS_SPECIFIC_DATA BusSpecificData; |
| UCHAR OemId[16]; |
| ERROR_OEM_DATA OemData; |
| } ERROR_PLATFORM_HOST_CONTROLLER, *PERROR_PLATFORM_HOST_CONTROLLER; |
| |
| typedef ERROR_RECORD_HEADER ERROR_LOGRECORD, *PERROR_LOGRECORD; |
| typedef ERROR_RECORD_HEADER MCA_EXCEPTION, *PMCA_EXCEPTION; |
| typedef ERROR_RECORD_HEADER CMC_EXCEPTION, *PCMC_EXCEPTION; |
| typedef ERROR_RECORD_HEADER CPE_EXCEPTION, *PCPE_EXCEPTION; |
| #if (NTDDI_VERSION > NTDDI_WINXP) |
| typedef ERROR_RECORD_HEADER INIT_EXCEPTION, *PINIT_EXCEPTION; |
| #endif |
| |
| #endif /* defined(_IA64_) */ |
| |
| #endif /* defined(_X86_) || defined(_IA64_) || defined(_AMD64_) */ |