ReactOS 0.4.15-dev-7942-gd23573b
dbgktypes.h
Go to the documentation of this file.
1/*++ NDK Version: 0098
2
3Copyright (c) Alex Ionescu. All rights reserved.
4
5Header Name:
6
7 dbgktypes.h
8
9Abstract:
10
11 Type definitions for the User Mode Debugging Facility.
12
13Author:
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//
64typedef 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//
90typedef struct _DEBUG_OBJECT
91{
95 union
96 {
98 struct
99 {
102 };
103 };
105
106#endif
107
108//
109// Debug States
110//
111typedef enum _DBG_STATE
112{
125
126//
127// Debug Message Structures
128//
129typedef struct _DBGKM_EXCEPTION
130{
134
136{
140
142{
150
151typedef struct _DBGKM_EXIT_THREAD
152{
155
157{
160
161typedef struct _DBGKM_LOAD_DLL
162{
169
170typedef struct _DBGKM_UNLOAD_DLL
171{
174
175//
176// User-Mode Debug State Change Structure
177//
179{
182 union
183 {
184 struct
185 {
189 struct
190 {
202
203//
204// LPC Debug Message
205//
206typedef struct _DBGKM_MSG
207{
211 union
212 {
220 };
222
223#ifndef NTOS_MODE_USER
224
225//
226// Debug Event
227//
228typedef struct _DEBUG_EVENT
229{
240
241
242#endif
243
244#endif
LONG NTSTATUS
Definition: precomp.h:26
struct _DBGKM_EXIT_THREAD * PDBGKM_EXIT_THREAD
struct _DBGKM_LOAD_DLL * PDBGKM_LOAD_DLL
struct _DBGKM_EXCEPTION DBGKM_EXCEPTION
struct _DEBUG_OBJECT * PDEBUG_OBJECT
struct _DBGKM_LOAD_DLL DBGKM_LOAD_DLL
struct _DBGKM_EXIT_PROCESS * PDBGKM_EXIT_PROCESS
struct _DBGKM_EXIT_PROCESS DBGKM_EXIT_PROCESS
enum _DBG_STATE DBG_STATE
struct _DBGKM_CREATE_THREAD DBGKM_CREATE_THREAD
struct _DBGKM_EXCEPTION * PDBGKM_EXCEPTION
struct _DBGUI_WAIT_STATE_CHANGE * PDBGUI_WAIT_STATE_CHANGE
enum _DBG_STATE * PDBG_STATE
enum _DEBUGOBJECTINFOCLASS DEBUGOBJECTINFOCLASS
struct _DBGKM_CREATE_PROCESS DBGKM_CREATE_PROCESS
_DEBUGOBJECTINFOCLASS
Definition: dbgktypes.h:56
@ DebugObjectUnusedInformation
Definition: dbgktypes.h:57
@ DebugObjectKillProcessOnExitInformation
Definition: dbgktypes.h:58
struct _DBGKM_CREATE_PROCESS * PDBGKM_CREATE_PROCESS
struct _DEBUG_OBJECT DEBUG_OBJECT
struct _DBGKM_MSG * PDBGKM_MSG
struct _DBGKM_UNLOAD_DLL DBGKM_UNLOAD_DLL
enum _DEBUGOBJECTINFOCLASS * PDEBUGOBJECTINFOCLASS
struct _DBGKM_EXIT_THREAD DBGKM_EXIT_THREAD
struct _DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION * PDEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION
struct _DBGKM_UNLOAD_DLL * PDBGKM_UNLOAD_DLL
struct _DBGKM_MSG DBGKM_MSG
struct _DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION DEBUG_OBJECT_KILL_PROCESS_ON_EXIT_INFORMATION
struct _DBGUI_WAIT_STATE_CHANGE DBGUI_WAIT_STATE_CHANGE
_DBG_STATE
Definition: dbgktypes.h:112
@ DbgBreakpointStateChange
Definition: dbgktypes.h:120
@ DbgCreateProcessStateChange
Definition: dbgktypes.h:116
@ DbgCreateThreadStateChange
Definition: dbgktypes.h:115
@ DbgExitProcessStateChange
Definition: dbgktypes.h:118
@ DbgExceptionStateChange
Definition: dbgktypes.h:119
@ DbgUnloadDllStateChange
Definition: dbgktypes.h:123
@ DbgExitThreadStateChange
Definition: dbgktypes.h:117
@ DbgSingleStepStateChange
Definition: dbgktypes.h:121
@ DbgIdle
Definition: dbgktypes.h:113
@ DbgLoadDllStateChange
Definition: dbgktypes.h:122
@ DbgReplyPending
Definition: dbgktypes.h:114
enum _DBGKM_APINUMBER DBGKM_APINUMBER
struct _DEBUG_EVENT DEBUG_EVENT
_DBGKM_APINUMBER
Definition: dbgktypes.h:65
@ DbgKmExceptionApi
Definition: dbgktypes.h:66
@ DbgKmCreateProcessApi
Definition: dbgktypes.h:68
@ DbgKmErrorReportApi
Definition: dbgktypes.h:73
@ DbgKmCreateThreadApi
Definition: dbgktypes.h:67
@ DbgKmExitProcessApi
Definition: dbgktypes.h:70
@ DbgKmUnloadDllApi
Definition: dbgktypes.h:72
@ DbgKmExitThreadApi
Definition: dbgktypes.h:69
@ DbgKmLoadDllApi
Definition: dbgktypes.h:71
@ DbgKmMaxApiNumber
Definition: dbgktypes.h:74
struct _DBGKM_CREATE_THREAD * PDBGKM_CREATE_THREAD
struct _DEBUG_EVENT * PDEBUG_EVENT
DBGKM_CREATE_THREAD InitialThread
Definition: dbgktypes.h:148
EXCEPTION_RECORD ExceptionRecord
Definition: dbgktypes.h:131
NTSTATUS ExitStatus
Definition: dbgktypes.h:158
NTSTATUS ExitStatus
Definition: dbgktypes.h:153
HANDLE FileHandle
Definition: dbgktypes.h:163
PVOID NamePointer
Definition: dbgktypes.h:167
ULONG DebugInfoFileOffset
Definition: dbgktypes.h:165
ULONG DebugInfoSize
Definition: dbgktypes.h:166
PORT_MESSAGE h
Definition: dbgktypes.h:208
NTSTATUS ReturnedStatus
Definition: dbgktypes.h:210
DBGKM_CREATE_THREAD CreateThread
Definition: dbgktypes.h:214
DBGKM_CREATE_PROCESS CreateProcess
Definition: dbgktypes.h:215
DBGKM_UNLOAD_DLL UnloadDll
Definition: dbgktypes.h:219
DBGKM_EXCEPTION Exception
Definition: dbgktypes.h:213
DBGKM_LOAD_DLL LoadDll
Definition: dbgktypes.h:218
DBGKM_APINUMBER ApiNumber
Definition: dbgktypes.h:209
DBGKM_EXIT_PROCESS ExitProcess
Definition: dbgktypes.h:217
DBGKM_EXIT_THREAD ExitThread
Definition: dbgktypes.h:216
DBGKM_EXIT_PROCESS ExitProcess
Definition: dbgktypes.h:196
DBGKM_LOAD_DLL LoadDll
Definition: dbgktypes.h:198
struct _DBGUI_WAIT_STATE_CHANGE::@2409::@2410 CreateThread
DBGKM_CREATE_PROCESS NewProcess
Definition: dbgktypes.h:193
DBGKM_UNLOAD_DLL UnloadDll
Definition: dbgktypes.h:199
union _DBGUI_WAIT_STATE_CHANGE::@2409 StateInfo
DBGKM_EXIT_THREAD ExitThread
Definition: dbgktypes.h:195
DBGKM_EXCEPTION Exception
Definition: dbgktypes.h:197
struct _DBGUI_WAIT_STATE_CHANGE::@2409::@2411 CreateProcessInfo
DBGKM_CREATE_THREAD NewThread
Definition: dbgktypes.h:187
PEPROCESS Process
Definition: dbgktypes.h:233
PETHREAD BackoutThread
Definition: dbgktypes.h:237
PETHREAD Thread
Definition: dbgktypes.h:234
DBGKM_MSG ApiMsg
Definition: dbgktypes.h:238
ULONG Flags
Definition: dbgktypes.h:236
NTSTATUS Status
Definition: dbgktypes.h:235
LIST_ENTRY EventList
Definition: dbgktypes.h:230
KEVENT ContinueEvent
Definition: dbgktypes.h:231
CLIENT_ID ClientId
Definition: dbgktypes.h:232
FAST_MUTEX Mutex
Definition: dbgktypes.h:93
UCHAR KillProcessOnExit
Definition: dbgktypes.h:101
KEVENT EventsPresent
Definition: dbgktypes.h:92
ULONG Flags
Definition: dbgktypes.h:97
LIST_ENTRY EventList
Definition: dbgktypes.h:94
UCHAR DebuggerInactive
Definition: dbgktypes.h:100
Definition: typedefs.h:120
uint32_t ULONG
Definition: typedefs.h:59
FAST_MUTEX
Definition: extypes.h:17
unsigned char UCHAR
Definition: xmlstorage.h:181