3 #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
5 typedef union _MCI_ADDR
{
6 _ANONYMOUS_STRUCT
struct {
11 } MCI_ADDR
, *PMCI_ADDR
;
20 #if (NTDDI_VERSION <= NTDDI_WINXP)
22 typedef union _MCI_STATS
{
25 USHORT ModelErrorCode
;
36 } MCI_STATS
, *PMCI_STATS
;
40 typedef union _MCI_STATS
{
43 USHORT ModelErrorCode
;
44 ULONG OtherInformation
:25;
45 ULONG ContextCorrupt
:1;
49 ULONG UncorrectedError
:1;
50 ULONG StatusOverFlow
:1;
54 } MCI_STATS
, *PMCI_STATS
;
56 #endif /* (NTDDI_VERSION <= NTDDI_WINXP) */
58 #endif /* defined(_AMD64_) */
61 typedef union _MCI_STATS
{
75 } MCI_STATS
, *PMCI_STATS
;
78 #define MCA_EXTREG_V2MAX 24
80 #if defined(_X86_) || defined(_AMD64_)
82 #if (NTDDI_VERSION >= NTDDI_WINXP)
84 typedef struct _MCA_EXCEPTION
{
86 MCA_EXCEPTION_TYPE ExceptionType
;
87 LARGE_INTEGER TimeStamp
;
88 ULONG ProcessorNumber
;
105 ULONGLONG ExtReg
[MCA_EXTREG_V2MAX
];
106 } MCA_EXCEPTION
, *PMCA_EXCEPTION
;
110 typedef struct _MCA_EXCEPTION
{
112 MCA_EXCEPTION_TYPE ExceptionType
;
113 LARGE_INTEGER TimeStamp
;
114 ULONG ProcessorNumber
;
129 } MCA_EXCEPTION
, *PMCA_EXCEPTION
;
131 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
133 typedef MCA_EXCEPTION CMC_EXCEPTION
, *PCMC_EXCEPTION
;
134 typedef MCA_EXCEPTION CPE_EXCEPTION
, *PCPE_EXCEPTION
;
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)
141 #endif /* defined(_X86_) || defined(_AMD64_) */
143 #if defined(_AMD64_) || defined(_IA64_)
145 typedef UCHAR ERROR_SEVERITY
, *PERROR_SEVERITY
;
147 typedef enum _ERROR_SEVERITY_VALUE
{
148 ErrorRecoverable
= 0,
152 } ERROR_SEVERITY_VALUE
;
158 typedef union _ERROR_REVISION
{
160 _ANONYMOUS_STRUCT
struct {
164 } ERROR_REVISION
, *PERROR_REVISION
;
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}
172 #define ERROR_REVISION_SAL_03_00 {2,0}
173 #endif /* (NTDDI_VERSION > NTDDI_WINXP) */
175 typedef union _ERROR_TIMESTAMP
{
177 _ANONYMOUS_STRUCT
struct {
187 } ERROR_TIMESTAMP
, *PERROR_TIMESTAMP
;
189 typedef struct _ERROR_GUID
{
194 } ERROR_GUID
, *PERROR_GUID
;
196 typedef ERROR_GUID _ERROR_DEVICE_GUID
;
197 typedef _ERROR_DEVICE_GUID ERROR_DEVICE_GUID
, *PERROR_DEVICE_GUID
;
199 typedef ERROR_GUID _ERROR_PLATFORM_GUID
;
200 typedef _ERROR_PLATFORM_GUID ERROR_PLATFORM_GUID
, *PERROR_PLATFORM_GUID
;
202 typedef union _ERROR_RECORD_VALID
{
204 _ANONYMOUS_STRUCT
struct {
205 UCHAR OemPlatformID
:1;
208 } ERROR_RECORD_VALID
, *PERROR_RECORD_VALID
;
210 typedef struct _ERROR_RECORD_HEADER
{
212 ERROR_REVISION Revision
;
213 ERROR_SEVERITY ErrorSeverity
;
214 ERROR_RECORD_VALID Valid
;
216 ERROR_TIMESTAMP TimeStamp
;
217 UCHAR OemPlatformId
[16];
218 } ERROR_RECORD_HEADER
, *PERROR_RECORD_HEADER
;
220 typedef union _ERROR_RECOVERY_INFO
{
222 _ANONYMOUS_STRUCT
struct {
224 UCHAR NotContained
:1;
229 } ERROR_RECOVERY_INFO
, *PERROR_RECOVERY_INFO
;
231 typedef struct _ERROR_SECTION_HEADER
{
232 ERROR_DEVICE_GUID Guid
;
233 ERROR_REVISION Revision
;
234 ERROR_RECOVERY_INFO RecoveryInfo
;
237 } ERROR_SECTION_HEADER
, *PERROR_SECTION_HEADER
;
243 GetFwMceLogProcessorNumber(
244 PERROR_RECORD_HEADER Log
)
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);
251 lid
|= (USHORT
)((UCHAR
)(Log
->TimeStamp
.Reserved
) << 8);
257 #define ERROR_PROCESSOR_GUID {0xe429faf1, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
259 typedef union _ERROR_MODINFO_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;
269 } ERROR_MODINFO_VALID
, *PERROR_MODINFO_VALID
;
271 typedef enum _ERROR_CHECK_IS
{
276 typedef enum _ERROR_CACHE_CHECK_OPERATION
{
280 CacheInstructionFetch
= 3,
281 CacheDataPrefetch
= 4,
285 } ERROR_CACHE_CHECK_OPERATION
;
287 typedef enum _ERROR_CACHE_CHECK_MESI
{
290 CacheHeldExclusive
= 2,
292 } ERROR_CACHE_CHECK_MESI
;
294 #if (NTDDI_VERSION >= NTDDI_VISTA)
296 typedef union _ERROR_CACHE_CHECK
{
297 ULONGLONG CacheCheck
;
298 _ANONYMOUS_STRUCT
struct {
299 ULONGLONG Operation
:4;
301 ULONGLONG Reserved1
:2;
302 ULONGLONG DataLine
:1;
304 ULONGLONG DataCache
:1;
305 ULONGLONG InstructionCache
:1;
307 ULONGLONG MESIValid
:1;
309 ULONGLONG WayIndexValid
:1;
310 ULONGLONG Reserved2
:1;
312 ULONGLONG Reserved3
:8;
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;
325 } ERROR_CACHE_CHECK
, *PERROR_CACHE_CHECK
;
329 typedef union _ERROR_CACHE_CHECK
{
330 ULONGLONG CacheCheck
;
331 _ANONYMOUS_STRUCT
struct {
332 ULONGLONG Operation
:4;
334 ULONGLONG Reserved1
:2;
335 ULONGLONG DataLine
:1;
337 ULONGLONG DataCache
:1;
338 ULONGLONG InstructionCache
:1;
340 ULONGLONG MESIValid
:1;
342 ULONGLONG WayIndexValid
:1;
343 ULONGLONG Reserved2
:10;
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;
356 } ERROR_CACHE_CHECK
, *PERROR_CACHE_CHECK
;
358 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
360 typedef enum _ERROR_TLB_CHECK_OPERATION
{
362 TlbAccessWithLoad
= 1,
363 TlbAccessWithStore
= 2,
364 TlbAccessWithInstructionFetch
= 3,
365 TlbAccessWithDataPrefetch
= 4,
370 } ERROR_TLB_CHECK_OPERATION
;
372 typedef union _ERROR_TLB_CHECK
{
374 _ANONYMOUS_STRUCT
struct {
376 ULONGLONG TRSlotValid
:1;
377 ULONGLONG Reserved1
:1;
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;
396 } ERROR_TLB_CHECK
, *PERROR_TLB_CHECK
;
398 typedef enum _ERROR_BUS_CHECK_OPERATION
{
403 BusFullLineWrite
= 4,
407 BusWriteCoalescing
= 8,
408 } ERROR_BUS_CHECK_OPERATION
;
410 #if (NTDDI_VERSION >= NTDDI_VISTA)
412 typedef union _ERROR_BUS_CHECK
{
414 _ANONYMOUS_STRUCT
struct {
416 ULONGLONG Internal
:1;
417 ULONGLONG External
:1;
418 ULONGLONG CacheTransfer
:1;
420 ULONGLONG Severity
:5;
421 ULONGLONG Hierarchy
:2;
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;
435 } ERROR_BUS_CHECK
, *PERROR_BUS_CHECK
;
439 typedef union _ERROR_BUS_CHECK
{
441 _ANONYMOUS_STRUCT
struct {
443 ULONGLONG Internal
:1;
444 ULONGLONG External
:1;
445 ULONGLONG CacheTransfer
:1;
447 ULONGLONG Severity
:5;
448 ULONGLONG Hierarchy
:2;
449 ULONGLONG Reserved1
:1;
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;
462 } ERROR_BUS_CHECK
, *PERROR_BUS_CHECK
;
466 typedef enum _ERROR_REGFILE_CHECK_IDENTIFIER
{
467 RegFileUnknownId
= 0,
468 GeneralRegisterBank1
= 1,
469 GeneralRegisterBank0
= 2,
470 FloatingPointRegister
= 3,
472 PredicateRegister
= 5,
473 ApplicationRegister
= 6,
476 ProtectionKeyRegister
= 9,
477 DataBreakPointRegister
= 10,
478 InstructionBreakPointRegister
= 11,
479 PerformanceMonitorControlRegister
= 12,
480 PerformanceMonitorDataRegister
= 13,
481 } ERROR_REGFILE_CHECK_IDENTIFIER
;
483 typedef enum _ERROR_REGFILE_CHECK_OPERATION
{
484 RegFileUnknownOp
= 0,
487 } ERROR_REGFILE_CHECK_OPERATION
;
489 typedef 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;
505 } ERROR_REGFILE_CHECK
, *PERROR_REGFILE_CHECK
;
507 #if (NTDDK_VERSION <= WINXP)
508 typedef enum _ERROR_MS_CHECK_OPERATION
{
512 } ERROR_MS_CHECK_OPERATION
;
514 typedef enum _ERROR_MS_CHECK_OPERATION
{
518 MsOverTemperature
= 3,
519 MsNormalTemperature
= 4
520 } ERROR_MS_CHECK_OPERATION
;
523 typedef union _ERROR_MS_CHECK
{
525 _ANONYMOUS_STRUCT
struct {
526 ULONGLONG StructureIdentifier
:5;
529 ULONGLONG Operation
:4;
531 ULONGLONG WayValid
:1;
532 ULONGLONG IndexValid
:1;
533 ULONGLONG Reserved1
: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;
546 } ERROR_MS_CHECK
, *PERROR_MS_CHECK
;
548 typedef union _ERROR_CHECK_INFO
{
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
;
557 typedef struct _ERROR_MODINFO
{
558 ERROR_MODINFO_VALID Valid
;
559 ERROR_CHECK_INFO CheckInfo
;
560 ULONGLONG RequestorId
;
561 ULONGLONG ResponderId
;
564 } ERROR_MODINFO
, *PERROR_MODINFO
;
566 typedef union _ERROR_PROCESSOR_VALID
{
568 _ANONYMOUS_STRUCT
struct {
569 ULONGLONG ErrorMap
:1;
570 ULONGLONG StateParameter
: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;
581 } ERROR_PROCESSOR_VALID
, *PERROR_PROCESSOR_VALID
;
583 typedef union _ERROR_PROCESSOR_ERROR_MAP
{
585 _ANONYMOUS_STRUCT
struct {
595 ULONGLONG Reserved
:16;
597 } ERROR_PROCESSOR_ERROR_MAP
, *PERROR_PROCESSOR_ERROR_MAP
;
599 typedef ERROR_PROCESSOR_ERROR_MAP _ERROR_PROCESSOR_LEVEL_INDEX
;
600 typedef _ERROR_PROCESSOR_LEVEL_INDEX ERROR_PROCESSOR_LEVEL_INDEX
, *PERROR_PROCESSOR_LEVEL_INDEX
;
602 typedef union _ERROR_PROCESSOR_STATE_PARAMETER
{
603 ULONGLONG StateParameter
;
604 _ANONYMOUS_STRUCT
struct {
605 ULONGLONG reserved0
:2;
637 ULONGLONG reserved1
:11;
644 } ERROR_PROCESSOR_STATE_PARAMETER
, *PERROR_PROCESSOR_STATE_PARAMETER
;
646 typedef union _PROCESSOR_LOCAL_ID
{
648 _ANONYMOUS_STRUCT
struct {
649 ULONGLONG reserved
:16;
652 ULONGLONG ignored
:32;
654 } PROCESSOR_LOCAL_ID
, *PPROCESSOR_LOCAL_ID
;
656 typedef struct _ERROR_PROCESSOR_MS
{
657 ULONGLONG MsError
[1];
658 } ERROR_PROCESSOR_MS
, *PERROR_PROCESSOR_MS
;
660 typedef struct _ERROR_PROCESSOR_CPUID_INFO
{
667 } ERROR_PROCESSOR_CPUID_INFO
, *PERROR_PROCESSOR_CPUID_INFO
;
669 typedef union _ERROR_PROCESSOR_STATIC_INFO_VALID
{
671 _ANONYMOUS_STRUCT
struct {
672 ULONGLONG MinState
:1;
678 ULONGLONG Reserved
:58;
680 } ERROR_PROCESSOR_STATIC_INFO_VALID
, *PERROR_PROCESSOR_STATIC_INFO_VALID
;
682 typedef struct _ERROR_PROCESSOR_STATIC_INFO
{
683 ERROR_PROCESSOR_STATIC_INFO_VALID Valid
;
684 UCHAR MinState
[1024];
689 ULONGLONG FR
[2 * 128];
690 } ERROR_PROCESSOR_STATIC_INFO
, *PERROR_PROCESSOR_STATIC_INFO
;
692 typedef 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
;
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
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
714 typedef enum _ERR_TYPES
{
735 typedef union _ERROR_STATUS
{
737 _ANONYMOUS_STRUCT
struct {
738 ULONGLONG Reserved0
:8;
743 ULONGLONG Responder
:1;
744 ULONGLONG Requestor
:1;
745 ULONGLONG FirstError
:1;
746 ULONGLONG Overflow
:1;
747 ULONGLONG Reserved1
:41;
749 } ERROR_STATUS
, *PERROR_STATUS
;
751 typedef struct _ERROR_OEM_DATA
{
753 } ERROR_OEM_DATA
, *PERROR_OEM_DATA
;
755 typedef 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;
778 } ERROR_BUS_SPECIFIC_DATA
, *PERROR_BUS_SPECIFIC_DATA
;
780 #define ERROR_MEMORY_GUID {0xe429faf2, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
782 typedef union _ERROR_MEMORY_VALID
{
784 _ANONYMOUS_STRUCT
struct {
785 ULONGLONG ErrorStatus
:1;
786 ULONGLONG PhysicalAddress
:1;
787 ULONGLONG AddressMask
:1;
795 ULONGLONG BitPosition
:1;
796 ULONGLONG RequestorId
:1;
797 ULONGLONG ResponderId
:1;
798 ULONGLONG TargetId
:1;
799 ULONGLONG BusSpecificData
:1;
802 ULONGLONG Reserved
:47;
804 } ERROR_MEMORY_VALID
, *PERROR_MEMORY_VALID
;
806 typedef struct _ERROR_MEMORY
{
807 ERROR_SECTION_HEADER Header
;
808 ERROR_MEMORY_VALID Valid
;
809 ERROR_STATUS ErrorStatus
;
810 ULONGLONG PhysicalAddress
;
811 ULONGLONG PhysicalAddressMask
;
820 ULONGLONG RequestorId
;
821 ULONGLONG ResponderId
;
823 ULONGLONG BusSpecificData
;
825 ERROR_OEM_DATA OemData
;
826 } ERROR_MEMORY
, *PERROR_MEMORY
;
828 #define ERROR_PCI_BUS_GUID {0xe429faf4, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
830 typedef union _ERROR_PCI_BUS_VALID
{
832 _ANONYMOUS_STRUCT
struct {
833 ULONGLONG ErrorStatus
:1;
834 ULONGLONG ErrorType
:1;
839 ULONGLONG RequestorId
:1;
840 ULONGLONG ResponderId
:1;
841 ULONGLONG TargetId
:1;
844 ULONGLONG Reserved
:53;
846 } ERROR_PCI_BUS_VALID
, *PERROR_PCI_BUS_VALID
;
848 typedef struct _ERROR_PCI_BUS_TYPE
{
851 } ERROR_PCI_BUS_TYPE
, *PERROR_PCI_BUS_TYPE
;
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)
862 typedef struct _ERROR_PCI_BUS_ID
{
865 } ERROR_PCI_BUS_ID
, *PERROR_PCI_BUS_ID
;
867 typedef 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
;
877 ULONGLONG RequestorId
;
878 ULONGLONG ResponderId
;
881 ERROR_OEM_DATA OemData
;
882 } ERROR_PCI_BUS
, *PERROR_PCI_BUS
;
884 #define ERROR_PCI_COMPONENT_GUID {0xe429faf6, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
886 typedef union _ERROR_PCI_COMPONENT_VALID
{
888 _ANONYMOUS_STRUCT
struct {
889 ULONGLONG ErrorStatus
:1;
891 ULONGLONG MemoryMappedRegistersPairs
:1;
892 ULONGLONG ProgrammedIORegistersPairs
:1;
893 ULONGLONG RegistersDataPairs
:1;
895 ULONGLONG Reserved
:58;
897 } ERROR_PCI_COMPONENT_VALID
, *PERROR_PCI_COMPONENT_VALID
;
899 typedef struct _ERROR_PCI_COMPONENT_INFO
{
902 UCHAR ClassCodeInterface
;
903 UCHAR ClassCodeSubClass
;
904 UCHAR ClassCodeBaseClass
;
905 UCHAR FunctionNumber
;
911 } ERROR_PCI_COMPONENT_INFO
, *PERROR_PCI_COMPONENT_INFO
;
913 typedef 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
;
922 #define ERROR_SYSTEM_EVENT_LOG_GUID {0xe429faf3, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
924 typedef union _ERROR_SYSTEM_EVENT_LOG_VALID
{
926 _ANONYMOUS_STRUCT
struct {
927 ULONGLONG RecordId
:1;
928 ULONGLONG RecordType
:1;
929 ULONGLONG GeneratorId
: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;
939 } ERROR_SYSTEM_EVENT_LOG_VALID
, *PSYSTEM_EVENT_LOG_VALID
;
941 typedef struct _ERROR_SYSTEM_EVENT_LOG
{
942 ERROR_SECTION_HEADER Header
;
943 ERROR_SYSTEM_EVENT_LOG_VALID Valid
;
955 } ERROR_SYSTEM_EVENT_LOG
, *PERROR_SYSTEM_EVENT_LOG
;
957 #define ERROR_SMBIOS_GUID {0xe429faf5, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
959 typedef union _ERROR_SMBIOS_VALID
{
961 _ANONYMOUS_STRUCT
struct {
962 ULONGLONG EventType
:1;
964 ULONGLONG TimeStamp
:1;
966 ULONGLONG Reserved
:60;
968 } ERROR_SMBIOS_VALID
, *PERROR_SMBIOS_VALID
;
970 typedef UCHAR ERROR_SMBIOS_EVENT_TYPE
, *PERROR_SMBIOS_EVENT_TYPE
;
972 typedef struct _ERROR_SMBIOS
{
973 ERROR_SECTION_HEADER Header
;
974 ERROR_SMBIOS_VALID Valid
;
975 ERROR_SMBIOS_EVENT_TYPE EventType
;
977 ERROR_TIMESTAMP TimeStamp
;
978 ERROR_OEM_DATA OemData
;
979 } ERROR_SMBIOS
, *PERROR_SMBIOS
;
981 #define ERROR_PLATFORM_SPECIFIC_GUID {0xe429faf7, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
983 typedef union _ERROR_PLATFORM_SPECIFIC_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;
993 ULONGLONG OemDevicePath
:1;
994 ULONGLONG Reserved
:56;
996 } ERROR_PLATFORM_SPECIFIC_VALID
, *PERROR_PLATFORM_SPECIFIC_VALID
;
998 typedef 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
;
1005 ERROR_BUS_SPECIFIC_DATA BusSpecificData
;
1007 ERROR_OEM_DATA OemData
;
1008 } ERROR_PLATFORM_SPECIFIC
, *PERROR_PLATFORM_SPECIFIC
;
1010 #define ERROR_PLATFORM_BUS_GUID {0xe429faf9, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
1012 typedef union _ERROR_PLATFORM_BUS_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;
1021 ULONGLONG OemData
:1;
1022 ULONGLONG OemDevicePath
:1;
1023 ULONGLONG Reserved
:56;
1025 } ERROR_PLATFORM_BUS_VALID
, *PERROR_PLATFORM_BUS_VALID
;
1027 typedef 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
;
1034 ERROR_BUS_SPECIFIC_DATA BusSpecificData
;
1036 ERROR_OEM_DATA OemData
;
1037 } ERROR_PLATFORM_BUS
, *PERROR_PLATFORM_BUS
;
1039 #define ERROR_PLATFORM_HOST_CONTROLLER_GUID {0xe429faf8, 0x3cb7, 0x11d4, {0xbc, 0xa7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81}}
1041 typedef union _ERROR_PLATFORM_HOST_CONTROLLER_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;
1050 ULONGLONG OemData
:1;
1051 ULONGLONG OemDevicePath
:1;
1052 ULONGLONG Reserved
:56;
1054 } ERROR_PLATFORM_HOST_CONTROLLER_VALID
, *PERROR_PLATFORM_HOST_CONTROLLER_VALID
;
1056 typedef 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
;
1063 ERROR_BUS_SPECIFIC_DATA BusSpecificData
;
1065 ERROR_OEM_DATA OemData
;
1066 } ERROR_PLATFORM_HOST_CONTROLLER
, *PERROR_PLATFORM_HOST_CONTROLLER
;
1068 typedef ERROR_RECORD_HEADER ERROR_LOGRECORD
, *PERROR_LOGRECORD
;
1069 typedef ERROR_RECORD_HEADER MCA_EXCEPTION
, *PMCA_EXCEPTION
;
1070 typedef ERROR_RECORD_HEADER CMC_EXCEPTION
, *PCMC_EXCEPTION
;
1071 typedef ERROR_RECORD_HEADER CPE_EXCEPTION
, *PCPE_EXCEPTION
;
1072 #if (NTDDI_VERSION > NTDDI_WINXP)
1073 typedef ERROR_RECORD_HEADER INIT_EXCEPTION
, *PINIT_EXCEPTION
;
1076 #endif /* defined(_IA64_) */
1078 #endif /* defined(_X86_) || defined(_IA64_) || defined(_AMD64_) */