3 Copyright (c) Alex Ionescu. All rights reserved.
11 Type definitions for the Kernel Debugger.
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
28 // Debug Filter Levels
30 #define DPFLTR_ERROR_LEVEL 0
31 #define DPFLTR_WARNING_LEVEL 1
32 #define DPFLTR_TRACE_LEVEL 2
33 #define DPFLTR_INFO_LEVEL 3
34 #define DPFLTR_MASK 0x80000000
39 #define DBG_STATUS_CONTROL_C 1
40 #define DBG_STATUS_SYSRQ 2
41 #define DBG_STATUS_BUGCHECK_FIRST 3
42 #define DBG_STATUS_BUGCHECK_SECOND 4
43 #define DBG_STATUS_FATAL 5
44 #define DBG_STATUS_DEBUG_CONTROL 6
45 #define DBG_STATUS_WORKER 7
48 // DebugService Control Types
50 #define BREAKPOINT_BREAK 0
51 #define BREAKPOINT_PRINT 1
52 #define BREAKPOINT_PROMPT 2
53 #define BREAKPOINT_LOAD_SYMBOLS 3
54 #define BREAKPOINT_UNLOAD_SYMBOLS 4
55 #define BREAKPOINT_COMMAND_STRING 5
58 // Debug Control Codes for NtSystemDebugcontrol
60 typedef enum _SYSDBG_COMMAND
62 SysDbgQueryModuleInformation
= 0,
63 SysDbgQueryTraceInformation
= 1,
64 SysDbgSetTracepoint
= 2,
65 SysDbgSetSpecialCall
= 3,
66 SysDbgClearSpecialCalls
= 4,
67 SysDbgQuerySpecialCalls
= 5,
69 SysDbgQueryVersion
= 7,
70 SysDbgReadVirtual
= 8,
71 SysDbgWriteVirtual
= 9,
72 SysDbgReadPhysical
= 10,
73 SysDbgWritePhysical
= 11,
74 SysDbgReadControlSpace
= 12,
75 SysDbgWriteControlSpace
= 13,
76 SysDbgReadIoSpace
= 14,
77 SysDbgWriteIoSpace
= 15,
80 SysDbgReadBusData
= 18,
81 SysDbgWriteBusData
= 19,
82 SysDbgCheckLowMemory
= 20,
83 SysDbgEnableKernelDebugger
= 21,
84 SysDbgDisableKernelDebugger
= 22,
85 SysDbgGetAutoKdEnable
= 23,
86 SysDbgSetAutoKdEnable
= 24,
87 SysDbgGetPrintBufferSize
= 25,
88 SysDbgSetPrintBufferSize
= 26,
89 SysDbgGetKdUmExceptionEnable
= 27,
90 SysDbgSetKdUmExceptionEnable
= 28,
91 SysDbgGetTriageDump
= 29,
92 SysDbgGetKdBlockEnable
= 30,
93 SysDbgSetKdBlockEnable
= 31,
94 SysDbgRegisterForUmBreakInfo
= 32,
95 SysDbgGetUmBreakPid
= 33,
96 SysDbgClearUmBreakPid
= 34,
97 SysDbgGetUmAttachPid
= 35,
98 SysDbgClearUmAttachPid
= 36,
102 // System Debugger Types
104 typedef struct _SYSDBG_PHYSICAL
106 PHYSICAL_ADDRESS Address
;
109 } SYSDBG_PHYSICAL
, *PSYSDBG_PHYSICAL
;
111 typedef struct _SYSDBG_VIRTUAL
116 } SYSDBG_VIRTUAL
, *PSYSDBG_VIRTUAL
;
118 typedef struct _SYSDBG_CONTROL_SPACE
124 } SYSDBG_CONTROL_SPACE
, *PSYSDBG_CONTROL_SPACE
;
126 typedef struct _SYSDBG_IO_SPACE
131 INTERFACE_TYPE InterfaceType
;
134 } SYSDBG_IO_SPACE
, *PSYSDBG_IO_SPACE
;
136 typedef struct _SYSDBG_BUS_DATA
141 BUS_DATA_TYPE BusDataType
;
144 } SYSDBG_BUS_DATA
, *PSYSDBG_BUS_DATA
;
146 typedef struct _SYSDBG_MSR
150 } SYSDBG_MSR
, *PSYSDBG_MSR
;
152 typedef struct _SYSDBG_TRIAGE_DUMP
156 ULONG_PTR BugCheckParam1
;
157 ULONG_PTR BugCheckParam2
;
158 ULONG_PTR BugCheckParam3
;
159 ULONG_PTR BugCheckParam4
;
160 ULONG ProcessHandles
;
163 } SYSDBG_TRIAGE_DUMP
, *PSYSDBG_TRIAGE_DUMP
;
168 typedef struct _KD_SYMBOLS_INFO
174 } KD_SYMBOLS_INFO
, *PKD_SYMBOLS_INFO
;