/* Header autogenerated by Brandon Falk's PDB Dumper * * Invocation: C:\projects\pdbdump_2\pdbdump.exe L:\symbolarchive\win8_spB_x64\pshed.pdb\9C61126F72D9461784E5030F209B5E4D2\pshed.pdb */ struct LIST_ENTRY64 { unsigned long long Flink; /* +0x0000 */ unsigned long long Blink; /* +0x0008 */ }; struct LIST_ENTRY32 { unsigned long Flink; /* +0x0000 */ unsigned long Blink; /* +0x0004 */ }; struct _LIST_ENTRY { unsigned char Flink[8]; /* +0x0000 20 10 00 00 */ unsigned char Blink[8]; /* +0x0008 20 10 00 00 */ }; struct _SINGLE_LIST_ENTRY { unsigned char Next[8]; /* +0x0000 32 10 00 00 */ }; struct _UNICODE_STRING { unsigned short Length; /* +0x0000 */ unsigned short MaximumLength; /* +0x0002 */ unsigned short *Buffer; /* +0x0008 */ }; struct _STRING { unsigned short Length; /* +0x0000 */ unsigned short MaximumLength; /* +0x0002 */ char *Buffer; /* +0x0008 */ }; /* struct { unsigned long LowPart; +0x0000 long HighPart; +0x0004 }; */ struct _LARGE_INTEGER { unsigned long LowPart; /* +0x0000 */ long HighPart; /* +0x0004 */ /* unsigned char u[0]; +0x0000 44 10 00 00 */ long long QuadPart; /* +0x0000 */ }; /* struct { unsigned long LowPart; +0x0000 unsigned long HighPart; +0x0004 }; */ struct _ULARGE_INTEGER { unsigned long LowPart; /* +0x0000 */ unsigned long HighPart; /* +0x0004 */ /* unsigned char u[0]; +0x0000 49 10 00 00 */ unsigned long long QuadPart; /* +0x0000 */ }; struct _RTL_BITMAP { unsigned long SizeOfBitMap; /* +0x0000 */ unsigned long *Buffer; /* +0x0008 */ }; struct _FAST_MUTEX { unsigned char Count[8]; /* +0x0000 1b 10 00 00 */ void *Owner; /* +0x0008 */ unsigned long Contention; /* +0x0010 */ unsigned char Event[24]; /* +0x0018 64 10 00 00 */ unsigned long OldIrql; /* +0x0030 */ }; enum _EVENT_TYPE { NotificationEvent = 0, SynchronizationEvent = 1 }; struct _KEVENT { unsigned char Header[24]; /* +0x0000 6f 10 00 00 */ }; struct _LOOKASIDE_LIST_EX { unsigned char L[96]; /* +0x0000 74 10 00 00 */ }; struct _SLIST_ENTRY { unsigned char Next[16]; /* +0x0000 78 10 00 00 */ }; /* struct { /* unsigned char Depth[0]; +0x0000 81 10 00 00 /* unsigned char Sequence[0]; +0x0000 82 10 00 00 unsigned char NextEntry[8]; +0x0000 83 10 00 00 /* unsigned char HeaderType[0]; +0x0008 84 10 00 00 /* unsigned char Init[0]; +0x0008 85 10 00 00 /* unsigned char Reserved[0]; +0x0008 86 10 00 00 unsigned char Region[8]; +0x0008 87 10 00 00 }; */ /* struct { /* unsigned char Depth[0]; +0x0000 81 10 00 00 unsigned char Sequence[8]; +0x0000 8a 10 00 00 /* unsigned char HeaderType[0]; +0x0008 84 10 00 00 /* unsigned char Reserved[0]; +0x0008 8b 10 00 00 unsigned char NextEntry[8]; +0x0008 8c 10 00 00 }; */ struct _SLIST_HEADER { unsigned long long Alignment; /* +0x0000 */ unsigned long long Region; /* +0x0008 */ /* unsigned char Header8[0]; +0x0000 89 10 00 00 */ unsigned char HeaderX64[16]; /* +0x0000 8e 10 00 00 */ }; enum _POOL_TYPE { NonPagedPool = 0, NonPagedPoolExecute = 0, PagedPool = 1, NonPagedPoolMustSucceed = 2, DontUseThisType = 3, NonPagedPoolCacheAligned = 4, PagedPoolCacheAligned = 5, NonPagedPoolCacheAlignedMustS = 6, MaxPoolType = 7, NonPagedPoolBase = 0, NonPagedPoolBaseMustSucceed = 2, NonPagedPoolBaseCacheAligned = 4, NonPagedPoolBaseCacheAlignedMustS = 6, NonPagedPoolSession = 32, PagedPoolSession = 33, NonPagedPoolMustSucceedSession = 34, DontUseThisTypeSession = 35, NonPagedPoolCacheAlignedSession = 36, PagedPoolCacheAlignedSession = 37, NonPagedPoolCacheAlignedMustSSession = 38, NonPagedPoolNx = 512, NonPagedPoolNxCacheAligned = 516, NonPagedPoolSessionNx = 544 }; struct _NPAGED_LOOKASIDE_LIST { unsigned char L[128]; /* +0x0000 a3 10 00 00 */ }; struct _WORK_QUEUE_ITEM { unsigned char List[16]; /* +0x0000 1f 10 00 00 */ unsigned char WorkerRoutine[8]; /* +0x0010 ac 10 00 00 */ void *Parameter; /* +0x0018 */ }; struct _MDL { unsigned char Next[8]; /* +0x0000 b6 10 00 00 */ short Size; /* +0x0008 */ short MdlFlags; /* +0x000a */ unsigned char Process[8]; /* +0x0010 b8 10 00 00 */ void *MappedSystemVa; /* +0x0018 */ void *StartVa; /* +0x0020 */ unsigned long ByteCount; /* +0x0028 */ unsigned long ByteOffset; /* +0x002c */ }; enum _MEMORY_CACHING_TYPE { MmNonCached = 0, MmCached = 1, MmWriteCombined = 2, MmHardwareCoherentCached = 3, MmNonCachedUnordered = 4, MmUSWCCached = 5, MmMaximumCacheType = 6 }; /* struct { /* unsigned char MasterIrp[0]; +0x0000 ca 10 00 00 long IrpCount; +0x0000 void *SystemBuffer; +0x0000 }; */ /* struct { /* unsigned char UserApcRoutine[0]; +0x0000 d1 10 00 00 void *IssuingProcess; +0x0000 void *UserApcContext; +0x0008 }; */ /* struct { /* unsigned char AsynchronousParameters[0]; +0x0000 d3 10 00 00 unsigned char AllocationSize[16]; +0x0000 42 10 00 00 }; */ /* struct { /* unsigned char DeviceQueueEntry[0]; +0x0000 db 10 00 00 unsigned char DriverContext[32]; +0x0000 dc 10 00 00 unsigned char Thread[8]; +0x0020 c8 10 00 00 char *AuxiliaryBuffer; +0x0028 unsigned char ListEntry[16]; +0x0030 1f 10 00 00 /* unsigned char CurrentStackLocation[0]; +0x0040 de 10 00 00 unsigned long PacketType; +0x0040 unsigned char OriginalFileObject[8]; +0x0048 e0 10 00 00 }; */ /* struct { /* unsigned char Overlay[0]; +0x0000 e2 10 00 00 /* unsigned char Apc[0]; +0x0000 e3 10 00 00 void *CompletionKey; +0x0000 }; */ struct _IRP { short Type; /* +0x0000 */ unsigned short Size; /* +0x0002 */ unsigned char MdlAddress[8]; /* +0x0008 b6 10 00 00 */ unsigned long Flags; /* +0x0010 */ unsigned char AssociatedIrp[8]; /* +0x0018 cc 10 00 00 */ unsigned char ThreadListEntry[16]; /* +0x0020 1f 10 00 00 */ unsigned char IoStatus[16]; /* +0x0030 cd 10 00 00 */ char RequestorMode; /* +0x0040 */ unsigned char PendingReturned; /* +0x0041 */ char StackCount; /* +0x0042 */ char CurrentLocation; /* +0x0043 */ unsigned char Cancel; /* +0x0044 */ unsigned char CancelIrql; /* +0x0045 */ char ApcEnvironment; /* +0x0046 */ unsigned char AllocationFlags; /* +0x0047 */ unsigned char UserIosb[8]; /* +0x0048 ce 10 00 00 */ unsigned char UserEvent[8]; /* +0x0050 68 10 00 00 */ unsigned char Overlay[16]; /* +0x0058 d5 10 00 00 */ unsigned char CancelRoutine[8]; /* +0x0068 da 10 00 00 */ void *UserBuffer; /* +0x0070 */ unsigned char Tail[88]; /* +0x0078 e5 10 00 00 */ }; /* struct { unsigned char SecurityContext[8]; +0x0000 ea 10 00 00 unsigned long Options; +0x0008 unsigned short FileAttributes; +0x0010 unsigned short ShareAccess; +0x0012 unsigned long EaLength; +0x0018 }; */ /* struct { unsigned char SecurityContext[8]; +0x0000 ea 10 00 00 unsigned long Options; +0x0008 unsigned short Reserved; +0x0010 unsigned short ShareAccess; +0x0012 unsigned char Parameters[8]; +0x0018 ee 10 00 00 }; */ /* struct { unsigned char SecurityContext[8]; +0x0000 ea 10 00 00 unsigned long Options; +0x0008 unsigned short Reserved; +0x0010 unsigned short ShareAccess; +0x0012 unsigned char Parameters[8]; +0x0018 f2 10 00 00 }; */ /* struct { unsigned long Length; +0x0000 unsigned long Key; +0x0008 unsigned char ByteOffset[8]; +0x0010 42 10 00 00 }; */ enum _FILE_INFORMATION_CLASS { FileDirectoryInformation = 1, FileFullDirectoryInformation = 2, FileBothDirectoryInformation = 3, FileBasicInformation = 4, FileStandardInformation = 5, FileInternalInformation = 6, FileEaInformation = 7, FileAccessInformation = 8, FileNameInformation = 9, FileRenameInformation = 10, FileLinkInformation = 11, FileNamesInformation = 12, FileDispositionInformation = 13, FilePositionInformation = 14, FileFullEaInformation = 15, FileModeInformation = 16, FileAlignmentInformation = 17, FileAllInformation = 18, FileAllocationInformation = 19, FileEndOfFileInformation = 20, FileAlternateNameInformation = 21, FileStreamInformation = 22, FilePipeInformation = 23, FilePipeLocalInformation = 24, FilePipeRemoteInformation = 25, FileMailslotQueryInformation = 26, FileMailslotSetInformation = 27, FileCompressionInformation = 28, FileObjectIdInformation = 29, FileCompletionInformation = 30, FileMoveClusterInformation = 31, FileQuotaInformation = 32, FileReparsePointInformation = 33, FileNetworkOpenInformation = 34, FileAttributeTagInformation = 35, FileTrackingInformation = 36, FileIdBothDirectoryInformation = 37, FileIdFullDirectoryInformation = 38, FileValidDataLengthInformation = 39, FileShortNameInformation = 40, FileIoCompletionNotificationInformation = 41, FileIoStatusBlockRangeInformation = 42, FileIoPriorityHintInformation = 43, FileSfioReserveInformation = 44, FileSfioVolumeInformation = 45, FileHardLinkInformation = 46, FileProcessIdsUsingFileInformation = 47, FileNormalizedNameInformation = 48, FileNetworkPhysicalNameInformation = 49, FileIdGlobalTxDirectoryInformation = 50, FileIsRemoteDeviceInformation = 51, FileAttributeCacheInformation = 52, FileNumaNodeInformation = 53, FileStandardLinkInformation = 54, FileRemoteProtocolInformation = 55, FileRenameInformationBypassAccessCheck = 56, FileLinkInformationBypassAccessCheck = 57, FileIntegrityStreamInformation = 58, FileVolumeNameInformation = 59, FileMaximumInformation = 60 }; /* struct { unsigned long Length; +0x0000 unsigned char FileName[8]; +0x0008 37 10 00 00 unsigned char FileInformationClass[8]; +0x0010 f8 10 00 00 unsigned long FileIndex; +0x0018 }; */ /* struct { unsigned long Length; +0x0000 unsigned long CompletionFilter; +0x0008 }; */ /* struct { unsigned long Length; +0x0000 unsigned char FileInformationClass[8]; +0x0008 f8 10 00 00 }; */ /* struct { unsigned long Length; +0x0000 unsigned char FileInformationClass[8]; +0x0008 f8 10 00 00 unsigned char FileObject[8]; +0x0010 e0 10 00 00 unsigned char ReplaceIfExists; +0x0018 unsigned char AdvanceOnly; +0x0019 unsigned long ClusterCount; +0x0018 void *DeleteHandle; +0x0018 }; */ /* struct { unsigned long Length; +0x0000 void *EaList; +0x0008 unsigned long EaListLength; +0x0010 unsigned long EaIndex; +0x0018 }; */ /* struct { unsigned long Length; +0x0000 }; */ enum _FSINFOCLASS { FileFsVolumeInformation = 1, FileFsLabelInformation = 2, FileFsSizeInformation = 3, FileFsDeviceInformation = 4, FileFsAttributeInformation = 5, FileFsControlInformation = 6, FileFsFullSizeInformation = 7, FileFsObjectIdInformation = 8, FileFsDriverPathInformation = 9, FileFsVolumeFlagsInformation = 10, FileFsSectorSizeInformation = 11, FileFsMaximumInformation = 12 }; /* struct { unsigned long Length; +0x0000 unsigned char FsInformationClass[8]; +0x0008 06 11 00 00 }; */ /* struct { unsigned long OutputBufferLength; +0x0000 unsigned long InputBufferLength; +0x0008 unsigned long FsControlCode; +0x0010 void *Type3InputBuffer; +0x0018 }; */ /* struct { unsigned char Length[8]; +0x0000 0b 11 00 00 unsigned long Key; +0x0008 unsigned char ByteOffset[8]; +0x0010 42 10 00 00 }; */ /* struct { unsigned long OutputBufferLength; +0x0000 unsigned long InputBufferLength; +0x0008 unsigned long IoControlCode; +0x0010 void *Type3InputBuffer; +0x0018 }; */ /* struct { unsigned long SecurityInformation; +0x0000 unsigned long Length; +0x0008 }; */ /* struct { unsigned long SecurityInformation; +0x0000 void *SecurityDescriptor; +0x0008 }; */ /* struct { unsigned char Vpb[8]; +0x0000 15 11 00 00 unsigned char DeviceObject[8]; +0x0008 d7 10 00 00 }; */ /* struct { unsigned char Srb[8]; +0x0000 19 11 00 00 }; */ /* struct { unsigned long Length; +0x0000 void *StartSid; +0x0008 unsigned char SidList[8]; +0x0010 1d 11 00 00 unsigned long SidListLength; +0x0018 }; */ enum _DEVICE_RELATION_TYPE { BusRelations = 0, EjectionRelations = 1, PowerRelations = 2, RemovalRelations = 3, TargetDeviceRelation = 4, SingleBusRelations = 5, TransportRelations = 6 }; /* struct { unsigned char Type[4]; +0x0000 21 11 00 00 }; */ /* struct { unsigned char InterfaceType[8]; +0x0000 26 11 00 00 unsigned short Size; +0x0008 unsigned short Version; +0x000a unsigned char Interface[8]; +0x0010 28 11 00 00 void *InterfaceSpecificData; +0x0018 }; */ /* struct { unsigned char Capabilities[8]; +0x0000 2c 11 00 00 }; */ /* struct { unsigned char IoResourceRequirementList[8]; +0x0000 30 11 00 00 }; */ /* struct { unsigned long WhichSpace; +0x0000 void *Buffer; +0x0008 unsigned long Offset; +0x0010 unsigned long Length; +0x0018 }; */ /* struct { unsigned char Lock; +0x0000 }; */ enum BUS_QUERY_ID_TYPE { BusQueryDeviceID = 0, BusQueryHardwareIDs = 1, BusQueryCompatibleIDs = 2, BusQueryInstanceID = 3, BusQueryDeviceSerialNumber = 4, BusQueryContainerID = 5 }; /* struct { unsigned char IdType[4]; +0x0000 38 11 00 00 }; */ enum DEVICE_TEXT_TYPE { DeviceTextDescription = 0, DeviceTextLocationInformation = 1 }; /* struct { unsigned char DeviceTextType[8]; +0x0000 3c 11 00 00 unsigned long LocaleId; +0x0008 }; */ enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined = 0, DeviceUsageTypePaging = 1, DeviceUsageTypeHibernation = 2, DeviceUsageTypeDumpFile = 3, DeviceUsageTypeBoot = 4 }; /* struct { unsigned char InPath; +0x0000 unsigned char Reserved[7]; +0x0001 3f 11 00 00 unsigned char Type[8]; +0x0008 41 11 00 00 }; */ enum _SYSTEM_POWER_STATE { PowerSystemUnspecified = 0, PowerSystemWorking = 1, PowerSystemSleeping1 = 2, PowerSystemSleeping2 = 3, PowerSystemSleeping3 = 4, PowerSystemHibernate = 5, PowerSystemShutdown = 6, PowerSystemMaximum = 7 }; /* struct { unsigned char PowerState[4]; +0x0000 45 11 00 00 }; */ /* struct { unsigned char PowerSequence[8]; +0x0000 49 11 00 00 }; */ enum _POWER_STATE_TYPE { SystemPowerState = 0, DevicePowerState = 1 }; enum POWER_ACTION { PowerActionNone = 0, PowerActionReserved = 1, PowerActionSleep = 2, PowerActionHibernate = 3, PowerActionShutdown = 4, PowerActionShutdownReset = 5, PowerActionShutdownOff = 6, PowerActionWarmEject = 7 }; /* struct { unsigned long SystemContext; +0x0000 unsigned char SystemPowerStateContext[8]; +0x0000 4c 11 00 00 unsigned char Type[8]; +0x0008 4e 11 00 00 unsigned char State[8]; +0x0010 4f 11 00 00 unsigned char ShutdownType[8]; +0x0018 51 11 00 00 }; */ /* struct { unsigned char AllocatedResources[8]; +0x0000 55 11 00 00 unsigned char AllocatedResourcesTranslated[8]; +0x0008 55 11 00 00 }; */ /* struct { unsigned long long ProviderId; +0x0000 void *DataPath; +0x0008 unsigned long BufferSize; +0x0010 void *Buffer; +0x0018 }; */ /* struct { void *Argument1; +0x0000 void *Argument2; +0x0008 void *Argument3; +0x0010 void *Argument4; +0x0018 }; */ /* struct { /* unsigned char Create[0]; +0x0000 ec 10 00 00 /* unsigned char CreatePipe[0]; +0x0000 f0 10 00 00 /* unsigned char CreateMailslot[0]; +0x0000 f4 10 00 00 /* unsigned char Read[0]; +0x0000 f6 10 00 00 /* unsigned char Write[0]; +0x0000 f6 10 00 00 /* unsigned char QueryDirectory[0]; +0x0000 fa 10 00 00 /* unsigned char NotifyDirectory[0]; +0x0000 fc 10 00 00 /* unsigned char QueryFile[0]; +0x0000 fe 10 00 00 /* unsigned char SetFile[0]; +0x0000 00 11 00 00 /* unsigned char QueryEa[0]; +0x0000 02 11 00 00 /* unsigned char SetEa[0]; +0x0000 04 11 00 00 /* unsigned char QueryVolume[0]; +0x0000 08 11 00 00 /* unsigned char SetVolume[0]; +0x0000 08 11 00 00 /* unsigned char FileSystemControl[0]; +0x0000 0a 11 00 00 /* unsigned char LockControl[0]; +0x0000 0d 11 00 00 /* unsigned char DeviceIoControl[0]; +0x0000 0f 11 00 00 /* unsigned char QuerySecurity[0]; +0x0000 11 11 00 00 /* unsigned char SetSecurity[0]; +0x0000 13 11 00 00 /* unsigned char MountVolume[0]; +0x0000 17 11 00 00 /* unsigned char VerifyVolume[0]; +0x0000 17 11 00 00 /* unsigned char Scsi[0]; +0x0000 1b 11 00 00 /* unsigned char QueryQuota[0]; +0x0000 1f 11 00 00 /* unsigned char SetQuota[0]; +0x0000 04 11 00 00 /* unsigned char QueryDeviceRelations[0]; +0x0000 23 11 00 00 /* unsigned char QueryInterface[0]; +0x0000 2a 11 00 00 /* unsigned char DeviceCapabilities[0]; +0x0000 2e 11 00 00 /* unsigned char FilterResourceRequirements[0]; +0x0000 32 11 00 00 /* unsigned char ReadWriteConfig[0]; +0x0000 34 11 00 00 /* unsigned char SetLock[0]; +0x0000 36 11 00 00 /* unsigned char QueryId[0]; +0x0000 3a 11 00 00 /* unsigned char QueryDeviceText[0]; +0x0000 3e 11 00 00 /* unsigned char UsageNotification[0]; +0x0000 43 11 00 00 /* unsigned char WaitWake[0]; +0x0000 47 11 00 00 /* unsigned char PowerSequence[0]; +0x0000 4b 11 00 00 /* unsigned char Power[0]; +0x0000 53 11 00 00 /* unsigned char StartDevice[0]; +0x0000 57 11 00 00 /* unsigned char WMI[0]; +0x0000 59 11 00 00 unsigned char Others[32]; +0x0000 5b 11 00 00 }; */ struct _IO_STACK_LOCATION { unsigned char MajorFunction; /* +0x0000 */ unsigned char MinorFunction; /* +0x0001 */ unsigned char Flags; /* +0x0002 */ unsigned char Control; /* +0x0003 */ unsigned char Parameters[32]; /* +0x0008 5d 11 00 00 */ unsigned char DeviceObject[8]; /* +0x0028 d7 10 00 00 */ unsigned char FileObject[8]; /* +0x0030 e0 10 00 00 */ unsigned char CompletionRoutine[8]; /* +0x0038 60 11 00 00 */ void *Context; /* +0x0040 */ }; /* struct { /* unsigned char ListEntry[0]; +0x0000 1f 10 00 00 unsigned char Wcb[72]; +0x0000 72 11 00 00 }; */ struct _DEVICE_OBJECT { short Type; /* +0x0000 */ unsigned short Size; /* +0x0002 */ long ReferenceCount; /* +0x0004 */ unsigned char DriverObject[8]; /* +0x0008 6f 11 00 00 */ unsigned char NextDevice[8]; /* +0x0010 d7 10 00 00 */ unsigned char AttachedDevice[8]; /* +0x0018 d7 10 00 00 */ unsigned char CurrentIrp[8]; /* +0x0020 ca 10 00 00 */ unsigned char Timer[8]; /* +0x0028 71 11 00 00 */ unsigned long Flags; /* +0x0030 */ unsigned long Characteristics; /* +0x0034 */ unsigned char Vpb[8]; /* +0x0038 15 11 00 00 */ void *DeviceExtension; /* +0x0040 */ unsigned long DeviceType; /* +0x0048 */ char StackSize; /* +0x004c */ unsigned char Queue[72]; /* +0x0050 74 11 00 00 */ unsigned long AlignmentRequirement; /* +0x0098 */ unsigned char DeviceQueue[40]; /* +0x00a0 75 11 00 00 */ unsigned char Dpc[64]; /* +0x00c8 66 11 00 00 */ unsigned long ActiveThreadCount; /* +0x0108 */ void *SecurityDescriptor; /* +0x0110 */ unsigned char DeviceLock[24]; /* +0x0118 64 10 00 00 */ unsigned short SectorSize; /* +0x0130 */ unsigned short Spare1; /* +0x0132 */ unsigned char DeviceObjectExtension[8]; /* +0x0138 77 11 00 00 */ void *Reserved; /* +0x0140 */ }; struct _KDPC { unsigned char Type; /* +0x0000 */ unsigned char Importance; /* +0x0001 */ unsigned char Number[6]; /* +0x0002 55 10 00 00 */ unsigned char DpcListEntry[16]; /* +0x0008 1f 10 00 00 */ unsigned char DeferredRoutine[8]; /* +0x0018 6a 11 00 00 */ void *DeferredContext; /* +0x0020 */ void *SystemArgument1; /* +0x0028 */ void *SystemArgument2; /* +0x0030 */ void *DpcData; /* +0x0038 */ }; struct _EVENT_DATA_DESCRIPTOR { unsigned long long Ptr; /* +0x0000 */ unsigned long Size; /* +0x0008 */ unsigned long Reserved; /* +0x000c */ }; struct _EVENT_DESCRIPTOR { unsigned short Id; /* +0x0000 */ unsigned char Version; /* +0x0002 */ unsigned char Channel; /* +0x0003 */ unsigned char Level; /* +0x0004 */ unsigned char Opcode; /* +0x0005 */ unsigned short Task; /* +0x0006 */ unsigned long long Keyword; /* +0x0008 */ }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified = 0, PowerDeviceD0 = 1, PowerDeviceD1 = 2, PowerDeviceD2 = 3, PowerDeviceD3 = 4, PowerDeviceMaximum = 5 }; enum _DEVICE_WAKE_DEPTH { DeviceWakeDepthNotWakeable = 0, DeviceWakeDepthD0 = 1, DeviceWakeDepthD1 = 2, DeviceWakeDepthD2 = 3, DeviceWakeDepthD3hot = 4, DeviceWakeDepthD3cold = 5, DeviceWakeDepthMaximum = 6 }; struct _DMA_ADAPTER { unsigned short Version; /* +0x0000 */ unsigned short Size; /* +0x0002 */ unsigned char DmaOperations[8]; /* +0x0008 a5 11 00 00 */ }; enum _IO_ALLOCATION_ACTION { KeepObject = 1, DeallocateObject = 2, DeallocateObjectKeepRegisters = 3 }; enum DMA_COMPLETION_STATUS { DmaComplete = 0, DmaAborted = 1, DmaError = 2, DmaCancelled = 3 }; struct _DMA_OPERATIONS { unsigned long Size; /* +0x0000 */ unsigned char PutDmaAdapter[8]; /* +0x0008 ab 11 00 00 */ unsigned char AllocateCommonBuffer[8]; /* +0x0010 ae 11 00 00 */ unsigned char FreeCommonBuffer[8]; /* +0x0018 b1 11 00 00 */ unsigned char AllocateAdapterChannel[8]; /* +0x0020 b9 11 00 00 */ unsigned char FlushAdapterBuffers[8]; /* +0x0028 bc 11 00 00 */ unsigned char FreeAdapterChannel[8]; /* +0x0030 ab 11 00 00 */ unsigned char FreeMapRegisters[8]; /* +0x0038 bf 11 00 00 */ unsigned char MapTransfer[8]; /* +0x0040 c2 11 00 00 */ unsigned char GetDmaAlignment[8]; /* +0x0048 c4 11 00 00 */ unsigned char ReadDmaCounter[8]; /* +0x0050 c4 11 00 00 */ unsigned char GetScatterGatherList[8]; /* +0x0058 cc 11 00 00 */ unsigned char PutScatterGatherList[8]; /* +0x0060 cf 11 00 00 */ unsigned char CalculateScatterGatherList[8]; /* +0x0068 d2 11 00 00 */ unsigned char BuildScatterGatherList[8]; /* +0x0070 d5 11 00 00 */ unsigned char BuildMdlFromScatterGatherList[8]; /* +0x0078 d8 11 00 00 */ unsigned char GetDmaAdapterInfo[8]; /* +0x0080 dd 11 00 00 */ unsigned char GetDmaTransferInfo[8]; /* +0x0088 e2 11 00 00 */ unsigned char InitializeDmaTransferContext[8]; /* +0x0090 e5 11 00 00 */ unsigned char AllocateCommonBufferEx[8]; /* +0x0098 e8 11 00 00 */ unsigned char AllocateAdapterChannelEx[8]; /* +0x00a0 eb 11 00 00 */ unsigned char ConfigureAdapterChannel[8]; /* +0x00a8 ee 11 00 00 */ unsigned char CancelAdapterChannel[8]; /* +0x00b0 f1 11 00 00 */ unsigned char MapTransferEx[8]; /* +0x00b8 f9 11 00 00 */ unsigned char GetScatterGatherListEx[8]; /* +0x00c0 fd 11 00 00 */ unsigned char BuildScatterGatherListEx[8]; /* +0x00c8 00 12 00 00 */ unsigned char FlushAdapterBuffersEx[8]; /* +0x00d0 03 12 00 00 */ unsigned char FreeAdapterObject[8]; /* +0x00d8 06 12 00 00 */ unsigned char CancelMappedTransfer[8]; /* +0x00e0 e5 11 00 00 */ }; struct _RTL_SPLAY_LINKS { unsigned char Parent[8]; /* +0x0000 12 12 00 00 */ unsigned char LeftChild[8]; /* +0x0008 12 12 00 00 */ unsigned char RightChild[8]; /* +0x0010 12 12 00 00 */ }; struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT { unsigned char ChainHead[8]; /* +0x0000 20 10 00 00 */ unsigned char PrevLinkage[8]; /* +0x0008 20 10 00 00 */ unsigned long long Signature; /* +0x0010 */ }; struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR { unsigned char HashEntry[24]; /* +0x0000 1c 12 00 00 */ unsigned char ChainHead[8]; /* +0x0018 20 10 00 00 */ unsigned long BucketIndex; /* +0x0020 */ }; struct _RTL_DYNAMIC_HASH_TABLE { unsigned long Flags; /* +0x0000 */ unsigned long Shift; /* +0x0004 */ unsigned long TableSize; /* +0x0008 */ unsigned long Pivot; /* +0x000c */ unsigned long DivisorMask; /* +0x0010 */ unsigned long NumEntries; /* +0x0014 */ unsigned long NonEmptyBuckets; /* +0x0018 */ unsigned long NumEnumerators; /* +0x001c */ void *Directory; /* +0x0020 */ }; struct _KPCR { /* unsigned char NtTib[0]; +0x0000 27 12 00 00 */ unsigned char GdtBase[8]; /* +0x0000 29 12 00 00 */ unsigned char TssBase[8]; /* +0x0008 2b 12 00 00 */ unsigned long long UserRsp; /* +0x0010 */ unsigned char Self[8]; /* +0x0018 26 12 00 00 */ unsigned char CurrentPrcb[8]; /* +0x0020 2d 12 00 00 */ unsigned char LockArray[8]; /* +0x0028 2f 12 00 00 */ void *Used_Self; /* +0x0030 */ unsigned char IdtBase[8]; /* +0x0038 31 12 00 00 */ unsigned char Unused[16]; /* +0x0040 32 12 00 00 */ unsigned char Irql; /* +0x0050 */ unsigned char SecondLevelCacheAssociativity; /* +0x0051 */ unsigned char ObsoleteNumber; /* +0x0052 */ unsigned char Fill0; /* +0x0053 */ unsigned char Unused0[12]; /* +0x0054 33 12 00 00 */ unsigned short MajorVersion; /* +0x0060 */ unsigned short MinorVersion; /* +0x0062 */ unsigned long StallScaleFactor; /* +0x0064 */ unsigned char Unused1[24]; /* +0x0068 34 12 00 00 */ unsigned char KernelReserved[60]; /* +0x0080 35 12 00 00 */ unsigned long SecondLevelCacheSize; /* +0x00bc */ unsigned char HalReserved[64]; /* +0x00c0 36 12 00 00 */ unsigned long Unused2; /* +0x0100 */ void *KdVersionBlock; /* +0x0108 */ void *Unused3; /* +0x0110 */ unsigned char PcrAlign1[96]; /* +0x0118 37 12 00 00 */ }; struct _IO_DRIVER_CREATE_CONTEXT { short Size; /* +0x0000 */ unsigned char ExtraCreateParameter[8]; /* +0x0008 40 12 00 00 */ void *DeviceObjectHint; /* +0x0010 */ unsigned char TxnParameters[8]; /* +0x0018 42 12 00 00 */ }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor = 0, WheaErrTypeMemory = 1, WheaErrTypePCIExpress = 2, WheaErrTypeNMI = 3, WheaErrTypePCIXBus = 4, WheaErrTypePCIXDevice = 5, WheaErrTypeGeneric = 6 }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable = 0, WheaErrSevFatal = 1, WheaErrSevCorrected = 2, WheaErrSevInformational = 3 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE = 0, WheaErrSrcTypeCMC = 1, WheaErrSrcTypeCPE = 2, WheaErrSrcTypeNMI = 3, WheaErrSrcTypePCIe = 4, WheaErrSrcTypeGeneric = 5, WheaErrSrcTypeINIT = 6, WheaErrSrcTypeBOOT = 7, WheaErrSrcTypeSCIGeneric = 8, WheaErrSrcTypeIPFMCA = 9, WheaErrSrcTypeIPFCMC = 10, WheaErrSrcTypeIPFCPE = 11, WheaErrSrcTypeMax = 12 }; enum _WHEA_ERROR_PACKET_DATA_FORMAT { WheaDataFormatIPFSalRecord = 0, WheaDataFormatXPFMCA = 1, WheaDataFormatMemory = 2, WheaDataFormatPCIExpress = 3, WheaDataFormatNMIPort = 4, WheaDataFormatPCIXBus = 5, WheaDataFormatPCIXDevice = 6, WheaDataFormatGeneric = 7, WheaDataFormatMax = 8 }; struct _WHEA_ERROR_PACKET_V2 { unsigned long Signature; /* +0x0000 */ unsigned long Version; /* +0x0004 */ unsigned long Length; /* +0x0008 */ unsigned char Flags[4]; /* +0x000c 47 12 00 00 */ unsigned char ErrorType[4]; /* +0x0010 49 12 00 00 */ unsigned char ErrorSeverity[4]; /* +0x0014 4b 12 00 00 */ unsigned long ErrorSourceId; /* +0x0018 */ unsigned char ErrorSourceType[4]; /* +0x001c 4d 12 00 00 */ unsigned char NotifyType[16]; /* +0x0020 24 11 00 00 */ unsigned long long Context; /* +0x0030 */ unsigned char DataFormat[4]; /* +0x0038 4f 12 00 00 */ unsigned long Reserved1; /* +0x003c */ unsigned long DataOffset; /* +0x0040 */ unsigned long DataLength; /* +0x0044 */ unsigned long PshedDataOffset; /* +0x0048 */ unsigned long PshedDataLength; /* +0x004c */ }; struct _WHEA_ERROR_RECORD { unsigned char Header[128]; /* +0x0000 54 12 00 00 */ unsigned char SectionDescriptor[72]; /* +0x0080 56 12 00 00 */ }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR { unsigned long SectionOffset; /* +0x0000 */ unsigned long SectionLength; /* +0x0004 */ unsigned char Revision[2]; /* +0x0008 5b 12 00 00 */ unsigned char ValidBits[1]; /* +0x000a 5c 12 00 00 */ unsigned char Reserved; /* +0x000b */ unsigned char Flags[4]; /* +0x000c 5d 12 00 00 */ unsigned char SectionType[16]; /* +0x0010 24 11 00 00 */ unsigned char FRUId[16]; /* +0x0020 24 11 00 00 */ unsigned char SectionSeverity[4]; /* +0x0030 4b 12 00 00 */ unsigned char FRUText[20]; /* +0x0034 5e 12 00 00 */ }; struct _GUID { unsigned long Data1; /* +0x0000 */ unsigned short Data2; /* +0x0004 */ unsigned short Data3; /* +0x0006 */ unsigned char Data4[8]; /* +0x0008 66 12 00 00 */ }; enum _INTERFACE_TYPE { InterfaceTypeUndefined = -1, Internal = 0, Isa = 1, Eisa = 2, MicroChannel = 3, TurboChannel = 4, PCIBus = 5, VMEBus = 6, NuBus = 7, PCMCIABus = 8, CBus = 9, MPIBus = 10, MPSABus = 11, ProcessorInternal = 12, InternalPowerBus = 13, PNPISABus = 14, PNPBus = 15, Vmcs = 16, ACPIBus = 17, MaximumInterfaceType = 18 }; struct _IO_RESOURCE_REQUIREMENTS_LIST { unsigned long ListSize; /* +0x0000 */ unsigned char InterfaceType[4]; /* +0x0004 6f 12 00 00 */ unsigned long BusNumber; /* +0x0008 */ unsigned long SlotNumber; /* +0x000c */ unsigned char Reserved[12]; /* +0x0010 33 12 00 00 */ unsigned long AlternativeLists; /* +0x001c */ unsigned char List[40]; /* +0x0020 71 12 00 00 */ }; struct _DISPATCHER_HEADER { unsigned char Type; /* +0x0000 */ unsigned char TimerControlFlags; /* +0x0001 */ /* unsigned char Absolute[0]; +0x0001 74 12 00 00 */ /* unsigned char Wake[0]; +0x0001 75 12 00 00 */ /* unsigned char Coalescable[0]; +0x0001 76 12 00 00 */ /* unsigned char KeepShifting[0]; +0x0001 77 12 00 00 */ /* unsigned char EncodedTolerableDelay[0]; +0x0001 78 12 00 00 */ unsigned char Abandoned; /* +0x0001 */ unsigned char Signalling; /* +0x0001 */ unsigned char ThreadControlFlags; /* +0x0002 */ /* unsigned char CycleProfiling[0]; +0x0002 74 12 00 00 */ /* unsigned char CounterProfiling[0]; +0x0002 75 12 00 00 */ /* unsigned char GroupScheduling[0]; +0x0002 76 12 00 00 */ /* unsigned char AffinitySet[0]; +0x0002 77 12 00 00 */ /* unsigned char Reserved[0]; +0x0002 78 12 00 00 */ unsigned char Hand; /* +0x0002 */ unsigned char Size; /* +0x0002 */ unsigned char TimerMiscFlags; /* +0x0003 */ /* unsigned char Index[0]; +0x0003 79 12 00 00 */ /* unsigned char Inserted[0]; +0x0003 7a 12 00 00 */ /* unsigned char Expired[0]; +0x0003 7b 12 00 00 */ unsigned char DebugActive; /* +0x0003 */ /* unsigned char ActiveDR7[0]; +0x0003 74 12 00 00 */ /* unsigned char Instrumented[0]; +0x0003 75 12 00 00 */ /* unsigned char Reserved2[0]; +0x0003 7c 12 00 00 */ /* unsigned char UmsScheduled[0]; +0x0003 7a 12 00 00 */ /* unsigned char UmsPrimary[0]; +0x0003 7d 12 00 00 */ unsigned char DpcActive; /* +0x0003 */ unsigned char Lock[4]; /* +0x0000 1b 10 00 00 */ long SignalState; /* +0x0004 */ unsigned char WaitListHead[16]; /* +0x0008 1f 10 00 00 */ }; struct _KAPC { unsigned char Type; /* +0x0000 */ unsigned char SpareByte0; /* +0x0001 */ unsigned char Size; /* +0x0002 */ unsigned char SpareByte1; /* +0x0003 */ unsigned long SpareLong0; /* +0x0004 */ unsigned char Thread[8]; /* +0x0008 1a 10 00 00 */ unsigned char ApcListEntry[16]; /* +0x0010 1f 10 00 00 */ unsigned char Reserved[24]; /* +0x0020 34 12 00 00 */ void *NormalContext; /* +0x0038 */ void *SystemArgument1; /* +0x0040 */ void *SystemArgument2; /* +0x0048 */ char ApcStateIndex; /* +0x0050 */ char ApcMode; /* +0x0051 */ unsigned char Inserted; /* +0x0052 */ }; struct _WHEA_ERROR_PACKET_FLAGS { /* unsigned char PreviousError[0]; +0x0000 82 12 00 00 */ /* unsigned char Reserved1[0]; +0x0000 83 12 00 00 */ /* unsigned char HypervisorError[0]; +0x0000 84 12 00 00 */ /* unsigned char Simulated[0]; +0x0000 85 12 00 00 */ /* unsigned char PlatformPfaControl[0]; +0x0000 86 12 00 00 */ /* unsigned char PlatformDirectedOffline[0]; +0x0000 87 12 00 00 */ /* unsigned char Reserved2[0]; +0x0000 88 12 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; struct _NT_TIB { unsigned char ExceptionList[8]; /* +0x0000 8c 12 00 00 */ void *StackBase; /* +0x0008 */ void *StackLimit; /* +0x0010 */ void *SubSystemTib; /* +0x0018 */ void *FiberData; /* +0x0020 */ unsigned long Version; /* +0x0020 */ void *ArbitraryUserPointer; /* +0x0028 */ unsigned char Self[8]; /* +0x0030 8d 12 00 00 */ }; struct _WHEA_REVISION { unsigned char MinorRevision; /* +0x0000 */ unsigned char MajorRevision; /* +0x0001 */ unsigned short AsUSHORT; /* +0x0000 */ }; struct _WHEA_ERROR_RECORD_HEADER { unsigned long Signature; /* +0x0000 */ unsigned char Revision[2]; /* +0x0004 5b 12 00 00 */ unsigned long SignatureEnd; /* +0x0006 */ unsigned short SectionCount; /* +0x000a */ unsigned char Severity[4]; /* +0x000c 4b 12 00 00 */ unsigned char ValidBits[4]; /* +0x0010 92 12 00 00 */ unsigned long Length; /* +0x0014 */ unsigned char Timestamp[8]; /* +0x0018 93 12 00 00 */ unsigned char PlatformId[16]; /* +0x0020 24 11 00 00 */ unsigned char PartitionId[16]; /* +0x0030 24 11 00 00 */ unsigned char CreatorId[16]; /* +0x0040 24 11 00 00 */ unsigned char NotifyType[16]; /* +0x0050 24 11 00 00 */ unsigned long long RecordId; /* +0x0060 */ unsigned char Flags[4]; /* +0x0068 94 12 00 00 */ unsigned char PersistenceInfo[8]; /* +0x006c 95 12 00 00 */ unsigned char Reserved[12]; /* +0x0074 96 12 00 00 */ }; enum _USER_ACTIVITY_PRESENCE { PowerUserPresent = 0, PowerUserNotPresent = 1, PowerUserInactive = 2, PowerUserMaximum = 3, PowerUserInvalid = 3 }; struct _GENERAL_LOOKASIDE { /* unsigned char ListHead[0]; +0x0000 7b 10 00 00 */ unsigned char SingleListHead[16]; /* +0x0000 31 10 00 00 */ unsigned short Depth; /* +0x0010 */ unsigned short MaximumDepth; /* +0x0012 */ unsigned long TotalAllocates; /* +0x0014 */ unsigned long AllocateMisses; /* +0x0018 */ unsigned long AllocateHits; /* +0x0018 */ unsigned long TotalFrees; /* +0x001c */ unsigned long FreeMisses; /* +0x0020 */ unsigned long FreeHits; /* +0x0020 */ unsigned char Type[4]; /* +0x0024 92 10 00 00 */ unsigned long Tag; /* +0x0028 */ unsigned long Size; /* +0x002c */ /* unsigned char AllocateEx[0]; +0x0030 95 10 00 00 */ unsigned char Allocate[8]; /* +0x0030 a8 10 00 00 */ /* unsigned char FreeEx[0]; +0x0038 9c 10 00 00 */ unsigned char Free[8]; /* +0x0038 ac 10 00 00 */ unsigned char ListEntry[16]; /* +0x0040 1f 10 00 00 */ unsigned long LastTotalAllocates; /* +0x0050 */ unsigned long LastAllocateMisses; /* +0x0054 */ unsigned long LastAllocateHits; /* +0x0054 */ unsigned char Future[40]; /* +0x0058 9b 12 00 00 */ }; struct _FILE_OBJECT { short Type; /* +0x0000 */ short Size; /* +0x0002 */ unsigned char DeviceObject[8]; /* +0x0008 d7 10 00 00 */ unsigned char Vpb[8]; /* +0x0010 15 11 00 00 */ void *FsContext; /* +0x0018 */ void *FsContext2; /* +0x0020 */ unsigned char SectionObjectPointer[8]; /* +0x0028 9f 12 00 00 */ void *PrivateCacheMap; /* +0x0030 */ long FinalStatus; /* +0x0038 */ unsigned char RelatedFileObject[8]; /* +0x0040 e0 10 00 00 */ unsigned char LockOperation; /* +0x0048 */ unsigned char DeletePending; /* +0x0049 */ unsigned char ReadAccess; /* +0x004a */ unsigned char WriteAccess; /* +0x004b */ unsigned char DeleteAccess; /* +0x004c */ unsigned char SharedRead; /* +0x004d */ unsigned char SharedWrite; /* +0x004e */ unsigned char SharedDelete; /* +0x004f */ unsigned long Flags; /* +0x0050 */ unsigned char FileName[16]; /* +0x0058 36 10 00 00 */ unsigned char CurrentByteOffset[8]; /* +0x0068 42 10 00 00 */ unsigned long Waiters; /* +0x0070 */ unsigned long Busy; /* +0x0074 */ void *LastLock; /* +0x0078 */ unsigned char Lock[24]; /* +0x0080 64 10 00 00 */ unsigned char Event[24]; /* +0x0098 64 10 00 00 */ unsigned char CompletionContext[8]; /* +0x00b0 a1 12 00 00 */ unsigned long long IrpListLock; /* +0x00b8 */ unsigned char IrpList[16]; /* +0x00c0 1f 10 00 00 */ void *FileObjectExtension; /* +0x00d0 */ }; struct _IO_COMPLETION_CONTEXT { void *Port; /* +0x0000 */ void *Key; /* +0x0008 */ }; struct _INTERFACE { unsigned short Size; /* +0x0000 */ unsigned short Version; /* +0x0002 */ void *Context; /* +0x0008 */ unsigned char InterfaceReference[8]; /* +0x0010 ac 10 00 00 */ unsigned char InterfaceDereference[8]; /* +0x0018 ac 10 00 00 */ }; struct _DRIVER_OBJECT { short Type; /* +0x0000 */ short Size; /* +0x0002 */ unsigned char DeviceObject[8]; /* +0x0008 d7 10 00 00 */ unsigned long Flags; /* +0x0010 */ void *DriverStart; /* +0x0018 */ unsigned long DriverSize; /* +0x0020 */ void *DriverSection; /* +0x0028 */ unsigned char DriverExtension[8]; /* +0x0030 a9 12 00 00 */ unsigned char DriverName[16]; /* +0x0038 36 10 00 00 */ unsigned char HardwareDatabase[8]; /* +0x0048 37 10 00 00 */ unsigned char FastIoDispatch[8]; /* +0x0050 ab 12 00 00 */ unsigned char DriverInit[8]; /* +0x0058 ae 12 00 00 */ unsigned char DriverStartIo[8]; /* +0x0060 da 10 00 00 */ unsigned char DriverUnload[8]; /* +0x0068 b1 12 00 00 */ unsigned char MajorFunction[224]; /* +0x0070 b4 12 00 00 */ }; struct _DMA_TRANSFER_INFO { unsigned long Version; /* +0x0000 */ unsigned char V1[12]; /* +0x0004 b7 12 00 00 */ }; struct _DRIVER_EXTENSION { unsigned char DriverObject[8]; /* +0x0000 6f 11 00 00 */ unsigned char AddDevice[8]; /* +0x0008 bc 12 00 00 */ unsigned long Count; /* +0x0010 */ unsigned char ServiceKeyName[16]; /* +0x0018 36 10 00 00 */ }; struct _KSPIN_LOCK_QUEUE { unsigned char Next[8]; /* +0x0000 bf 12 00 00 */ unsigned char Lock[8]; /* +0x0008 c0 12 00 00 */ }; struct _DMA_ADAPTER_INFO { unsigned long Version; /* +0x0000 */ unsigned char V1[20]; /* +0x0004 c3 12 00 00 */ }; struct _CM_RESOURCE_LIST { unsigned long Count; /* +0x0000 */ unsigned char List[36]; /* +0x0004 c7 12 00 00 */ }; struct _CM_FULL_RESOURCE_DESCRIPTOR { unsigned char InterfaceType[4]; /* +0x0000 6f 12 00 00 */ unsigned long BusNumber; /* +0x0004 */ unsigned char PartialResourceList[28]; /* +0x0008 ca 12 00 00 */ }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS { /* unsigned char Primary[0]; +0x0000 82 12 00 00 */ /* unsigned char ContainmentWarning[0]; +0x0000 83 12 00 00 */ /* unsigned char Reset[0]; +0x0000 84 12 00 00 */ /* unsigned char ThresholdExceeded[0]; +0x0000 85 12 00 00 */ /* unsigned char ResourceNotAvailable[0]; +0x0000 86 12 00 00 */ /* unsigned char LatentError[0]; +0x0000 87 12 00 00 */ /* unsigned char Reserved[0]; +0x0000 88 12 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; struct _POWER_SEQUENCE { unsigned long SequenceD1; /* +0x0000 */ unsigned long SequenceD2; /* +0x0004 */ unsigned long SequenceD3; /* +0x0008 */ }; struct _IO_STATUS_BLOCK { long Status; /* +0x0000 */ void *Pointer; /* +0x0000 */ unsigned long long Information; /* +0x0008 */ }; struct _KDEVICE_QUEUE_ENTRY { unsigned char DeviceListEntry[16]; /* +0x0000 1f 10 00 00 */ unsigned long SortKey; /* +0x0010 */ unsigned char Inserted; /* +0x0014 */ }; struct _DEVICE_CAPABILITIES { unsigned short Size; /* +0x0000 */ unsigned short Version; /* +0x0002 */ /* unsigned char DeviceD1[0]; +0x0004 82 12 00 00 */ /* unsigned char DeviceD2[0]; +0x0004 83 12 00 00 */ /* unsigned char LockSupported[0]; +0x0004 84 12 00 00 */ /* unsigned char EjectSupported[0]; +0x0004 85 12 00 00 */ /* unsigned char Removable[0]; +0x0004 86 12 00 00 */ /* unsigned char DockDevice[0]; +0x0004 87 12 00 00 */ /* unsigned char UniqueID[0]; +0x0004 d5 12 00 00 */ /* unsigned char SilentInstall[0]; +0x0004 d6 12 00 00 */ /* unsigned char RawDeviceOK[0]; +0x0004 d7 12 00 00 */ /* unsigned char SurpriseRemovalOK[0]; +0x0004 d8 12 00 00 */ /* unsigned char WakeFromD0[0]; +0x0004 d9 12 00 00 */ /* unsigned char WakeFromD1[0]; +0x0004 da 12 00 00 */ /* unsigned char WakeFromD2[0]; +0x0004 db 12 00 00 */ /* unsigned char WakeFromD3[0]; +0x0004 dc 12 00 00 */ /* unsigned char HardwareDisabled[0]; +0x0004 dd 12 00 00 */ /* unsigned char NonDynamic[0]; +0x0004 de 12 00 00 */ /* unsigned char WarmEjectSupported[0]; +0x0004 df 12 00 00 */ /* unsigned char NoDisplayInUI[0]; +0x0004 e0 12 00 00 */ /* unsigned char Reserved1[0]; +0x0004 e1 12 00 00 */ unsigned char Reserved[4]; /* +0x0004 e2 12 00 00 */ unsigned long Address; /* +0x0008 */ unsigned long UINumber; /* +0x000c */ unsigned char DeviceState[28]; /* +0x0010 e3 12 00 00 */ unsigned char SystemWake[4]; /* +0x002c 45 11 00 00 */ unsigned char DeviceWake[4]; /* +0x0030 9c 11 00 00 */ unsigned long D1Latency; /* +0x0034 */ unsigned long D2Latency; /* +0x0038 */ unsigned long D3Latency; /* +0x003c */ }; struct _WHEA_ERROR_RECORD_HEADER_VALIDBITS { /* unsigned char PlatformId[0]; +0x0000 82 12 00 00 */ /* unsigned char Timestamp[0]; +0x0000 83 12 00 00 */ /* unsigned char PartitionId[0]; +0x0000 84 12 00 00 */ /* unsigned char Reserved[0]; +0x0000 e6 12 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; struct _CM_PARTIAL_RESOURCE_LIST { unsigned short Version; /* +0x0000 */ unsigned short Revision; /* +0x0002 */ unsigned long Count; /* +0x0004 */ unsigned char PartialDescriptors[20]; /* +0x0008 ea 12 00 00 */ }; struct _SECTION_OBJECT_POINTERS { void *DataSectionObject; /* +0x0000 */ void *SharedCacheMap; /* +0x0008 */ void *ImageSectionObject; /* +0x0010 */ }; struct _KDEVICE_QUEUE { short Type; /* +0x0000 */ short Size; /* +0x0002 */ unsigned char DeviceListHead[16]; /* +0x0008 1f 10 00 00 */ unsigned long long Lock; /* +0x0018 */ unsigned char Busy; /* +0x0020 */ /* unsigned char Reserved[0]; +0x0020 ef 12 00 00 */ unsigned char Hint[8]; /* +0x0020 f0 12 00 00 */ }; struct _SYSTEM_POWER_STATE_CONTEXT { /* unsigned char Reserved1[0]; +0x0000 f3 12 00 00 */ /* unsigned char TargetSystemState[0]; +0x0000 f4 12 00 00 */ /* unsigned char EffectiveSystemState[0]; +0x0000 f5 12 00 00 */ /* unsigned char CurrentSystemState[0]; +0x0000 f6 12 00 00 */ /* unsigned char IgnoreHibernationPath[0]; +0x0000 f7 12 00 00 */ /* unsigned char PseudoTransition[0]; +0x0000 f8 12 00 00 */ /* unsigned char Reserved2[0]; +0x0000 f9 12 00 00 */ unsigned long ContextAsUlong; /* +0x0000 */ }; struct _SCATTER_GATHER_LIST { unsigned long NumberOfElements; /* +0x0000 */ unsigned long long Reserved; /* +0x0008 */ /* unsigned char Elements[0]; +0x0010 fd 12 00 00 */ }; struct _DMA_TRANSFER_INFO_V1 { unsigned long MapRegisterCount; /* +0x0000 */ unsigned long ScatterGatherElementCount; /* +0x0004 */ unsigned long ScatterGatherListSize; /* +0x0008 */ }; /* struct { /* unsigned char ProcessorError[0]; +0x0000 03 13 00 00 /* unsigned char MemoryError[0]; +0x0000 04 13 00 00 /* unsigned char NmiError[0]; +0x0000 05 13 00 00 /* unsigned char PciExpressError[0]; +0x0000 06 13 00 00 /* unsigned char PciXBusError[0]; +0x0000 07 13 00 00 unsigned char PciXDeviceError[208]; +0x0000 08 13 00 00 }; */ enum _WHEA_RAW_DATA_FORMAT { WheaRawDataFormatIPFSalRecord = 0, WheaRawDataFormatIA32MCA = 1, WheaRawDataFormatIntel64MCA = 2, WheaRawDataFormatAMD64MCA = 3, WheaRawDataFormatMemory = 4, WheaRawDataFormatPCIExpress = 5, WheaRawDataFormatNMIPort = 6, WheaRawDataFormatPCIXBus = 7, WheaRawDataFormatPCIXDevice = 8, WheaRawDataFormatGeneric = 9, WheaRawDataFormatMax = 10 }; struct _WHEA_ERROR_PACKET_V1 { unsigned long Signature; /* +0x0000 */ unsigned char Flags[4]; /* +0x0004 47 12 00 00 */ unsigned long Size; /* +0x0008 */ unsigned long RawDataLength; /* +0x000c */ unsigned long long Reserved1; /* +0x0010 */ unsigned long long Context; /* +0x0018 */ unsigned char ErrorType[4]; /* +0x0020 49 12 00 00 */ unsigned char ErrorSeverity[4]; /* +0x0024 4b 12 00 00 */ unsigned long ErrorSourceId; /* +0x0028 */ unsigned char ErrorSourceType[4]; /* +0x002c 4d 12 00 00 */ unsigned long Reserved2; /* +0x0030 */ unsigned long Version; /* +0x0034 */ unsigned long long Cpu; /* +0x0038 */ unsigned char u[208]; /* +0x0040 0a 13 00 00 */ unsigned char RawDataFormat[4]; /* +0x0110 0c 13 00 00 */ unsigned long RawDataOffset; /* +0x0114 */ unsigned char RawData[1]; /* +0x0118 0d 13 00 00 */ }; struct _WHEA_TIMESTAMP { /* unsigned char Seconds[0]; +0x0000 10 13 00 00 */ /* unsigned char Minutes[0]; +0x0000 11 13 00 00 */ /* unsigned char Hours[0]; +0x0000 12 13 00 00 */ /* unsigned char Precise[0]; +0x0000 13 13 00 00 */ /* unsigned char Reserved[0]; +0x0000 14 13 00 00 */ /* unsigned char Day[0]; +0x0000 15 13 00 00 */ /* unsigned char Month[0]; +0x0000 16 13 00 00 */ /* unsigned char Year[0]; +0x0000 17 13 00 00 */ /* unsigned char Century[0]; +0x0000 18 13 00 00 */ unsigned char AsLARGE_INTEGER[8]; /* +0x0000 42 10 00 00 */ }; struct _VPB { short Type; /* +0x0000 */ short Size; /* +0x0002 */ unsigned short Flags; /* +0x0004 */ unsigned short VolumeLabelLength; /* +0x0006 */ unsigned char DeviceObject[8]; /* +0x0008 d7 10 00 00 */ unsigned char RealDevice[8]; /* +0x0010 d7 10 00 00 */ unsigned long SerialNumber; /* +0x0018 */ unsigned long ReferenceCount; /* +0x001c */ unsigned char VolumeLabel[64]; /* +0x0020 1b 13 00 00 */ }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached = 2 }; struct _POWER_STATE { /* unsigned char SystemState[0]; +0x0000 45 11 00 00 */ unsigned char DeviceState[4]; /* +0x0000 9c 11 00 00 */ }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS { /* unsigned char FRUId[0]; +0x0000 74 12 00 00 */ /* unsigned char FRUText[0]; +0x0000 75 12 00 00 */ /* unsigned char Reserved[0]; +0x0000 22 13 00 00 */ unsigned char AsUCHAR; /* +0x0000 */ }; struct _WHEA_NMI_ERROR_SECTION { unsigned char Data[8]; /* +0x0000 66 12 00 00 */ unsigned char Flags[4]; /* +0x0008 25 13 00 00 */ }; enum _MODE { KernelMode = 0, UserMode = 1, MaximumMode = 2 }; struct _IO_RESOURCE_LIST { unsigned short Version; /* +0x0000 */ unsigned short Revision; /* +0x0002 */ unsigned long Count; /* +0x0004 */ unsigned char Descriptors[32]; /* +0x0008 2b 13 00 00 */ }; struct _WHEA_ERROR_RECORD_HEADER_FLAGS { /* unsigned char Recovered[0]; +0x0000 82 12 00 00 */ /* unsigned char PreviousError[0]; +0x0000 83 12 00 00 */ /* unsigned char Simulated[0]; +0x0000 84 12 00 00 */ /* unsigned char Reserved[0]; +0x0000 e6 12 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; /* struct { unsigned char Start[8]; +0x0000 42 10 00 00 unsigned long Length; +0x0008 }; */ /* struct { unsigned long Level; +0x0000 unsigned long Vector; +0x0004 unsigned long long Affinity; +0x0008 }; */ /* struct { unsigned short Reserved; +0x0000 unsigned short MessageCount; +0x0002 unsigned long Vector; +0x0004 unsigned long long Affinity; +0x0008 }; */ /* struct { /* unsigned char Raw[0]; +0x0000 35 13 00 00 unsigned char Translated[16]; +0x0000 33 13 00 00 }; */ /* struct { unsigned long Channel; +0x0000 unsigned long Port; +0x0004 unsigned long Reserved1; +0x0008 }; */ /* struct { unsigned long Channel; +0x0000 unsigned long RequestLine; +0x0004 unsigned long Reserved1; +0x0008 }; */ /* struct { unsigned char Data[12]; +0x0000 33 12 00 00 }; */ /* struct { unsigned long Start; +0x0000 unsigned long Length; +0x0004 unsigned long Reserved; +0x0008 }; */ /* struct { unsigned long DataSize; +0x0000 unsigned long Reserved1; +0x0004 unsigned long Reserved2; +0x0008 }; */ /* struct { unsigned char Start[8]; +0x0000 42 10 00 00 unsigned long Length40; +0x0008 }; */ /* struct { unsigned char Start[8]; +0x0000 42 10 00 00 unsigned long Length48; +0x0008 }; */ /* struct { unsigned char Start[8]; +0x0000 42 10 00 00 unsigned long Length64; +0x0008 }; */ /* struct { unsigned char Class; +0x0000 unsigned char Type; +0x0001 unsigned char Reserved1; +0x0002 unsigned char Reserved2; +0x0003 unsigned long IdLowPart; +0x0004 unsigned long IdHighPart; +0x0008 }; */ /* struct { /* unsigned char Generic[0]; +0x0000 31 13 00 00 /* unsigned char Port[0]; +0x0000 31 13 00 00 /* unsigned char Interrupt[0]; +0x0000 33 13 00 00 /* unsigned char MessageInterrupt[0]; +0x0000 37 13 00 00 /* unsigned char Memory[0]; +0x0000 31 13 00 00 /* unsigned char Dma[0]; +0x0000 39 13 00 00 /* unsigned char DmaV3[0]; +0x0000 3b 13 00 00 /* unsigned char DevicePrivate[0]; +0x0000 3d 13 00 00 /* unsigned char BusNumber[0]; +0x0000 3f 13 00 00 /* unsigned char DeviceSpecificData[0]; +0x0000 41 13 00 00 /* unsigned char Memory40[0]; +0x0000 43 13 00 00 /* unsigned char Memory48[0]; +0x0000 45 13 00 00 /* unsigned char Memory64[0]; +0x0000 47 13 00 00 unsigned char Connection[16]; +0x0000 49 13 00 00 }; */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { unsigned char Type; /* +0x0000 */ unsigned char ShareDisposition; /* +0x0001 */ unsigned short Flags; /* +0x0002 */ unsigned char u[16]; /* +0x0004 4b 13 00 00 */ }; struct _WAIT_CONTEXT_BLOCK { /* unsigned char WaitQueueEntry[0]; +0x0000 db 10 00 00 */ unsigned char DmaWaitEntry[16]; /* +0x0000 1f 10 00 00 */ unsigned long NumberOfChannels; /* +0x0010 */ /* unsigned char SyncCallback[0]; +0x0014 82 12 00 00 */ /* unsigned char DmaContext[0]; +0x0014 83 12 00 00 */ unsigned char Reserved[4]; /* +0x0014 4e 13 00 00 */ unsigned char DeviceRoutine[8]; /* +0x0018 b6 11 00 00 */ void *DeviceContext; /* +0x0020 */ unsigned long NumberOfMapRegisters; /* +0x0028 */ void *DeviceObject; /* +0x0030 */ void *CurrentIrp; /* +0x0038 */ unsigned char BufferChainingDpc[8]; /* +0x0040 67 11 00 00 */ }; struct _RTL_DYNAMIC_HASH_TABLE_ENTRY { unsigned char Linkage[16]; /* +0x0000 1f 10 00 00 */ unsigned long long Signature; /* +0x0010 */ }; enum _INTERLOCKED_RESULT { ResultNegative = 1, ResultZero = 0, ResultPositive = 2 }; struct _FAST_IO_DISPATCH { unsigned long SizeOfFastIoDispatch; /* +0x0000 */ unsigned char FastIoCheckIfPossible[8]; /* +0x0008 58 13 00 00 */ unsigned char FastIoRead[8]; /* +0x0010 5b 13 00 00 */ unsigned char FastIoWrite[8]; /* +0x0018 5b 13 00 00 */ unsigned char FastIoQueryBasicInfo[8]; /* +0x0020 60 13 00 00 */ unsigned char FastIoQueryStandardInfo[8]; /* +0x0028 65 13 00 00 */ unsigned char FastIoLock[8]; /* +0x0030 68 13 00 00 */ unsigned char FastIoUnlockSingle[8]; /* +0x0038 6b 13 00 00 */ unsigned char FastIoUnlockAll[8]; /* +0x0040 6e 13 00 00 */ unsigned char FastIoUnlockAllByKey[8]; /* +0x0048 71 13 00 00 */ unsigned char FastIoDeviceControl[8]; /* +0x0050 74 13 00 00 */ unsigned char AcquireFileForNtCreateSection[8]; /* +0x0058 77 13 00 00 */ unsigned char ReleaseFileForNtCreateSection[8]; /* +0x0060 77 13 00 00 */ unsigned char FastIoDetachDevice[8]; /* +0x0068 7a 13 00 00 */ unsigned char FastIoQueryNetworkOpenInfo[8]; /* +0x0070 7f 13 00 00 */ unsigned char AcquireForModWrite[8]; /* +0x0078 85 13 00 00 */ unsigned char MdlRead[8]; /* +0x0080 88 13 00 00 */ unsigned char MdlReadComplete[8]; /* +0x0088 8b 13 00 00 */ unsigned char PrepareMdlWrite[8]; /* +0x0090 88 13 00 00 */ unsigned char MdlWriteComplete[8]; /* +0x0098 8e 13 00 00 */ unsigned char FastIoReadCompressed[8]; /* +0x00a0 93 13 00 00 */ unsigned char FastIoWriteCompressed[8]; /* +0x00a8 93 13 00 00 */ unsigned char MdlReadCompleteCompressed[8]; /* +0x00b0 8b 13 00 00 */ unsigned char MdlWriteCompleteCompressed[8]; /* +0x00b8 8e 13 00 00 */ unsigned char FastIoQueryOpen[8]; /* +0x00c0 96 13 00 00 */ unsigned char ReleaseForModWrite[8]; /* +0x00c8 99 13 00 00 */ unsigned char AcquireForCcFlush[8]; /* +0x00d0 9c 13 00 00 */ unsigned char ReleaseForCcFlush[8]; /* +0x00d8 9c 13 00 00 */ }; struct _DMA_ADAPTER_INFO_V1 { unsigned long ReadDmaCounterAvailable; /* +0x0000 */ unsigned long ScatterGatherLimit; /* +0x0004 */ unsigned long DmaAddressWidth; /* +0x0008 */ unsigned long Flags; /* +0x000c */ unsigned long MinimumTransferUnit; /* +0x0010 */ }; struct _FILE_BASIC_INFORMATION { unsigned char CreationTime[8]; /* +0x0000 42 10 00 00 */ unsigned char LastAccessTime[8]; /* +0x0008 42 10 00 00 */ unsigned char LastWriteTime[8]; /* +0x0010 42 10 00 00 */ unsigned char ChangeTime[8]; /* +0x0018 42 10 00 00 */ unsigned long FileAttributes; /* +0x0020 */ }; enum _WHEA_PCIEXPRESS_DEVICE_TYPE { WheaPciExpressEndpoint = 0, WheaPciExpressLegacyEndpoint = 1, WheaPciExpressRootPort = 4, WheaPciExpressUpstreamSwitchPort = 5, WheaPciExpressDownstreamSwitchPort = 6, WheaPciExpressToPciXBridge = 7, WheaPciXToExpressBridge = 8, WheaPciExpressRootComplexIntegratedEndpoint = 9, WheaPciExpressRootComplexEventCollector = 10 }; struct _WHEA_PCIEXPRESS_ERROR_SECTION { unsigned char ValidBits[8]; /* +0x0000 a3 13 00 00 */ unsigned char PortType[4]; /* +0x0008 a5 13 00 00 */ unsigned char Version[4]; /* +0x000c a6 13 00 00 */ unsigned char CommandStatus[4]; /* +0x0010 a7 13 00 00 */ unsigned long Reserved; /* +0x0014 */ unsigned char DeviceId[16]; /* +0x0018 a8 13 00 00 */ unsigned long long DeviceSerialNumber; /* +0x0028 */ unsigned char BridgeControlStatus[4]; /* +0x0030 a9 13 00 00 */ unsigned char ExpressCapability[60]; /* +0x0034 aa 13 00 00 */ unsigned char AerInfo[96]; /* +0x0070 ab 13 00 00 */ }; struct _IO_SECURITY_CONTEXT { unsigned char SecurityQos[8]; /* +0x0000 af 13 00 00 */ unsigned char AccessState[8]; /* +0x0008 b1 13 00 00 */ unsigned long DesiredAccess; /* +0x0010 */ unsigned long FullCreateOptions; /* +0x0014 */ }; struct _MAILSLOT_CREATE_PARAMETERS { unsigned long MailslotQuota; /* +0x0000 */ unsigned long MaximumMessageSize; /* +0x0004 */ unsigned char ReadTimeout[8]; /* +0x0008 42 10 00 00 */ unsigned char TimeoutSpecified; /* +0x0010 */ }; struct _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS { unsigned short BridgeSecondaryStatus; /* +0x0000 */ unsigned short BridgeControl; /* +0x0002 */ unsigned long AsULONG; /* +0x0000 */ }; struct _NAMED_PIPE_CREATE_PARAMETERS { unsigned long NamedPipeType; /* +0x0000 */ unsigned long ReadMode; /* +0x0004 */ unsigned long CompletionMode; /* +0x0008 */ unsigned long MaximumInstances; /* +0x000c */ unsigned long InboundQuota; /* +0x0010 */ unsigned long OutboundQuota; /* +0x0014 */ unsigned char DefaultTimeout[8]; /* +0x0018 42 10 00 00 */ unsigned char TimeoutSpecified; /* +0x0020 */ }; struct _WHEA_PCIEXPRESS_DEVICE_ID { unsigned short VendorID; /* +0x0000 */ unsigned short DeviceID; /* +0x0002 */ /* unsigned char ClassCode[0]; +0x0004 ba 13 00 00 */ unsigned char FunctionNumber[4]; /* +0x0004 bb 13 00 00 */ /* unsigned char DeviceNumber[0]; +0x0008 f3 12 00 00 */ /* unsigned char Segment[0]; +0x0008 bc 13 00 00 */ unsigned char PrimaryBusNumber[4]; /* +0x0008 bb 13 00 00 */ /* unsigned char SecondaryBusNumber[0]; +0x000c f3 12 00 00 */ /* unsigned char Reserved1[0]; +0x000c bd 13 00 00 */ /* unsigned char SlotNumber[0]; +0x000c be 13 00 00 */ unsigned char Reserved2[4]; /* +0x000c bb 13 00 00 */ }; struct _WHEA_PROCESSOR_GENERIC_ERROR_SECTION { unsigned char ValidBits[8]; /* +0x0000 c1 13 00 00 */ unsigned char ProcessorType; /* +0x0008 */ unsigned char InstructionSet; /* +0x0009 */ unsigned char ErrorType; /* +0x000a */ unsigned char Operation; /* +0x000b */ unsigned char Flags; /* +0x000c */ unsigned char Level; /* +0x000d */ unsigned short Reserved; /* +0x000e */ unsigned long long CPUVersion; /* +0x0010 */ unsigned char CPUBrandString[128]; /* +0x0018 c2 13 00 00 */ unsigned long long ProcessorId; /* +0x0098 */ unsigned long long TargetAddress; /* +0x00a0 */ unsigned long long RequesterId; /* +0x00a8 */ unsigned long long ResponderId; /* +0x00b0 */ unsigned long long InstructionPointer; /* +0x00b8 */ }; struct _DEVOBJ_EXTENSION { short Type; /* +0x0000 */ unsigned short Size; /* +0x0002 */ unsigned char DeviceObject[8]; /* +0x0008 d7 10 00 00 */ }; struct _WHEA_PCIEXPRESS_COMMAND_STATUS { unsigned short Command; /* +0x0000 */ unsigned short Status; /* +0x0002 */ unsigned long AsULONG; /* +0x0000 */ }; struct _TXN_PARAMETER_BLOCK { unsigned short Length; /* +0x0000 */ unsigned short TxFsContext; /* +0x0002 */ void *TransactionObject; /* +0x0008 */ }; struct _SCATTER_GATHER_ELEMENT { unsigned char Address[8]; /* +0x0000 42 10 00 00 */ unsigned long Length; /* +0x0008 */ unsigned long long Reserved; /* +0x0010 */ }; struct _WHEA_PCIEXPRESS_VERSION { unsigned char MinorVersion; /* +0x0000 */ unsigned char MajorVersion; /* +0x0001 */ unsigned short Reserved; /* +0x0002 */ unsigned long AsULONG; /* +0x0000 */ }; struct _FILE_NETWORK_OPEN_INFORMATION { unsigned char CreationTime[8]; /* +0x0000 42 10 00 00 */ unsigned char LastAccessTime[8]; /* +0x0008 42 10 00 00 */ unsigned char LastWriteTime[8]; /* +0x0010 42 10 00 00 */ unsigned char ChangeTime[8]; /* +0x0018 42 10 00 00 */ unsigned char AllocationSize[8]; /* +0x0020 42 10 00 00 */ unsigned char EndOfFile[8]; /* +0x0028 42 10 00 00 */ unsigned long FileAttributes; /* +0x0030 */ }; struct _WHEA_PCIXDEVICE_ERROR_SECTION { unsigned char ValidBits[8]; /* +0x0000 d1 13 00 00 */ unsigned char ErrorStatus[8]; /* +0x0008 d2 13 00 00 */ unsigned char IdInfo[16]; /* +0x0010 d3 13 00 00 */ unsigned long MemoryNumber; /* +0x0020 */ unsigned long IoNumber; /* +0x0024 */ unsigned char RegisterDataPairs[16]; /* +0x0028 d5 13 00 00 */ }; struct _WHEA_NMI_ERROR_SECTION_FLAGS { /* unsigned char HypervisorError[0]; +0x0000 82 12 00 00 */ /* unsigned char Reserved[0]; +0x0000 d8 13 00 00 */ unsigned long AsULONG; /* +0x0000 */ }; /* struct { /* unsigned char InitialPrivilegeSet[0]; +0x0000 dc 13 00 00 unsigned char PrivilegeSet[44]; +0x0000 dd 13 00 00 }; */ struct _ACCESS_STATE { unsigned char OperationID[8]; /* +0x0000 23 12 00 00 */ unsigned char SecurityEvaluated; /* +0x0008 */ unsigned char GenerateAudit; /* +0x0009 */ unsigned char GenerateOnClose; /* +0x000a */ unsigned char PrivilegesAllocated; /* +0x000b */ unsigned long Flags; /* +0x000c */ unsigned long RemainingDesiredAccess; /* +0x0010 */ unsigned long PreviouslyGrantedAccess; /* +0x0014 */ unsigned long OriginalDesiredAccess; /* +0x0018 */ unsigned char SubjectSecurityContext[32]; /* +0x0020 db 13 00 00 */ void *SecurityDescriptor; /* +0x0040 */ void *AuxData; /* +0x0048 */ unsigned char Privileges[44]; /* +0x0050 df 13 00 00 */ unsigned char AuditPrivileges; /* +0x007c */ unsigned char ObjectName[16]; /* +0x0080 36 10 00 00 */ unsigned char ObjectTypeName[16]; /* +0x0090 36 10 00 00 */ }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey = 0, RegNtPreDeleteKey = 0, RegNtSetValueKey = 1, RegNtPreSetValueKey = 1, RegNtDeleteValueKey = 2, RegNtPreDeleteValueKey = 2, RegNtSetInformationKey = 3, RegNtPreSetInformationKey = 3, RegNtRenameKey = 4, RegNtPreRenameKey = 4, RegNtEnumerateKey = 5, RegNtPreEnumerateKey = 5, RegNtEnumerateValueKey = 6, RegNtPreEnumerateValueKey = 6, RegNtQueryKey = 7, RegNtPreQueryKey = 7, RegNtQueryValueKey = 8, RegNtPreQueryValueKey = 8, RegNtQueryMultipleValueKey = 9, RegNtPreQueryMultipleValueKey = 9, RegNtPreCreateKey = 10, RegNtPostCreateKey = 11, RegNtPreOpenKey = 12, RegNtPostOpenKey = 13, RegNtKeyHandleClose = 14, RegNtPreKeyHandleClose = 14, RegNtPostDeleteKey = 15, RegNtPostSetValueKey = 16, RegNtPostDeleteValueKey = 17, RegNtPostSetInformationKey = 18, RegNtPostRenameKey = 19, RegNtPostEnumerateKey = 20, RegNtPostEnumerateValueKey = 21, RegNtPostQueryKey = 22, RegNtPostQueryValueKey = 23, RegNtPostQueryMultipleValueKey = 24, RegNtPostKeyHandleClose = 25, RegNtPreCreateKeyEx = 26, RegNtPostCreateKeyEx = 27, RegNtPreOpenKeyEx = 28, RegNtPostOpenKeyEx = 29, RegNtPreFlushKey = 30, RegNtPostFlushKey = 31, RegNtPreLoadKey = 32, RegNtPostLoadKey = 33, RegNtPreUnLoadKey = 34, RegNtPostUnLoadKey = 35, RegNtPreQueryKeySecurity = 36, RegNtPostQueryKeySecurity = 37, RegNtPreSetKeySecurity = 38, RegNtPostSetKeySecurity = 39, RegNtCallbackObjectContextCleanup = 40, RegNtPreRestoreKey = 41, RegNtPostRestoreKey = 42, RegNtPreSaveKey = 43, RegNtPostSaveKey = 44, RegNtPreReplaceKey = 45, RegNtPostReplaceKey = 46, MaxRegNtNotifyClass = 47 }; struct _ERESOURCE { unsigned char SystemResourcesList[16]; /* +0x0000 1f 10 00 00 */ unsigned char OwnerTable[8]; /* +0x0010 e5 13 00 00 */ short ActiveCount; /* +0x0018 */ unsigned short Flag; /* +0x001a */ unsigned char ReservedLowFlags; /* +0x001a */ unsigned char WaiterPriority; /* +0x001b */ unsigned char SharedWaiters[8]; /* +0x0020 e7 13 00 00 */ unsigned char ExclusiveWaiters[8]; /* +0x0028 68 10 00 00 */ unsigned char OwnerEntry[16]; /* +0x0030 e4 13 00 00 */ unsigned long ActiveEntries; /* +0x0040 */ unsigned long ContentionCount; /* +0x0044 */ unsigned long NumberOfSharedWaiters; /* +0x0048 */ unsigned long NumberOfExclusiveWaiters; /* +0x004c */ void *Reserved2; /* +0x0050 */ void *Address; /* +0x0058 */ unsigned long long CreatorBackTraceIndex; /* +0x0058 */ unsigned long long SpinLock; /* +0x0060 */ }; struct _KSEMAPHORE { unsigned char Header[24]; /* +0x0000 6f 10 00 00 */ long Limit; /* +0x0018 */ }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous = 0, SecurityIdentification = 1, SecurityImpersonation = 2, SecurityDelegation = 3 }; struct _SECURITY_SUBJECT_CONTEXT { void *ClientToken; /* +0x0000 */ unsigned char ImpersonationLevel[8]; /* +0x0008 ed 13 00 00 */ void *PrimaryToken; /* +0x0010 */ void *ProcessAuditId; /* +0x0018 */ }; struct _WHEA_ERROR_STATUS { unsigned long long ErrorStatus; /* +0x0000 */ /* unsigned char Reserved1[0]; +0x0000 10 13 00 00 */ /* unsigned char ErrorType[0]; +0x0000 11 13 00 00 */ /* unsigned char Address[0]; +0x0000 f0 13 00 00 */ /* unsigned char Control[0]; +0x0000 f1 13 00 00 */ /* unsigned char Data[0]; +0x0000 f2 13 00 00 */ /* unsigned char Responder[0]; +0x0000 f3 13 00 00 */ /* unsigned char Requester[0]; +0x0000 f4 13 00 00 */ /* unsigned char FirstError[0]; +0x0000 f5 13 00 00 */ /* unsigned char Overflow[0]; +0x0000 f6 13 00 00 */ unsigned char Reserved2[8]; /* +0x0000 f7 13 00 00 */ }; struct _WHEA_PERSISTENCE_INFO { /* unsigned char Signature[0]; +0x0000 81 10 00 00 */ /* unsigned char Length[0]; +0x0000 fa 13 00 00 */ /* unsigned char Identifier[0]; +0x0000 fb 13 00 00 */ /* unsigned char Attributes[0]; +0x0000 fc 13 00 00 */ /* unsigned char DoNotLog[0]; +0x0000 fd 13 00 00 */ /* unsigned char Reserved[0]; +0x0000 fe 13 00 00 */ unsigned long long AsULONGLONG; /* +0x0000 */ }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown = 0, InterruptActiveHigh = 1, InterruptRisingEdge = 1, InterruptActiveLow = 2, InterruptFallingEdge = 2, InterruptActiveBoth = 3 }; struct _WHEA_PCIEXPRESS_ERROR_SECTION_VALIDBITS { /* unsigned char PortType[0]; +0x0000 84 10 00 00 */ /* unsigned char Version[0]; +0x0000 85 10 00 00 */ /* unsigned char CommandStatus[0]; +0x0000 03 14 00 00 */ /* unsigned char DeviceId[0]; +0x0000 04 14 00 00 */ /* unsigned char DeviceSerialNumber[0]; +0x0000 05 14 00 00 */ /* unsigned char BridgeControlStatus[0]; +0x0000 06 14 00 00 */ /* unsigned char ExpressCapability[0]; +0x0000 07 14 00 00 */ /* unsigned char AerInfo[0]; +0x0000 08 14 00 00 */ /* unsigned char Reserved[0]; +0x0000 09 14 00 00 */ unsigned long long ValidBits; /* +0x0000 */ }; struct _WHEA_PCIXDEVICE_ERROR_SECTION_VALIDBITS { /* unsigned char ErrorStatus[0]; +0x0000 84 10 00 00 */ /* unsigned char IdInfo[0]; +0x0000 85 10 00 00 */ /* unsigned char MemoryNumber[0]; +0x0000 03 14 00 00 */ /* unsigned char IoNumber[0]; +0x0000 04 14 00 00 */ /* unsigned char RegisterDataPairs[0]; +0x0000 05 14 00 00 */ /* unsigned char Reserved[0]; +0x0000 0c 14 00 00 */ unsigned long long ValidBits; /* +0x0000 */ }; /* struct { unsigned long Length; +0x0000 unsigned long Alignment; +0x0004 unsigned char MinimumAddress[8]; +0x0008 42 10 00 00 unsigned char MaximumAddress[8]; +0x0010 42 10 00 00 }; */ enum _IRQ_DEVICE_POLICY { IrqPolicyMachineDefault = 0, IrqPolicyAllCloseProcessors = 1, IrqPolicyOneCloseProcessor = 2, IrqPolicyAllProcessorsInMachine = 3, IrqPolicySpecifiedProcessors = 4, IrqPolicySpreadMessagesAcrossAllProcessors = 5 }; enum _IRQ_PRIORITY { IrqPriorityUndefined = 0, IrqPriorityLow = 1, IrqPriorityNormal = 2, IrqPriorityHigh = 3 }; /* struct { unsigned long MinimumVector; +0x0000 unsigned long MaximumVector; +0x0004 unsigned char AffinityPolicy[4]; +0x0008 12 14 00 00 unsigned char PriorityPolicy[4]; +0x000c 14 14 00 00 unsigned long long TargetedProcessors; +0x0010 }; */ /* struct { unsigned long MinimumChannel; +0x0000 unsigned long MaximumChannel; +0x0004 }; */ /* struct { unsigned long RequestLine; +0x0000 unsigned long Reserved; +0x0004 unsigned long Channel; +0x0008 unsigned long TransferWidth; +0x000c }; */ /* struct { unsigned long Length; +0x0000 unsigned long MinBusNumber; +0x0004 unsigned long MaxBusNumber; +0x0008 unsigned long Reserved; +0x000c }; */ /* struct { unsigned long Priority; +0x0000 unsigned long Reserved1; +0x0004 unsigned long Reserved2; +0x0008 }; */ /* struct { unsigned long Length40; +0x0000 unsigned long Alignment40; +0x0004 unsigned char MinimumAddress[8]; +0x0008 42 10 00 00 unsigned char MaximumAddress[8]; +0x0010 42 10 00 00 }; */ /* struct { unsigned long Length48; +0x0000 unsigned long Alignment48; +0x0004 unsigned char MinimumAddress[8]; +0x0008 42 10 00 00 unsigned char MaximumAddress[8]; +0x0010 42 10 00 00 }; */ /* struct { unsigned long Length64; +0x0000 unsigned long Alignment64; +0x0004 unsigned char MinimumAddress[8]; +0x0008 42 10 00 00 unsigned char MaximumAddress[8]; +0x0010 42 10 00 00 }; */ /* struct { /* unsigned char Port[0]; +0x0000 10 14 00 00 /* unsigned char Memory[0]; +0x0000 10 14 00 00 /* unsigned char Interrupt[0]; +0x0000 16 14 00 00 /* unsigned char Dma[0]; +0x0000 18 14 00 00 /* unsigned char DmaV3[0]; +0x0000 1a 14 00 00 /* unsigned char Generic[0]; +0x0000 10 14 00 00 /* unsigned char DevicePrivate[0]; +0x0000 3d 13 00 00 /* unsigned char BusNumber[0]; +0x0000 1c 14 00 00 /* unsigned char ConfigData[0]; +0x0000 1e 14 00 00 /* unsigned char Memory40[0]; +0x0000 20 14 00 00 /* unsigned char Memory48[0]; +0x0000 22 14 00 00 /* unsigned char Memory64[0]; +0x0000 24 14 00 00 unsigned char Connection[24]; +0x0000 49 13 00 00 }; */ struct _IO_RESOURCE_DESCRIPTOR { unsigned char Option; /* +0x0000 */ unsigned char Type; /* +0x0001 */ unsigned char ShareDisposition; /* +0x0002 */ unsigned char Spare1; /* +0x0003 */ unsigned short Flags; /* +0x0004 */ unsigned short Spare2; /* +0x0006 */ unsigned char u[24]; /* +0x0008 26 14 00 00 */ }; struct _INITIAL_PRIVILEGE_SET { unsigned long PrivilegeCount; /* +0x0000 */ unsigned long Control; /* +0x0004 */ unsigned char Privilege[36]; /* +0x0008 2a 14 00 00 */ }; struct _SECURITY_QUALITY_OF_SERVICE { unsigned long Length; /* +0x0000 */ unsigned char ImpersonationLevel[4]; /* +0x0004 ed 13 00 00 */ unsigned char ContextTrackingMode; /* +0x0008 */ unsigned char EffectiveOnly; /* +0x0009 */ }; struct _FILE_STANDARD_INFORMATION { unsigned char AllocationSize[8]; /* +0x0000 42 10 00 00 */ unsigned char EndOfFile[8]; /* +0x0008 42 10 00 00 */ unsigned long NumberOfLinks; /* +0x0010 */ unsigned char DeletePending; /* +0x0014 */ unsigned char Directory; /* +0x0015 */ }; struct _WHEA_PCIXBUS_ERROR_SECTION { unsigned char ValidBits[8]; /* +0x0000 31 14 00 00 */ unsigned char ErrorStatus[8]; /* +0x0008 d2 13 00 00 */ unsigned short ErrorType; /* +0x0010 */ unsigned char BusId[2]; /* +0x0012 32 14 00 00 */ unsigned long Reserved; /* +0x0014 */ unsigned long long BusAddress; /* +0x0018 */ unsigned long long BusData; /* +0x0020 */ unsigned char BusCommand[8]; /* +0x0028 33 14 00 00 */ unsigned long long RequesterId; /* +0x0030 */ unsigned long long CompleterId; /* +0x0038 */ unsigned long long TargetId; /* +0x0040 */ }; struct _WHEA_MEMORY_ERROR_SECTION { unsigned char ValidBits[8]; /* +0x0000 36 14 00 00 */ unsigned char ErrorStatus[8]; /* +0x0008 d2 13 00 00 */ unsigned long long PhysicalAddress; /* +0x0010 */ unsigned long long PhysicalAddressMask; /* +0x0018 */ unsigned short Node; /* +0x0020 */ unsigned short Card; /* +0x0022 */ unsigned short Module; /* +0x0024 */ unsigned short Bank; /* +0x0026 */ unsigned short Device; /* +0x0028 */ unsigned short Row; /* +0x002a */ unsigned short Column; /* +0x002c */ unsigned short BitPosition; /* +0x002e */ unsigned long long RequesterId; /* +0x0030 */ unsigned long long ResponderId; /* +0x0038 */ unsigned long long TargetId; /* +0x0040 */ unsigned char ErrorType; /* +0x0048 */ }; struct _OWNER_ENTRY { unsigned long long OwnerThread; /* +0x0000 */ /* unsigned char IoPriorityBoosted[0]; +0x0008 82 12 00 00 */ /* unsigned char OwnerReferenced[0]; +0x0008 83 12 00 00 */ /* unsigned char OwnerCount[0]; +0x0008 4e 13 00 00 */ unsigned long TableSize; /* +0x0008 */ }; struct _WHEA_PCIXBUS_COMMAND { /* unsigned char Command[0]; +0x0000 3b 14 00 00 */ /* unsigned char PCIXCommand[0]; +0x0000 3c 14 00 00 */ /* unsigned char Reserved[0]; +0x0000 3d 14 00 00 */ unsigned long long AsULONGLONG; /* +0x0000 */ }; struct _LUID_AND_ATTRIBUTES { unsigned char Luid[8]; /* +0x0000 23 12 00 00 */ unsigned long Attributes; /* +0x0008 */ }; struct WHEA_PCIXDEVICE_REGISTER_PAIR { unsigned long long Register; /* +0x0000 */ unsigned long long Data; /* +0x0008 */ }; struct _WHEA_PCIXBUS_ID { unsigned char BusNumber; /* +0x0000 */ unsigned char BusSegment; /* +0x0001 */ unsigned short AsUSHORT; /* +0x0000 */ }; struct _WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS { /* unsigned char ProcessorType[0]; +0x0000 84 10 00 00 */ /* unsigned char InstructionSet[0]; +0x0000 85 10 00 00 */ /* unsigned char ErrorType[0]; +0x0000 03 14 00 00 */ /* unsigned char Operation[0]; +0x0000 04 14 00 00 */ /* unsigned char Flags[0]; +0x0000 05 14 00 00 */ /* unsigned char Level[0]; +0x0000 06 14 00 00 */ /* unsigned char CPUVersion[0]; +0x0000 07 14 00 00 */ /* unsigned char CPUBrandString[0]; +0x0000 08 14 00 00 */ /* unsigned char ProcessorId[0]; +0x0000 46 14 00 00 */ /* unsigned char TargetAddress[0]; +0x0000 47 14 00 00 */ /* unsigned char RequesterId[0]; +0x0000 48 14 00 00 */ /* unsigned char ResponderId[0]; +0x0000 49 14 00 00 */ /* unsigned char InstructionPointer[0]; +0x0000 4a 14 00 00 */ /* unsigned char Reserved[0]; +0x0000 4b 14 00 00 */ unsigned long long ValidBits; /* +0x0000 */ }; struct _WHEA_PCIXBUS_ERROR_SECTION_VALIDBITS { /* unsigned char ErrorStatus[0]; +0x0000 84 10 00 00 */ /* unsigned char ErrorType[0]; +0x0000 85 10 00 00 */ /* unsigned char BusId[0]; +0x0000 03 14 00 00 */ /* unsigned char BusAddress[0]; +0x0000 04 14 00 00 */ /* unsigned char BusData[0]; +0x0000 05 14 00 00 */ /* unsigned char BusCommand[0]; +0x0000 06 14 00 00 */ /* unsigned char RequesterId[0]; +0x0000 07 14 00 00 */ /* unsigned char CompleterId[0]; +0x0000 08 14 00 00 */ /* unsigned char TargetId[0]; +0x0000 46 14 00 00 */ /* unsigned char Reserved[0]; +0x0000 4e 14 00 00 */ unsigned long long ValidBits; /* +0x0000 */ }; struct _PRIVILEGE_SET { unsigned long PrivilegeCount; /* +0x0000 */ unsigned long Control; /* +0x0004 */ unsigned char Privilege[12]; /* +0x0008 51 14 00 00 */ }; struct _WHEA_PCIXDEVICE_ID { unsigned short VendorId; /* +0x0000 */ unsigned short DeviceId; /* +0x0002 */ /* unsigned char ClassCode[0]; +0x0004 ba 13 00 00 */ unsigned char FunctionNumber[4]; /* +0x0004 bb 13 00 00 */ /* unsigned char DeviceNumber[0]; +0x0008 f3 12 00 00 */ /* unsigned char BusNumber[0]; +0x0008 54 14 00 00 */ /* unsigned char SegmentNumber[0]; +0x0008 55 14 00 00 */ unsigned char Reserved1[4]; /* +0x0008 bb 13 00 00 */ unsigned long Reserved2; /* +0x000c */ }; struct _WHEA_MEMORY_ERROR_SECTION_VALIDBITS { /* unsigned char ErrorStatus[0]; +0x0000 84 10 00 00 */ /* unsigned char PhysicalAddress[0]; +0x0000 85 10 00 00 */ /* unsigned char PhysicalAddressMask[0]; +0x0000 03 14 00 00 */ /* unsigned char Node[0]; +0x0000 04 14 00 00 */ /* unsigned char Card[0]; +0x0000 05 14 00 00 */ /* unsigned char Module[0]; +0x0000 06 14 00 00 */ /* unsigned char Bank[0]; +0x0000 07 14 00 00 */ /* unsigned char Device[0]; +0x0000 08 14 00 00 */ /* unsigned char Row[0]; +0x0000 46 14 00 00 */ /* unsigned char Column[0]; +0x0000 47 14 00 00 */ /* unsigned char BitPosition[0]; +0x0000 48 14 00 00 */ /* unsigned char RequesterId[0]; +0x0000 49 14 00 00 */ /* unsigned char ResponderId[0]; +0x0000 4a 14 00 00 */ /* unsigned char TargetId[0]; +0x0000 58 14 00 00 */ /* unsigned char ErrorType[0]; +0x0000 59 14 00 00 */ /* unsigned char Reserved[0]; +0x0000 5a 14 00 00 */ unsigned long long ValidBits; /* +0x0000 */ };