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 typedef struct _DBGK_DEBUG_OBJECT
42 LIST_ENTRY StateEventListEntry
;
48 UCHAR DebuggerInactive
:1;
49 UCHAR KillProcessOnExit
:1;
52 } DBGK_DEBUG_OBJECT
, *PDBGK_DEBUG_OBJECT
;
54 typedef enum _DBG_STATE
58 DbgCreateThreadStateChange
,
59 DbgCreateProcessStateChange
,
60 DbgExitThreadStateChange
,
61 DbgExitProcessStateChange
,
62 DbgExceptionStateChange
,
63 DbgBreakpointStateChange
,
64 DbgSingleStepStateChange
,
65 DbgLoadDllStateChange
,
66 DbgUnloadDllStateChange
67 } DBG_STATE
, *PDBG_STATE
;
69 typedef struct _DBGKM_EXCEPTION
71 EXCEPTION_RECORD ExceptionRecord
;
73 } DBGKM_EXCEPTION
, *PDBGKM_EXCEPTION
;
75 typedef struct _DBGKM_CREATE_THREAD
79 } DBGKM_CREATE_THREAD
, *PDBGKM_CREATE_THREAD
;
81 typedef struct _DBGKM_CREATE_PROCESS
86 ULONG DebugInfoFileOffset
;
88 DBGKM_CREATE_THREAD InitialThread
;
89 } DBGKM_CREATE_PROCESS
, *PDBGKM_CREATE_PROCESS
;
91 typedef struct _DBGKM_EXIT_THREAD
94 } DBGKM_EXIT_THREAD
, *PDBGKM_EXIT_THREAD
;
96 typedef struct _DBGKM_EXIT_PROCESS
99 } DBGKM_EXIT_PROCESS
, *PDBGKM_EXIT_PROCESS
;
101 typedef struct _DBGKM_LOAD_DLL
105 ULONG DebugInfoFileOffset
;
107 } DBGKM_LOAD_DLL
, *PDBGKM_LOAD_DLL
;
109 typedef struct _DBGKM_UNLOAD_DLL
112 } DBGKM_UNLOAD_DLL
, *PDBGKM_UNLOAD_DLL
;
114 typedef struct _DBGUI_WAIT_STATE_CHANGE
117 CLIENT_ID AppClientId
;
122 HANDLE HandleToThread
;
123 DBGKM_CREATE_THREAD NewThread
;
127 HANDLE HandleToProcess
;
128 HANDLE HandleToThread
;
129 DBGKM_CREATE_PROCESS NewProcess
;
131 DBGKM_EXIT_THREAD ExitThread
;
132 DBGKM_EXIT_PROCESS ExitProcess
;
133 DBGKM_EXCEPTION Exception
;
134 DBGKM_LOAD_DLL LoadDll
;
135 DBGKM_UNLOAD_DLL UnloadDll
;
137 } DBGUI_WAIT_STATE_CHANGE
, * PDBGUI_WAIT_STATE_CHANGE
;