ReactOS  0.4.14-dev-77-gd9e7c48
dbgktypes.h
Go to the documentation of this file.
1 /*++ NDK Version: 0098
2 
3 Copyright (c) Alex Ionescu. All rights reserved.
4 
5 Header Name:
6 
7  dbgktypes.h
8 
9 Abstract:
10 
11  Type definitions for the User Mode Debugging Facility.
12 
13 Author:
14 
15  Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16 
17 --*/
18 
19 #ifndef _DBGKTYPES_H
20 #define _DBGKTYPES_H
21 
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26 #include <lpctypes.h>
27 
28 //
29 // Debug Object Access Masks
30 //
31 #define DEBUG_OBJECT_WAIT_STATE_CHANGE 0x0001
32 #define DEBUG_OBJECT_ADD_REMOVE_PROCESS 0x0002
33 #define DEBUG_OBJECT_SET_INFORMATION 0x0004
34 #define DEBUG_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0F)
35 
36 //
37 // Debug Event Flags
38 //
39 #define DEBUG_EVENT_READ (0x01)
40 #define DEBUG_EVENT_NOWAIT (0x02)
41 #define DEBUG_EVENT_INACTIVE (0x04)
42 #define DEBUG_EVENT_RELEASE (0x08)
43 #define DEBUG_EVENT_PROTECT_FAILED (0x10)
44 #define DEBUG_EVENT_SUSPEND (0x20)
45 
46 //
47 // NtCreateDebugObject Flags
48 //
49 #define DBGK_KILL_PROCESS_ON_EXIT (0x1)
50 #define DBGK_ALL_FLAGS (DBGK_KILL_PROCESS_ON_EXIT)
51 
52 //
53 // Debug Object Information Classes for NtQueryDebugObject
54 //
56 {
60 
61 //
62 // Debug Message API Number
63 //
64 typedef enum _DBGKM_APINUMBER
65 {
76 
77 //
78 // Debug Object Information Structures
79 //
81 {
84 
85 #ifndef NTOS_MODE_USER
86 
87 //
88 // Debug Object
89 //
90 typedef struct _DEBUG_OBJECT
91 {
95  union
96  {
98  struct
99  {
102  };
103  };
105 
106 #endif
107 
108 //
109 // Debug States
110 //
111 typedef enum _DBG_STATE
112 {
125 
126 //
127 // Debug Message Structures
128 //
129 typedef struct _DBGKM_EXCEPTION
130 {
134 
135 typedef struct _DBGKM_CREATE_THREAD
136 {
140 
141 typedef struct _DBGKM_CREATE_PROCESS
142 {
150 
151 typedef struct _DBGKM_EXIT_THREAD
152 {
155 
156 typedef struct _DBGKM_EXIT_PROCESS
157 {
160 
161 typedef struct _DBGKM_LOAD_DLL
162 {
169 
170 typedef struct _DBGKM_UNLOAD_DLL
171 {
174 
175 //
176 // User-Mode Debug State Change Structure
177 //
179 {
182  union
183  {
184  struct
185  {
188  } CreateThread;
189  struct
190  {
200  } StateInfo;
202 
203 //
204 // LPC Debug Message
205 //
206 typedef struct _DBGKM_MSG
207 {
211  union
212  {
220  };
222 
223 #ifndef NTOS_MODE_USER
224 
225 //
226 // Debug Event
227 //
228 typedef struct _DEBUG_EVENT
229 {
240 
241 
242 #endif
243 
244 #endif
ULONG DebugInfoSize
Definition: dbgktypes.h:166
DBGKM_EXIT_THREAD ExitThread
Definition: dbgktypes.h:195
struct _DBGUI_WAIT_STATE_CHANGE::@2294::@2296 CreateProcessInfo
DBGKM_MSG ApiMsg
Definition: dbgktypes.h:238
PETHREAD Thread
Definition: dbgktypes.h:234
HANDLE FileHandle
Definition: dbgktypes.h:163
ULONG Flags
Definition: dbgktypes.h:97
ULONG Flags
Definition: dbgktypes.h:236
struct _DBGKM_EXCEPTION * PDBGKM_EXCEPTION
struct _DEBUG_EVENT DEBUG_EVENT
NTSTATUS ReturnedStatus
Definition: dbgktypes.h:210
struct _DEBUG_OBJECT DEBUG_OBJECT
UCHAR DebuggerInactive
Definition: dbgktypes.h:100
LONG NTSTATUS
Definition: precomp.h:26
enum _DBG_STATE * PDBG_STATE
FAST_MUTEX Mutex
Definition: dbgktypes.h:93
struct _DBGKM_CREATE_PROCESS * PDBGKM_CREATE_PROCESS
DBGKM_CREATE_PROCESS CreateProcess
Definition: dbgktypes.h:215
KEVENT ContinueEvent
Definition: dbgktypes.h:231
_DBGKM_APINUMBER
Definition: dbgktypes.h:64
DBGKM_EXIT_THREAD ExitThread
Definition: dbgktypes.h:216
struct _DBGUI_WAIT_STATE_CHANGE DBGUI_WAIT_STATE_CHANGE
struct _DEBUG_EVENT * PDEBUG_EVENT
struct _DBGKM_LOAD_DLL DBGKM_LOAD_DLL
DBGKM_LOAD_DLL LoadDll
Definition: dbgktypes.h:218
NTSTATUS ExitStatus
Definition: dbgktypes.h:158
struct _DBGKM_EXIT_PROCESS * PDBGKM_EXIT_PROCESS
DBGKM_EXCEPTION Exception
Definition: dbgktypes.h:197
PORT_MESSAGE h
Definition: dbgktypes.h:208
CLIENT_ID ClientId
Definition: dbgktypes.h:232
DBGKM_EXIT_PROCESS ExitProcess
Definition: dbgktypes.h:196
DBGKM_CREATE_PROCESS NewProcess
Definition: dbgktypes.h:193
DBGKM_CREATE_THREAD InitialThread
Definition: dbgktypes.h:148
enum _DBGKM_APINUMBER DBGKM_APINUMBER
struct _DBGKM_CREATE_PROCESS DBGKM_CREATE_PROCESS
DBGKM_CREATE_THREAD NewThread
Definition: dbgktypes.h:187
struct _DBGKM_EXIT_PROCESS DBGKM_EXIT_PROCESS
FAST_MUTEX
Definition: extypes.h:17
enum _DEBUGOBJECTINFOCLASS DEBUGOBJECTINFOCLASS
NTSTATUS Status
Definition: dbgktypes.h:235
DBGKM_UNLOAD_DLL UnloadDll
Definition: dbgktypes.h:199
LIST_ENTRY EventList
Definition: dbgktypes.h:230
unsigned char UCHAR
Definition: xmlstorage.h:181
PETHREAD BackoutThread
Definition: dbgktypes.h:237
PVOID NamePointer
Definition: dbgktypes.h:167
Definition: typedefs.h:117
LIST_ENTRY EventList
Definition: dbgktypes.h:94
DBGKM_LOAD_DLL LoadDll
Definition: dbgktypes.h:198
_DBG_STATE
Definition: dbgktypes.h:111
struct _DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION
struct _DBGKM_EXCEPTION DBGKM_EXCEPTION
enum _DEBUGOBJECTINFOCLASS * PDEBUGOBJECTINFOCLASS
enum _DBG_STATE DBG_STATE
DBGKM_EXIT_PROCESS ExitProcess
Definition: dbgktypes.h:217
struct _DBGKM_UNLOAD_DLL DBGKM_UNLOAD_DLL
DBGKM_APINUMBER ApiNumber
Definition: dbgktypes.h:209
struct _DBGKM_MSG * PDBGKM_MSG
struct _DBGKM_MSG DBGKM_MSG
PEPROCESS Process
Definition: dbgktypes.h:233
struct _DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION * PDEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION
NTSTATUS ExitStatus
Definition: dbgktypes.h:153
struct _DBGKM_CREATE_THREAD * PDBGKM_CREATE_THREAD
ULONG DebugInfoFileOffset
Definition: dbgktypes.h:165
struct _DBGUI_WAIT_STATE_CHANGE::@2294::@2295 CreateThread
unsigned int ULONG
Definition: retypes.h:1
union _DBGUI_WAIT_STATE_CHANGE::@2294 StateInfo
struct _DBGUI_WAIT_STATE_CHANGE * PDBGUI_WAIT_STATE_CHANGE
_DEBUGOBJECTINFOCLASS
Definition: dbgktypes.h:55
EXCEPTION_RECORD ExceptionRecord
Definition: dbgktypes.h:131
struct _DEBUG_OBJECT * PDEBUG_OBJECT
DBGKM_UNLOAD_DLL UnloadDll
Definition: dbgktypes.h:219
struct _DBGKM_LOAD_DLL * PDBGKM_LOAD_DLL
UCHAR KillProcessOnExit
Definition: dbgktypes.h:101
struct _DBGKM_CREATE_THREAD DBGKM_CREATE_THREAD
struct _DBGKM_UNLOAD_DLL * PDBGKM_UNLOAD_DLL
DBGKM_CREATE_THREAD CreateThread
Definition: dbgktypes.h:214
DBGKM_EXCEPTION Exception
Definition: dbgktypes.h:213
struct _DBGKM_EXIT_THREAD DBGKM_EXIT_THREAD
struct _DBGKM_EXIT_THREAD * PDBGKM_EXIT_THREAD
KEVENT EventsPresent
Definition: dbgktypes.h:92