2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/dbgktypes.h
4 * PURPOSE: Definitions for User-Mode Kernel Debugging not in DDK/IFS
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
13 /* DEPENDENCIES **************************************************************/
15 /* EXPORTED DATA *************************************************************/
17 /* CONSTANTS *****************************************************************/
18 #define DEBUG_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0F)
19 #define DEBUG_OBJECT_WAIT_STATE_CHANGE 0x0001
20 #define DEBUG_OBJECT_ADD_REMOVE_PROCESS 0x0002
22 /* ENUMERATIONS **************************************************************/
24 typedef enum _DEBUGOBJECTINFOCLASS
26 DebugObjectUnusedInformation
,
27 DebugObjectKillProcessOnExitInformation
28 } DEBUGOBJECTINFOCLASS
, *PDEBUGOBJECTINFOCLASS
;
30 /* TYPES *********************************************************************/
32 typedef struct _DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION
34 ULONG KillProcessOnExit
;
35 } DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION
, *
36 PDEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION
;
38 #ifndef NTOS_MODE_USER
39 typedef struct _DBGK_DEBUG_OBJECT
43 LIST_ENTRY StateEventListEntry
;
49 UCHAR DebuggerInactive
:1;
50 UCHAR KillProcessOnExit
:1;
53 } DBGK_DEBUG_OBJECT
, *PDBGK_DEBUG_OBJECT
;
56 typedef enum _DBG_STATE
60 DbgCreateThreadStateChange
,
61 DbgCreateProcessStateChange
,
62 DbgExitThreadStateChange
,
63 DbgExitProcessStateChange
,
64 DbgExceptionStateChange
,
65 DbgBreakpointStateChange
,
66 DbgSingleStepStateChange
,
67 DbgLoadDllStateChange
,
68 DbgUnloadDllStateChange
69 } DBG_STATE
, *PDBG_STATE
;
71 typedef struct _DBGKM_EXCEPTION
73 EXCEPTION_RECORD ExceptionRecord
;
75 } DBGKM_EXCEPTION
, *PDBGKM_EXCEPTION
;
77 typedef struct _DBGKM_CREATE_THREAD
81 } DBGKM_CREATE_THREAD
, *PDBGKM_CREATE_THREAD
;
83 typedef struct _DBGKM_CREATE_PROCESS
88 ULONG DebugInfoFileOffset
;
90 DBGKM_CREATE_THREAD InitialThread
;
91 } DBGKM_CREATE_PROCESS
, *PDBGKM_CREATE_PROCESS
;
93 typedef struct _DBGKM_EXIT_THREAD
96 } DBGKM_EXIT_THREAD
, *PDBGKM_EXIT_THREAD
;
98 typedef struct _DBGKM_EXIT_PROCESS
101 } DBGKM_EXIT_PROCESS
, *PDBGKM_EXIT_PROCESS
;
103 typedef struct _DBGKM_LOAD_DLL
107 ULONG DebugInfoFileOffset
;
109 } DBGKM_LOAD_DLL
, *PDBGKM_LOAD_DLL
;
111 typedef struct _DBGKM_UNLOAD_DLL
114 } DBGKM_UNLOAD_DLL
, *PDBGKM_UNLOAD_DLL
;
116 typedef struct _DBGUI_WAIT_STATE_CHANGE
119 CLIENT_ID AppClientId
;
124 HANDLE HandleToThread
;
125 DBGKM_CREATE_THREAD NewThread
;
129 HANDLE HandleToProcess
;
130 HANDLE HandleToThread
;
131 DBGKM_CREATE_PROCESS NewProcess
;
133 DBGKM_EXIT_THREAD ExitThread
;
134 DBGKM_EXIT_PROCESS ExitProcess
;
135 DBGKM_EXCEPTION Exception
;
136 DBGKM_LOAD_DLL LoadDll
;
137 DBGKM_UNLOAD_DLL UnloadDll
;
139 } DBGUI_WAIT_STATE_CHANGE
, *PDBGUI_WAIT_STATE_CHANGE
;
141 typedef struct _DBGKM_MSG
148 DBGKM_EXCEPTION Exception
;
149 DBGKM_CREATE_THREAD CreateThread
;
150 DBGKM_CREATE_PROCESS CreateProcess
;
151 DBGKM_EXIT_THREAD ExitThread
;
152 DBGKM_EXIT_PROCESS ExitProcess
;
153 DBGKM_LOAD_DLL LoadDll
;
154 DBGKM_UNLOAD_DLL UnloadDll
;
156 } DBGKM_MSG
, *PDBGKM_MSG
;