qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

kdbg.h (5635B)


      1 /*
      2  * Copyright (c) 2018 Virtuozzo International GmbH
      3  *
      4  * This work is licensed under the terms of the GNU GPL, version 2 or later.
      5  *
      6  */
      7 
      8 #ifndef KDBG_H
      9 #define KDBG_H
     10 
     11 typedef struct DBGKD_GET_VERSION64 {
     12     uint16_t  MajorVersion;
     13     uint16_t  MinorVersion;
     14     uint8_t   ProtocolVersion;
     15     uint8_t   KdSecondaryVersion;
     16     uint16_t  Flags;
     17     uint16_t  MachineType;
     18     uint8_t   MaxPacketType;
     19     uint8_t   MaxStateChange;
     20     uint8_t   MaxManipulate;
     21     uint8_t   Simulation;
     22     uint16_t  Unused[1];
     23     uint64_t KernBase;
     24     uint64_t PsLoadedModuleList;
     25     uint64_t DebuggerDataList;
     26 } DBGKD_GET_VERSION64;
     27 
     28 #ifndef _WIN32
     29 typedef struct LIST_ENTRY64 {
     30     struct LIST_ENTRY64 *Flink;
     31     struct LIST_ENTRY64 *Blink;
     32 } LIST_ENTRY64;
     33 #endif
     34 
     35 typedef struct DBGKD_DEBUG_DATA_HEADER64 {
     36     LIST_ENTRY64    List;
     37     uint32_t           OwnerTag;
     38     uint32_t           Size;
     39 } DBGKD_DEBUG_DATA_HEADER64;
     40 
     41 typedef struct KDDEBUGGER_DATA64 {
     42     DBGKD_DEBUG_DATA_HEADER64 Header;
     43 
     44     uint64_t KernBase;
     45     uint64_t BreakpointWithStatus;
     46     uint64_t SavedContext;
     47     uint16_t ThCallbackStack;
     48     uint16_t NextCallback;
     49     uint16_t FramePointer;
     50     uint16_t PaeEnabled:1;
     51     uint64_t KiCallUserMode;
     52     uint64_t KeUserCallbackDispatcher;
     53     uint64_t PsLoadedModuleList;
     54     uint64_t PsActiveProcessHead;
     55     uint64_t PspCidTable;
     56     uint64_t ExpSystemResourcesList;
     57     uint64_t ExpPagedPoolDescriptor;
     58     uint64_t ExpNumberOfPagedPools;
     59     uint64_t KeTimeIncrement;
     60     uint64_t KeBugCheckCallbackListHead;
     61     uint64_t KiBugcheckData;
     62     uint64_t IopErrorLogListHead;
     63     uint64_t ObpRootDirectoryObject;
     64     uint64_t ObpTypeObjectType;
     65     uint64_t MmSystemCacheStart;
     66     uint64_t MmSystemCacheEnd;
     67     uint64_t MmSystemCacheWs;
     68     uint64_t MmPfnDatabase;
     69     uint64_t MmSystemPtesStart;
     70     uint64_t MmSystemPtesEnd;
     71     uint64_t MmSubsectionBase;
     72     uint64_t MmNumberOfPagingFiles;
     73     uint64_t MmLowestPhysicalPage;
     74     uint64_t MmHighestPhysicalPage;
     75     uint64_t MmNumberOfPhysicalPages;
     76     uint64_t MmMaximumNonPagedPoolInBytes;
     77     uint64_t MmNonPagedSystemStart;
     78     uint64_t MmNonPagedPoolStart;
     79     uint64_t MmNonPagedPoolEnd;
     80     uint64_t MmPagedPoolStart;
     81     uint64_t MmPagedPoolEnd;
     82     uint64_t MmPagedPoolInformation;
     83     uint64_t MmPageSize;
     84     uint64_t MmSizeOfPagedPoolInBytes;
     85     uint64_t MmTotalCommitLimit;
     86     uint64_t MmTotalCommittedPages;
     87     uint64_t MmSharedCommit;
     88     uint64_t MmDriverCommit;
     89     uint64_t MmProcessCommit;
     90     uint64_t MmPagedPoolCommit;
     91     uint64_t MmExtendedCommit;
     92     uint64_t MmZeroedPageListHead;
     93     uint64_t MmFreePageListHead;
     94     uint64_t MmStandbyPageListHead;
     95     uint64_t MmModifiedPageListHead;
     96     uint64_t MmModifiedNoWritePageListHead;
     97     uint64_t MmAvailablePages;
     98     uint64_t MmResidentAvailablePages;
     99     uint64_t PoolTrackTable;
    100     uint64_t NonPagedPoolDescriptor;
    101     uint64_t MmHighestUserAddress;
    102     uint64_t MmSystemRangeStart;
    103     uint64_t MmUserProbeAddress;
    104     uint64_t KdPrintCircularBuffer;
    105     uint64_t KdPrintCircularBufferEnd;
    106     uint64_t KdPrintWritePointer;
    107     uint64_t KdPrintRolloverCount;
    108     uint64_t MmLoadedUserImageList;
    109 
    110     /* NT 5.1 Addition */
    111 
    112     uint64_t NtBuildLab;
    113     uint64_t KiNormalSystemCall;
    114 
    115     /* NT 5.0 hotfix addition */
    116 
    117     uint64_t KiProcessorBlock;
    118     uint64_t MmUnloadedDrivers;
    119     uint64_t MmLastUnloadedDriver;
    120     uint64_t MmTriageActionTaken;
    121     uint64_t MmSpecialPoolTag;
    122     uint64_t KernelVerifier;
    123     uint64_t MmVerifierData;
    124     uint64_t MmAllocatedNonPagedPool;
    125     uint64_t MmPeakCommitment;
    126     uint64_t MmTotalCommitLimitMaximum;
    127     uint64_t CmNtCSDVersion;
    128 
    129     /* NT 5.1 Addition */
    130 
    131     uint64_t MmPhysicalMemoryBlock;
    132     uint64_t MmSessionBase;
    133     uint64_t MmSessionSize;
    134     uint64_t MmSystemParentTablePage;
    135 
    136     /* Server 2003 addition */
    137 
    138     uint64_t MmVirtualTranslationBase;
    139     uint16_t OffsetKThreadNextProcessor;
    140     uint16_t OffsetKThreadTeb;
    141     uint16_t OffsetKThreadKernelStack;
    142     uint16_t OffsetKThreadInitialStack;
    143     uint16_t OffsetKThreadApcProcess;
    144     uint16_t OffsetKThreadState;
    145     uint16_t OffsetKThreadBStore;
    146     uint16_t OffsetKThreadBStoreLimit;
    147     uint16_t SizeEProcess;
    148     uint16_t OffsetEprocessPeb;
    149     uint16_t OffsetEprocessParentCID;
    150     uint16_t OffsetEprocessDirectoryTableBase;
    151     uint16_t SizePrcb;
    152     uint16_t OffsetPrcbDpcRoutine;
    153     uint16_t OffsetPrcbCurrentThread;
    154     uint16_t OffsetPrcbMhz;
    155     uint16_t OffsetPrcbCpuType;
    156     uint16_t OffsetPrcbVendorString;
    157     uint16_t OffsetPrcbProcStateContext;
    158     uint16_t OffsetPrcbNumber;
    159     uint16_t SizeEThread;
    160     uint64_t KdPrintCircularBufferPtr;
    161     uint64_t KdPrintBufferSize;
    162     uint64_t KeLoaderBlock;
    163     uint16_t SizePcr;
    164     uint16_t OffsetPcrSelfPcr;
    165     uint16_t OffsetPcrCurrentPrcb;
    166     uint16_t OffsetPcrContainedPrcb;
    167     uint16_t OffsetPcrInitialBStore;
    168     uint16_t OffsetPcrBStoreLimit;
    169     uint16_t OffsetPcrInitialStack;
    170     uint16_t OffsetPcrStackLimit;
    171     uint16_t OffsetPrcbPcrPage;
    172     uint16_t OffsetPrcbProcStateSpecialReg;
    173     uint16_t GdtR0Code;
    174     uint16_t GdtR0Data;
    175     uint16_t GdtR0Pcr;
    176     uint16_t GdtR3Code;
    177     uint16_t GdtR3Data;
    178     uint16_t GdtR3Teb;
    179     uint16_t GdtLdt;
    180     uint16_t GdtTss;
    181     uint16_t Gdt64R3CmCode;
    182     uint16_t Gdt64R3CmTeb;
    183     uint64_t IopNumTriageDumpDataBlocks;
    184     uint64_t IopTriageDumpDataBlocks;
    185 
    186     /* Longhorn addition */
    187 
    188     uint64_t VfCrashDataBlock;
    189     uint64_t MmBadPagesDetected;
    190     uint64_t MmZeroedPageSingleBitErrorsDetected;
    191 
    192     /* Windows 7 addition */
    193 
    194     uint64_t EtwpDebuggerData;
    195     uint16_t OffsetPrcbContext;
    196 } KDDEBUGGER_DATA64;
    197 
    198 #endif /* KDBG_H */