master
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef __DBGENG_H__
7#define __DBGENG_H__
8
9#include <stdarg.h>
10#include <objbase.h>
11
12#ifndef _WDBGEXTS_
13typedef struct _WINDBG_EXTENSION_APIS32 *PWINDBG_EXTENSION_APIS32;
14typedef struct _WINDBG_EXTENSION_APIS64 *PWINDBG_EXTENSION_APIS64;
15#endif
16
17#ifndef _CRASHLIB_
18typedef struct _MEMORY_BASIC_INFORMATION64 *PMEMORY_BASIC_INFORMATION64;
19#endif
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25 DEFINE_GUID(IID_IDebugAdvanced,0xf2df5f53,0x071f,0x47bd,0x9d,0xe6,0x57,0x34,0xc3,0xfe,0xd6,0x89);
26 DEFINE_GUID(IID_IDebugAdvanced2,0x716d14c9,0x119b,0x4ba5,0xaf,0x1f,0x08,0x90,0xe6,0x72,0x41,0x6a);
27 DEFINE_GUID(IID_IDebugAdvanced3,0xcba4abb4,0x84c4,0x444d,0x87,0xca,0xa0,0x4e,0x13,0x28,0x67,0x39);
28 DEFINE_GUID(IID_IDebugAdvanced4,0xd1069067,0x2a65,0x4bf0,0xae,0x97,0x76,0x18,0x4b,0x67,0x85,0x6b);
29 DEFINE_GUID(IID_IDebugBreakpoint,0x5bd9d474,0x5975,0x423a,0xb8,0x8b,0x65,0xa8,0xe7,0x11,0x0e,0x65);
30 DEFINE_GUID(IID_IDebugBreakpoint2,0x1b278d20,0x79f2,0x426e,0xa3,0xf9,0xc1,0xdd,0xf3,0x75,0xd4,0x8e);
31 DEFINE_GUID(IID_IDebugBreakpoint3,0x38f5c249,0xb448,0x43bb,0x98,0x35,0x57,0x9d,0x4e,0xc0,0x22,0x49);
32 DEFINE_GUID(IID_IDebugClient,0x27fe5639,0x8407,0x4f47,0x83,0x64,0xee,0x11,0x8f,0xb0,0x8a,0xc8);
33 DEFINE_GUID(IID_IDebugClient2,0xedbed635,0x372e,0x4dab,0xbb,0xfe,0xed,0x0d,0x2f,0x63,0xbe,0x81);
34 DEFINE_GUID(IID_IDebugClient3,0xdd492d7f,0x71b8,0x4ad6,0xa8,0xdc,0x1c,0x88,0x74,0x79,0xff,0x91);
35 DEFINE_GUID(IID_IDebugClient4,0xca83c3de,0x5089,0x4cf8,0x93,0xc8,0xd8,0x92,0x38,0x7f,0x2a,0x5e);
36 DEFINE_GUID(IID_IDebugClient5,0xe3acb9d7,0x7ec2,0x4f0c,0xa0,0xda,0xe8,0x1e,0x0c,0xbb,0xe6,0x28);
37 DEFINE_GUID(IID_IDebugClient6,0xfd28b4c5,0xc498,0x4686,0xa2,0x8e,0x62,0xca,0xd2,0x15,0x4e,0xb3);
38 DEFINE_GUID(IID_IDebugClient7,0x13586be3,0x542e,0x481e,0xb1,0xf2,0x84,0x97,0xba,0x74,0xf9,0xa9);
39 DEFINE_GUID(IID_IDebugClient8,0xcec43add,0x6375,0x469e,0x83,0xd5,0x41,0x4e,0x40,0x33,0xc1,0x9a);
40 DEFINE_GUID(IID_IDebugClient9,0x2c24cd5b,0x4d9e,0x4df4,0x8a,0x70,0x3d,0x37,0x44,0x0d,0x11,0x9f);
41 DEFINE_GUID(IID_IDebugPlmClient,0xa02b66c4,0xaea3,0x4234,0xa9,0xf7,0xfe,0x4c,0x38,0x3d,0x4e,0x29);
42 DEFINE_GUID(IID_IDebugPlmClient2,0x597c980d,0xe7bd,0x4309,0x96,0x2c,0x9d,0x9b,0x69,0xa7,0x37,0x2c);
43 DEFINE_GUID(IID_IDebugPlmClient3,0xcdf48669,0x901f,0x4791,0xb8,0x68,0x7d,0x2c,0xb3,0xa2,0xd7,0xfc);
44 DEFINE_GUID(IID_IDebugOutputStream,0x7782d8f2,0x2b85,0x4059,0xab,0x88,0x28,0xce,0xdd,0xca,0x1c,0x80);
45 DEFINE_GUID(IID_IDebugControl,0x5182e668,0x105e,0x416e,0xad,0x92,0x24,0xef,0x80,0x04,0x24,0xba);
46 DEFINE_GUID(IID_IDebugControl2,0xd4366723,0x44df,0x4bed,0x8c,0x7e,0x4c,0x05,0x42,0x4f,0x45,0x88);
47 DEFINE_GUID(IID_IDebugControl3,0x7df74a86,0xb03f,0x407f,0x90,0xab,0xa2,0x0d,0xad,0xce,0xad,0x08);
48 DEFINE_GUID(IID_IDebugControl4,0x94e60ce9,0x9b41,0x4b19,0x9f,0xc0,0x6d,0x9e,0xb3,0x52,0x72,0xb3);
49 DEFINE_GUID(IID_IDebugControl5,0xb2ffe162,0x2412,0x429f,0x8d,0x1d,0x5b,0xf6,0xdd,0x82,0x46,0x96);
50 DEFINE_GUID(IID_IDebugControl6,0xbc0d583f,0x126d,0x43a1,0x9c,0xc4,0xa8,0x60,0xab,0x1d,0x53,0x7b);
51 DEFINE_GUID(IID_IDebugControl7,0xb86fb3b1,0x80d4,0x475b,0xae,0xa3,0xcf,0x06,0x53,0x9c,0xf6,0x3a);
52 DEFINE_GUID(IID_IDebugDataSpaces,0x88f7dfab,0x3ea7,0x4c3a,0xae,0xfb,0xc4,0xe8,0x10,0x61,0x73,0xaa);
53 DEFINE_GUID(IID_IDebugDataSpaces2,0x7a5e852f,0x96e9,0x468f,0xac,0x1b,0x0b,0x3a,0xdd,0xc4,0xa0,0x49);
54 DEFINE_GUID(IID_IDebugDataSpaces3,0x23f79d6c,0x8aaf,0x4f7c,0xa6,0x07,0x99,0x95,0xf5,0x40,0x7e,0x63);
55 DEFINE_GUID(IID_IDebugDataSpaces4,0xd98ada1f,0x29e9,0x4ef5,0xa6,0xc0,0xe5,0x33,0x49,0x88,0x32,0x12);
56 DEFINE_GUID(IID_IDebugEventCallbacks,0x337be28b,0x5036,0x4d72,0xb6,0xbf,0xc4,0x5f,0xbb,0x9f,0x2e,0xaa);
57 DEFINE_GUID(IID_IDebugEventCallbacksWide,0x0690e046,0x9c23,0x45ac,0xa0,0x4f,0x98,0x7a,0xc2,0x9a,0xd0,0xd3);
58 DEFINE_GUID(IID_IDebugEventContextCallbacks,0x61a4905b,0x23f9,0x4247,0xb3,0xc5,0x53,0xd0,0x87,0x52,0x9a,0xb7);
59 DEFINE_GUID(IID_IDebugInputCallbacks,0x9f50e42c,0xf136,0x499e,0x9a,0x97,0x73,0x03,0x6c,0x94,0xed,0x2d);
60 DEFINE_GUID(IID_IDebugOutputCallbacks,0x4bf58045,0xd654,0x4c40,0xb0,0xaf,0x68,0x30,0x90,0xf3,0x56,0xdc);
61 DEFINE_GUID(IID_IDebugOutputCallbacksWide,0x4c7fd663,0xc394,0x4e26,0x8e,0xf1,0x34,0xad,0x5e,0xd3,0x76,0x4c);
62 DEFINE_GUID(IID_IDebugRegisters,0xce289126,0x9e84,0x45a7,0x93,0x7e,0x67,0xbb,0x18,0x69,0x14,0x93);
63 DEFINE_GUID(IID_IDebugRegisters2,0x1656afa9,0x19c6,0x4e3a,0x97,0xe7,0x5d,0xc9,0x16,0x0c,0xf9,0xc4);
64 DEFINE_GUID(IID_IDebugSymbolGroup,0xf2528316,0x0f1a,0x4431,0xae,0xed,0x11,0xd0,0x96,0xe1,0xe2,0xab);
65 DEFINE_GUID(IID_IDebugSymbolGroup2,0x6a7ccc5f,0xfb5e,0x4dcc,0xb4,0x1c,0x6c,0x20,0x30,0x7b,0xcc,0xc7);
66 DEFINE_GUID(IID_IDebugSymbols,0x8c31e98c,0x983a,0x48a5,0x90,0x16,0x6f,0xe5,0xd6,0x67,0xa9,0x50);
67 DEFINE_GUID(IID_IDebugSymbols2,0x3a707211,0xafdd,0x4495,0xad,0x4f,0x56,0xfe,0xcd,0xf8,0x16,0x3f);
68 DEFINE_GUID(IID_IDebugSymbols3,0xf02fbecc,0x50ac,0x4f36,0x9a,0xd9,0xc9,0x75,0xe8,0xf3,0x2f,0xf8);
69 DEFINE_GUID(IID_IDebugSymbols4,0xe391bbd8,0x9d8c,0x4418,0x84,0x0b,0xc0,0x06,0x59,0x2a,0x17,0x52);
70 DEFINE_GUID(IID_IDebugSymbols5,0xc65fa83e,0x1e69,0x475e,0x8e,0x0e,0xb5,0xd7,0x9e,0x9c,0xc1,0x7e);
71 DEFINE_GUID(IID_IDebugSystemObjects,0x6b86fe2c,0x2c4f,0x4f0c,0x9d,0xa2,0x17,0x43,0x11,0xac,0xc3,0x27);
72 DEFINE_GUID(IID_IDebugSystemObjects2,0x0ae9f5ff,0x1852,0x4679,0xb0,0x55,0x49,0x4b,0xee,0x64,0x07,0xee);
73 DEFINE_GUID(IID_IDebugSystemObjects3,0xe9676e2f,0xe286,0x4ea3,0xb0,0xf9,0xdf,0xe5,0xd9,0xfc,0x33,0x0e);
74 DEFINE_GUID(IID_IDebugSystemObjects4,0x489468e6,0x7d0f,0x4af5,0x87,0xab,0x25,0x20,0x74,0x54,0xd5,0x53);
75
76 typedef struct IDebugAdvanced *PDEBUG_ADVANCED;
77 typedef struct IDebugAdvanced2 *PDEBUG_ADVANCED2;
78 typedef struct IDebugAdvanced3 *PDEBUG_ADVANCED3;
79 typedef struct IDebugAdvanced4 *PDEBUG_ADVANCED4;
80 typedef struct IDebugBreakpoint *PDEBUG_BREAKPOINT;
81 typedef struct IDebugBreakpoint2 *PDEBUG_BREAKPOINT2;
82 typedef struct IDebugBreakpoint3 *PDEBUG_BREAKPOINT3;
83 typedef struct IDebugClient *PDEBUG_CLIENT;
84 typedef struct IDebugClient2 *PDEBUG_CLIENT2;
85 typedef struct IDebugClient3 *PDEBUG_CLIENT3;
86 typedef struct IDebugClient4 *PDEBUG_CLIENT4;
87 typedef struct IDebugClient5 *PDEBUG_CLIENT5;
88 typedef struct IDebugClient6 *PDEBUG_CLIENT6;
89 typedef struct IDebugClient7 *PDEBUG_CLIENT7;
90 typedef struct IDebugClient8 *PDEBUG_CLIENT8;
91 typedef struct IDebugClient9 *PDEBUG_CLIENT9;
92 typedef struct IDebugPlmClient *PIDEBUG_PLMCLIENT;
93 typedef struct IDebugPlmClient2 *PIDEBUG_PLMCLIENT2;
94 typedef struct IDebugPlmClient3 *PIDEBUG_PLMCLIENT3;
95 typedef struct IDebugOutputStream *PDEBUG_OUTPUT_STREAM;
96 typedef struct IDebugControl *PDEBUG_CONTROL;
97 typedef struct IDebugControl2 *PDEBUG_CONTROL2;
98 typedef struct IDebugControl3 *PDEBUG_CONTROL3;
99 typedef struct IDebugControl4 *PDEBUG_CONTROL4;
100 typedef struct IDebugControl5 *PDEBUG_CONTROL5;
101 typedef struct IDebugControl6 *PDEBUG_CONTROL6;
102 typedef struct IDebugControl7 *PDEBUG_CONTROL7;
103 typedef struct IDebugDataSpaces *PDEBUG_DATA_SPACES;
104 typedef struct IDebugDataSpaces2 *PDEBUG_DATA_SPACES2;
105 typedef struct IDebugDataSpaces3 *PDEBUG_DATA_SPACES3;
106 typedef struct IDebugDataSpaces4 *PDEBUG_DATA_SPACES4;
107 typedef struct IDebugEventCallbacks *PDEBUG_EVENT_CALLBACKS;
108 typedef struct IDebugEventCallbacksWide *PDEBUG_EVENT_CALLBACKS_WIDE;
109 typedef struct IDebugEventContextCallbacks *PDEBUG_EVENT_CONTEXT_CALLBACKS;
110 typedef struct IDebugInputCallbacks *PDEBUG_INPUT_CALLBACKS;
111 typedef struct IDebugOutputCallbacks *PDEBUG_OUTPUT_CALLBACKS;
112 typedef struct IDebugOutputCallbacksWide *PDEBUG_OUTPUT_CALLBACKS_WIDE;
113 typedef struct IDebugRegisters *PDEBUG_REGISTERS;
114 typedef struct IDebugRegisters2 *PDEBUG_REGISTERS2;
115 typedef struct IDebugSymbolGroup *PDEBUG_SYMBOL_GROUP;
116 typedef struct IDebugSymbolGroup2 *PDEBUG_SYMBOL_GROUP2;
117 typedef struct IDebugSymbols *PDEBUG_SYMBOLS;
118 typedef struct IDebugSymbols2 *PDEBUG_SYMBOLS2;
119 typedef struct IDebugSymbols3 *PDEBUG_SYMBOLS3;
120 typedef struct IDebugSymbols4 *PDEBUG_SYMBOLS4;
121 typedef struct IDebugSymbols5 *PDEBUG_SYMBOLS5;
122 typedef struct IDebugSystemObjects *PDEBUG_SYSTEM_OBJECTS;
123 typedef struct IDebugSystemObjects2 *PDEBUG_SYSTEM_OBJECTS2;
124 typedef struct IDebugSystemObjects3 *PDEBUG_SYSTEM_OBJECTS3;
125 typedef struct IDebugSystemObjects4 *PDEBUG_SYSTEM_OBJECTS4;
126
127#define DEBUG_EXTEND64(Addr) ((ULONG64)(LONG64)(LONG)(Addr))
128
129 STDAPI DebugConnect(PCSTR RemoteOptions,REFIID InterfaceId,PVOID *Interface);
130 STDAPI DebugCreate(REFIID InterfaceId,PVOID *Interface);
131
132 typedef struct _DEBUG_OFFSET_REGION {
133 ULONG64 Base;
134 ULONG64 Size;
135 } DEBUG_OFFSET_REGION,*PDEBUG_OFFSET_REGION;
136
137#undef INTERFACE
138#define INTERFACE IDebugAdvanced
139 DECLARE_INTERFACE_(IDebugAdvanced,IUnknown) {
140 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
141 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
142 STDMETHOD_(ULONG,Release)(THIS) PURE;
143 STDMETHOD(GetThreadContext)(THIS_ PVOID Context,ULONG ContextSize) PURE;
144 STDMETHOD(SetThreadContext)(THIS_ PVOID Context,ULONG ContextSize) PURE;
145 };
146#ifdef __CRT_UUID_DECL
147__CRT_UUID_DECL(IDebugAdvanced,0xf2df5f53,0x071f,0x47bd,0x9d,0xe6,0x57,0x34,0xc3,0xfe,0xd6,0x89)
148#endif
149
150 typedef struct _DEBUG_READ_USER_MINIDUMP_STREAM {
151 ULONG StreamType;
152 ULONG Flags;
153 ULONG64 Offset;
154 PVOID Buffer;
155 ULONG BufferSize;
156 ULONG BufferUsed;
157 } DEBUG_READ_USER_MINIDUMP_STREAM,*PDEBUG_READ_USER_MINIDUMP_STREAM;
158
159#define DEBUG_GET_TEXT_COMPLETIONS_NO_DOT_COMMANDS 0x00000001
160#define DEBUG_GET_TEXT_COMPLETIONS_NO_EXTENSION_COMMANDS 0x00000002
161#define DEBUG_GET_TEXT_COMPLETIONS_NO_SYMBOLS 0x00000004
162
163 typedef struct _DEBUG_GET_TEXT_COMPLETIONS_IN {
164 ULONG Flags;
165 ULONG MatchCountLimit;
166 ULONG64 Reserved[3];
167 } DEBUG_GET_TEXT_COMPLETIONS_IN,*PDEBUG_GET_TEXT_COMPLETIONS_IN;
168
169#define DEBUG_GET_TEXT_COMPLETIONS_IS_DOT_COMMAND 0x00000001
170#define DEBUG_GET_TEXT_COMPLETIONS_IS_EXTENSION_COMMAND 0x00000002
171#define DEBUG_GET_TEXT_COMPLETIONS_IS_SYMBOL 0x00000004
172
173 typedef struct _DEBUG_GET_TEXT_COMPLETIONS_OUT {
174 ULONG Flags;
175 ULONG ReplaceIndex;
176 ULONG MatchCount;
177 ULONG Reserved1;
178 ULONG64 Reserved2[2];
179 } DEBUG_GET_TEXT_COMPLETIONS_OUT,*PDEBUG_GET_TEXT_COMPLETIONS_OUT;
180
181 typedef struct _DEBUG_CACHED_SYMBOL_INFO {
182 ULONG64 ModBase;
183 ULONG64 Arg1;
184 ULONG64 Arg2;
185 ULONG Id;
186 ULONG Arg3;
187 } DEBUG_CACHED_SYMBOL_INFO,*PDEBUG_CACHED_SYMBOL_INFO;
188
189 typedef struct _PROCESS_NAME_ENTRY {
190 ULONG ProcessId;
191 ULONG NameOffset;
192 ULONG NameSize;
193 ULONG NextEntry;
194 } PROCESS_NAME_ENTRY,*PPROCESS_NAME_ENTRY;
195
196#define DEBUG_REQUEST_SOURCE_PATH_HAS_SOURCE_SERVER 0
197#define DEBUG_REQUEST_TARGET_EXCEPTION_CONTEXT 1
198#define DEBUG_REQUEST_TARGET_EXCEPTION_THREAD 2
199#define DEBUG_REQUEST_TARGET_EXCEPTION_RECORD 3
200#define DEBUG_REQUEST_GET_ADDITIONAL_CREATE_OPTIONS 4
201#define DEBUG_REQUEST_SET_ADDITIONAL_CREATE_OPTIONS 5
202#define DEBUG_REQUEST_GET_WIN32_MAJOR_MINOR_VERSIONS 6
203#define DEBUG_REQUEST_READ_USER_MINIDUMP_STREAM 7
204#define DEBUG_REQUEST_TARGET_CAN_DETACH 8
205#define DEBUG_REQUEST_SET_LOCAL_IMPLICIT_COMMAND_LINE 9
206#define DEBUG_REQUEST_GET_CAPTURED_EVENT_CODE_OFFSET 10
207#define DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM 11
208#define DEBUG_REQUEST_EXT_TYPED_DATA_ANSI 12
209#define DEBUG_REQUEST_GET_EXTENSION_SEARCH_PATH_WIDE 13
210#define DEBUG_REQUEST_GET_TEXT_COMPLETIONS_WIDE 14
211#define DEBUG_REQUEST_GET_CACHED_SYMBOL_INFO 15
212#define DEBUG_REQUEST_ADD_CACHED_SYMBOL_INFO 16
213#define DEBUG_REQUEST_REMOVE_CACHED_SYMBOL_INFO 17
214#define DEBUG_REQUEST_GET_TEXT_COMPLETIONS_ANSI 18
215#define DEBUG_REQUEST_CURRENT_OUTPUT_CALLBACKS_ARE_DML_AWARE 19
216#define DEBUG_REQUEST_GET_OFFSET_UNWIND_INFORMATION 20
217#define DEBUG_REQUEST_GET_DUMP_HEADER 21
218#define DEBUG_REQUEST_SET_DUMP_HEADER 22
219#define DEBUG_REQUEST_MIDORI 23
220#define DEBUG_REQUEST_PROCESS_DESCRIPTORS 24
221#define DEBUG_REQUEST_MISC_INFORMATION 25
222#define DEBUG_REQUEST_OPEN_PROCESS_TOKEN 26
223#define DEBUG_REQUEST_OPEN_THREAD_TOKEN 27
224#define DEBUG_REQUEST_DUPLICATE_TOKEN 28
225#define DEBUG_REQUEST_QUERY_INFO_TOKEN 29
226#define DEBUG_REQUEST_CLOSE_TOKEN 30
227#define DEBUG_REQUEST_WOW_PROCESS 31
228#define DEBUG_REQUEST_WOW_MODULE 32
229#define DEBUG_LIVE_USER_NON_INVASIVE 33
230#define DEBUG_REQUEST_RESUME_THREAD 34
231#define DEBUG_REQUEST_INLINE_QUERY 35
232#define DEBUG_REQUEST_TL_INSTRUMENTATION_AWARE 36
233#define DEBUG_REQUEST_GET_INSTRUMENTATION_VERSION 37
234#define DEBUG_REQUEST_GET_MODULE_ARCHITECTURE 38
235#define DEBUG_REQUEST_GET_IMAGE_ARCHITECTURE 39
236#define DEBUG_REQUEST_SET_PARENT_HWND 40
237
238#define DEBUG_SRCFILE_SYMBOL_TOKEN 0
239#define DEBUG_SRCFILE_SYMBOL_TOKEN_SOURCE_COMMAND_WIDE 1
240#define DEBUG_SRCFILE_SYMBOL_CHECKSUMINFO 2
241
242#define DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE 0
243#define DEBUG_SYMINFO_IMAGEHLP_MODULEW64 1
244#define DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE 2
245#define DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS 3
246
247#define DEBUG_SYSOBJINFO_THREAD_BASIC_INFORMATION 0
248#define DEBUG_SYSOBJINFO_THREAD_NAME_WIDE 1
249#define DEBUG_SYSOBJINFO_CURRENT_PROCESS_COOKIE 2
250
251#define DEBUG_TBINFO_EXIT_STATUS 0x00000001
252#define DEBUG_TBINFO_PRIORITY_CLASS 0x00000002
253#define DEBUG_TBINFO_PRIORITY 0x00000004
254#define DEBUG_TBINFO_TIMES 0x00000008
255#define DEBUG_TBINFO_START_OFFSET 0x00000010
256#define DEBUG_TBINFO_AFFINITY 0x00000020
257#define DEBUG_TBINFO_ALL 0x0000003f
258
259 typedef struct _DEBUG_THREAD_BASIC_INFORMATION {
260 ULONG Valid;
261 ULONG ExitStatus;
262 ULONG PriorityClass;
263 ULONG Priority;
264 ULONG64 CreateTime;
265 ULONG64 ExitTime;
266 ULONG64 KernelTime;
267 ULONG64 UserTime;
268 ULONG64 StartOffset;
269 ULONG64 Affinity;
270 } DEBUG_THREAD_BASIC_INFORMATION,*PDEBUG_THREAD_BASIC_INFORMATION;
271
272#undef INTERFACE
273#define INTERFACE IDebugAdvanced2
274 DECLARE_INTERFACE_(IDebugAdvanced2, IUnknown) {
275 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
276 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
277 STDMETHOD_(ULONG, Release)(THIS) PURE;
278 STDMETHOD(GetThreadContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
279 STDMETHOD(SetThreadContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
280 STDMETHOD(Request)(THIS_ ULONG Request, PVOID InBuffer, ULONG InBufferSize, PVOID OutBuffer, ULONG OutBufferSize, PULONG OutSize) PURE;
281 STDMETHOD(GetSourceFileInformation)(THIS_ ULONG Which, PSTR SourceFile, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
282 STDMETHOD(FindSourceFileAndToken)(THIS_ ULONG StartElement, ULONG64 ModAddr, PCSTR File, ULONG Flags, PVOID FileToken, ULONG FileTokenSize, PULONG FoundElement, PSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
283 STDMETHOD(GetSymbolInformation)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize, PSTR StringBuffer, ULONG StringBufferSize, PULONG StringSize) PURE;
284 STDMETHOD(GetSystemObjectInformation)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
285 };
286#ifdef __CRT_UUID_DECL
287__CRT_UUID_DECL(IDebugAdvanced2,0x716d14c9,0x119b,0x4ba5,0xaf,0x1f,0x08,0x90,0xe6,0x72,0x41,0x6a)
288#endif
289
290#undef INTERFACE
291#define INTERFACE IDebugAdvanced3
292 DECLARE_INTERFACE_(IDebugAdvanced3, IUnknown) {
293 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
294 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
295 STDMETHOD_(ULONG, Release)(THIS) PURE;
296 STDMETHOD(GetThreadContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
297 STDMETHOD(SetThreadContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
298 STDMETHOD(Request)(THIS_ ULONG Request, PVOID InBuffer, ULONG InBufferSize, PVOID OutBuffer, ULONG OutBufferSize, PULONG OutSize) PURE;
299 STDMETHOD(GetSourceFileInformation)(THIS_ ULONG Which, PSTR SourceFile, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
300 STDMETHOD(FindSourceFileAndToken)(THIS_ ULONG StartElement, ULONG64 ModAddr, PCSTR File, ULONG Flags, PVOID FileToken, ULONG FileTokenSize, PULONG FoundElement, PSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
301 STDMETHOD(GetSymbolInformation)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize, PSTR StringBuffer, ULONG StringBufferSize, PULONG StringSize) PURE;
302 STDMETHOD(GetSystemObjectInformation)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
303 STDMETHOD(GetSourceFileInformationWide)(THIS_ ULONG Which, PWSTR SourceFile, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
304 STDMETHOD(FindSourceFileAndTokenWide)(THIS_ ULONG StartElement, ULONG64 ModAddr, PCWSTR File, ULONG Flags, PVOID FileToken, ULONG FileTokenSize, PULONG FoundElement, PWSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
305 STDMETHOD(GetSymbolInformationWide)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize, PWSTR StringBuffer, ULONG StringBufferSize, PULONG StringSize) PURE;
306 };
307#ifdef __CRT_UUID_DECL
308__CRT_UUID_DECL(IDebugAdvanced3,0xcba4abb4,0x84c4,0x444d,0x87,0xca,0xa0,0x4e,0x13,0x28,0x67,0x39)
309#endif
310
311 typedef struct _SYMBOL_INFO_EX {
312 ULONG SizeOfStruct;
313 ULONG TypeOfInfo;
314 ULONG64 Offset;
315 ULONG Line;
316 ULONG Displacement;
317 ULONG Reserved[4];
318 } SYMBOL_INFO_EX,*PSYMBOL_INFO_EX;
319
320#undef INTERFACE
321#define INTERFACE IDebugAdvanced4
322 DECLARE_INTERFACE_(IDebugAdvanced4, IUnknown) {
323 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
324 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
325 STDMETHOD_(ULONG, Release)(THIS) PURE;
326 STDMETHOD(GetThreadContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
327 STDMETHOD(SetThreadContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
328 STDMETHOD(Request)(THIS_ ULONG Request, PVOID InBuffer, ULONG InBufferSize, PVOID OutBuffer, ULONG OutBufferSize, PULONG OutSize) PURE;
329 STDMETHOD(GetSourceFileInformation)(THIS_ ULONG Which, PSTR SourceFile, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
330 STDMETHOD(FindSourceFileAndToken)(THIS_ ULONG StartElement, ULONG64 ModAddr, PCSTR File, ULONG Flags, PVOID FileToken, ULONG FileTokenSize, PULONG FoundElement, PSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
331 STDMETHOD(GetSymbolInformation)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize, PSTR StringBuffer, ULONG StringBufferSize, PULONG StringSize) PURE;
332 STDMETHOD(GetSystemObjectInformation)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
333 STDMETHOD(GetSourceFileInformationWide)(THIS_ ULONG Which, PWSTR SourceFile, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
334 STDMETHOD(FindSourceFileAndTokenWide)(THIS_ ULONG StartElement, ULONG64 ModAddr, PCWSTR File, ULONG Flags, PVOID FileToken, ULONG FileTokenSize, PULONG FoundElement, PWSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
335 STDMETHOD(GetSymbolInformationWide)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize, PWSTR StringBuffer, ULONG StringBufferSize, PULONG StringSize) PURE;
336 STDMETHOD(GetSymbolInformationWideEx)(THIS_ ULONG Which, ULONG64 Arg64, ULONG Arg32, PVOID Buffer, ULONG BufferSize, PULONG InfoSize, PWSTR StringBuffer, ULONG StringBufferSize, PULONG StringSize, PSYMBOL_INFO_EX pInfoEx) PURE;
337 };
338#ifdef __CRT_UUID_DECL
339__CRT_UUID_DECL(IDebugAdvanced4,0xd1069067,0x2a65,0x4bf0,0xae,0x97,0x76,0x18,0x4b,0x67,0x85,0x6b)
340#endif
341
342#define DEBUG_BREAKPOINT_CODE 0
343#define DEBUG_BREAKPOINT_DATA 1
344
345#define DEBUG_BREAKPOINT_GO_ONLY 0x00000001
346#define DEBUG_BREAKPOINT_DEFERRED 0x00000002
347#define DEBUG_BREAKPOINT_ENABLED 0x00000004
348#define DEBUG_BREAKPOINT_ADDER_ONLY 0x00000008
349#define DEBUG_BREAKPOINT_ONE_SHOT 0x00000010
350
351#define DEBUG_BREAK_READ 0x00000001
352#define DEBUG_BREAK_WRITE 0x00000002
353#define DEBUG_BREAK_EXECUTE 0x00000004
354#define DEBUG_BREAK_IO 0x00000008
355
356 typedef struct _DEBUG_BREAKPOINT_PARAMETERS {
357 ULONG64 Offset;
358 ULONG Id;
359 ULONG BreakType;
360 ULONG ProcType;
361 ULONG Flags;
362 ULONG DataSize;
363 ULONG DataAccessType;
364 ULONG PassCount;
365 ULONG CurrentPassCount;
366 ULONG MatchThread;
367 ULONG CommandSize;
368 ULONG OffsetExpressionSize;
369 } DEBUG_BREAKPOINT_PARAMETERS,*PDEBUG_BREAKPOINT_PARAMETERS;
370
371#undef INTERFACE
372#define INTERFACE IDebugBreakpoint
373 DECLARE_INTERFACE_(IDebugBreakpoint,IUnknown) {
374 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
375 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
376 STDMETHOD_(ULONG,Release)(THIS) PURE;
377 STDMETHOD(GetId)(THIS_ PULONG Id) PURE;
378 STDMETHOD(GetType)(THIS_ PULONG BreakType,PULONG ProcType) PURE;
379 STDMETHOD(GetAdder)(THIS_ PDEBUG_CLIENT *Adder) PURE;
380 STDMETHOD(GetFlags)(THIS_ PULONG Flags) PURE;
381 STDMETHOD(AddFlags)(THIS_ ULONG Flags) PURE;
382 STDMETHOD(RemoveFlags)(THIS_ ULONG Flags) PURE;
383 STDMETHOD(SetFlags)(THIS_ ULONG Flags) PURE;
384 STDMETHOD(GetOffset)(THIS_ PULONG64 Offset) PURE;
385 STDMETHOD(SetOffset)(THIS_ ULONG64 Offset) PURE;
386 STDMETHOD(GetDataParameters)(THIS_ PULONG Size,PULONG AccessType) PURE;
387 STDMETHOD(SetDataParameters)(THIS_ ULONG Size,ULONG AccessType) PURE;
388 STDMETHOD(GetPassCount)(THIS_ PULONG Count) PURE;
389 STDMETHOD(SetPassCount)(THIS_ ULONG Count) PURE;
390 STDMETHOD(GetCurrentPassCount)(THIS_ PULONG Count) PURE;
391 STDMETHOD(GetMatchThreadId)(THIS_ PULONG Id) PURE;
392 STDMETHOD(SetMatchThreadId)(THIS_ ULONG Thread) PURE;
393 STDMETHOD(GetCommand)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE;
394 STDMETHOD(SetCommand)(THIS_ PCSTR Command) PURE;
395 STDMETHOD(GetOffsetExpression)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG ExpressionSize) PURE;
396 STDMETHOD(SetOffsetExpression)(THIS_ PCSTR Expression) PURE;
397 STDMETHOD(GetParameters)(THIS_ PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
398 };
399#ifdef __CRT_UUID_DECL
400__CRT_UUID_DECL(IDebugBreakpoint,0x5bd9d474,0x5975,0x423a,0xb8,0x8b,0x65,0xa8,0xe7,0x11,0x0e,0x65)
401#endif
402
403#undef INTERFACE
404#define INTERFACE IDebugBreakpoint2
405 DECLARE_INTERFACE_(IDebugBreakpoint2, IUnknown) {
406 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
407 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
408 STDMETHOD_(ULONG, Release)(THIS) PURE;
409 STDMETHOD(GetId)(THIS_ PULONG Id) PURE;
410 STDMETHOD(GetType)(THIS_ PULONG BreakType, PULONG ProcType) PURE;
411 STDMETHOD(GetAdder)(THIS_ PDEBUG_CLIENT *Adder) PURE;
412 STDMETHOD(GetFlags)(THIS_ PULONG Flags) PURE;
413 STDMETHOD(AddFlags)(THIS_ ULONG Flags) PURE;
414 STDMETHOD(RemoveFlags)(THIS_ ULONG Flags) PURE;
415 STDMETHOD(SetFlags)(THIS_ ULONG Flags) PURE;
416 STDMETHOD(GetOffset)(THIS_ PULONG64 Offset) PURE;
417 STDMETHOD(SetOffset)(THIS_ ULONG64 Offset) PURE;
418 STDMETHOD(GetDataParameters)(THIS_ PULONG Size, PULONG AccessType) PURE;
419 STDMETHOD(SetDataParameters)(THIS_ ULONG Size, ULONG AccessType) PURE;
420 STDMETHOD(GetPassCount)(THIS_ PULONG Count) PURE;
421 STDMETHOD(SetPassCount)(THIS_ ULONG Count) PURE;
422 STDMETHOD(GetCurrentPassCount)(THIS_ PULONG Count) PURE;
423 STDMETHOD(GetMatchThreadId)(THIS_ PULONG Id) PURE;
424 STDMETHOD(SetMatchThreadId)(THIS_ ULONG Thread) PURE;
425 STDMETHOD(GetCommand)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
426 STDMETHOD(SetCommand)(THIS_ PCSTR Command) PURE;
427 STDMETHOD(GetOffsetExpression)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG ExpressionSize) PURE;
428 STDMETHOD(SetOffsetExpression)(THIS_ PCSTR Expression) PURE;
429 STDMETHOD(GetParameters)(THIS_ PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
430 STDMETHOD(GetCommandWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
431 STDMETHOD(SetCommandWide)(THIS_ PCWSTR Command) PURE;
432 STDMETHOD(GetOffsetExpressionWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG ExpressionSize) PURE;
433 STDMETHOD(SetOffsetExpressionWide)(THIS_ PCWSTR Expression) PURE;
434 };
435#ifdef __CRT_UUID_DECL
436__CRT_UUID_DECL(IDebugBreakpoint2,0x1b278d20,0x79f2,0x426e,0xa3,0xf9,0xc1,0xdd,0xf3,0x75,0xd4,0x8e)
437#endif
438
439#undef INTERFACE
440#define INTERFACE IDebugBreakpoint3
441 DECLARE_INTERFACE_(IDebugBreakpoint3, IUnknown) {
442 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
443 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
444 STDMETHOD_(ULONG, Release)(THIS) PURE;
445 STDMETHOD(GetId)(THIS_ PULONG Id) PURE;
446 STDMETHOD(GetType)(THIS_ PULONG BreakType, PULONG ProcType) PURE;
447 STDMETHOD(GetAdder)(THIS_ PDEBUG_CLIENT *Adder) PURE;
448 STDMETHOD(GetFlags)(THIS_ PULONG Flags) PURE;
449 STDMETHOD(AddFlags)(THIS_ ULONG Flags) PURE;
450 STDMETHOD(RemoveFlags)(THIS_ ULONG Flags) PURE;
451 STDMETHOD(SetFlags)(THIS_ ULONG Flags) PURE;
452 STDMETHOD(GetOffset)(THIS_ PULONG64 Offset) PURE;
453 STDMETHOD(SetOffset)(THIS_ ULONG64 Offset) PURE;
454 STDMETHOD(GetDataParameters)(THIS_ PULONG Size, PULONG AccessType) PURE;
455 STDMETHOD(SetDataParameters)(THIS_ ULONG Size, ULONG AccessType) PURE;
456 STDMETHOD(GetPassCount)(THIS_ PULONG Count) PURE;
457 STDMETHOD(SetPassCount)(THIS_ ULONG Count) PURE;
458 STDMETHOD(GetCurrentPassCount)(THIS_ PULONG Count) PURE;
459 STDMETHOD(GetMatchThreadId)(THIS_ PULONG Id) PURE;
460 STDMETHOD(SetMatchThreadId)(THIS_ ULONG Thread) PURE;
461 STDMETHOD(GetCommand)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
462 STDMETHOD(SetCommand)(THIS_ PCSTR Command) PURE;
463 STDMETHOD(GetOffsetExpression)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG ExpressionSize) PURE;
464 STDMETHOD(SetOffsetExpression)(THIS_ PCSTR Expression) PURE;
465 STDMETHOD(GetParameters)(THIS_ PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
466 STDMETHOD(GetCommandWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
467 STDMETHOD(SetCommandWide)(THIS_ PCWSTR Command) PURE;
468 STDMETHOD(GetOffsetExpressionWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG ExpressionSize) PURE;
469 STDMETHOD(SetOffsetExpressionWide)(THIS_ PCWSTR Expression) PURE;
470 STDMETHOD(GetGuid)(THIS_ LPGUID Guid) PURE;
471 };
472#ifdef __CRT_UUID_DECL
473__CRT_UUID_DECL(IDebugBreakpoint3,0x38f5c249,0xb448,0x43bb,0x98,0x35,0x57,0x9d,0x4e,0xc0,0x22,0x49)
474#endif
475
476#define DEBUG_ATTACH_KERNEL_CONNECTION 0x00000000
477#define DEBUG_ATTACH_LOCAL_KERNEL 0x00000001
478#define DEBUG_ATTACH_EXDI_DRIVER 0x00000002
479
480#define DEBUG_GET_PROC_DEFAULT 0x00000000
481#define DEBUG_GET_PROC_FULL_MATCH 0x00000001
482#define DEBUG_GET_PROC_ONLY_MATCH 0x00000002
483
484#define DEBUG_PROC_DESC_DEFAULT 0x00000000
485#define DEBUG_PROC_DESC_NO_PATHS 0x00000001
486#define DEBUG_PROC_DESC_NO_SERVICES 0x00000002
487#define DEBUG_PROC_DESC_NO_MTS_PACKAGES 0x00000004
488#define DEBUG_PROC_DESC_NO_COMMAND_LINE 0x00000008
489
490#define DEBUG_ATTACH_DEFAULT 0x00000000
491#define DEBUG_ATTACH_NONINVASIVE 0x00000001
492#define DEBUG_ATTACH_EXISTING 0x00000002
493#define DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND 0x00000004
494#define DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK 0x00000008
495#define DEBUG_ATTACH_INVASIVE_RESUME_PROCESS 0x00000010
496
497#define DEBUG_CREATE_PROCESS_NO_DEBUG_HEAP CREATE_UNICODE_ENVIRONMENT
498#define DEBUG_CREATE_PROCESS_THROUGH_RTL STACK_SIZE_PARAM_IS_A_RESERVATION
499
500#define DEBUG_PROCESS_DETACH_ON_EXIT 0x00000001
501#define DEBUG_PROCESS_ONLY_THIS_PROCESS 0x00000002
502
503#define DEBUG_CONNECT_SESSION_DEFAULT 0x00000000
504#define DEBUG_CONNECT_SESSION_NO_VERSION 0x00000001
505#define DEBUG_CONNECT_SESSION_NO_ANNOUNCE 0x00000002
506
507#define DEBUG_SERVERS_DEBUGGER 0x00000001
508#define DEBUG_SERVERS_PROCESS 0x00000002
509#define DEBUG_SERVERS_ALL 0x00000003
510
511#define DEBUG_END_PASSIVE 0x00000000
512#define DEBUG_END_ACTIVE_TERMINATE 0x00000001
513#define DEBUG_END_ACTIVE_DETACH 0x00000002
514#define DEBUG_END_REENTRANT 0x00000003
515#define DEBUG_END_DISCONNECT 0x00000004
516
517#define DEBUG_OUTPUT_NORMAL 0x00000001
518#define DEBUG_OUTPUT_ERROR 0x00000002
519#define DEBUG_OUTPUT_WARNING 0x00000004
520#define DEBUG_OUTPUT_VERBOSE 0x00000008
521#define DEBUG_OUTPUT_PROMPT 0x00000010
522#define DEBUG_OUTPUT_PROMPT_REGISTERS 0x00000020
523#define DEBUG_OUTPUT_EXTENSION_WARNING 0x00000040
524#define DEBUG_OUTPUT_DEBUGGEE 0x00000080
525#define DEBUG_OUTPUT_DEBUGGEE_PROMPT 0x00000100
526#define DEBUG_OUTPUT_SYMBOLS 0x00000200
527
528#define DEBUG_OUTPUT_IDENTITY_DEFAULT 0x00000000
529
530#define DEBUG_IOUTPUT_KD_PROTOCOL 0x80000000
531#define DEBUG_IOUTPUT_REMOTING 0x40000000
532#define DEBUG_IOUTPUT_BREAKPOINT 0x20000000
533#define DEBUG_IOUTPUT_EVENT 0x10000000
534
535#undef INTERFACE
536#define INTERFACE IDebugClient
537 DECLARE_INTERFACE_(IDebugClient,IUnknown) {
538 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
539 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
540 STDMETHOD_(ULONG,Release)(THIS) PURE;
541 STDMETHOD(AttachKernel)(THIS_ ULONG Flags,PCSTR ConnectOptions) PURE;
542 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG OptionsSize) PURE;
543 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
544 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags,PCSTR Options,PVOID Reserved) PURE;
545 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions,PULONG64 Server) PURE;
546 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
547 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server,PULONG Ids,ULONG Count,PULONG ActualCount) PURE;
548 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server,PCSTR ExeName,ULONG Flags,PULONG Id) PURE;
549 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE;
550 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server,ULONG ProcessId,ULONG AttachFlags) PURE;
551 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags) PURE;
552 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE;
553 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
554 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
555 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
556 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
557 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
558 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile,ULONG Qualifier) PURE;
559 STDMETHOD(ConnectSession)(THIS_ ULONG Flags,ULONG HistoryLimit) PURE;
560 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
561 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl,PCSTR Machine,ULONG Flags) PURE;
562 STDMETHOD(TerminateProcesses)(THIS) PURE;
563 STDMETHOD(DetachProcesses)(THIS) PURE;
564 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
565 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
566 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
567 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
568 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
569 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
570 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
571 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
572 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
573 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
574 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
575 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,PULONG Mask) PURE;
576 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,ULONG Mask) PURE;
577 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
578 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
579 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PrefixSize) PURE;
580 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
581 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG IdentitySize) PURE;
582 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl,ULONG Flags,PCSTR Format) PURE;
583 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
584 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
585 STDMETHOD(FlushCallbacks)(THIS) PURE;
586 };
587#ifdef __CRT_UUID_DECL
588__CRT_UUID_DECL(IDebugClient,0x27fe5639,0x8407,0x4f47,0x83,0x64,0xee,0x11,0x8f,0xb0,0x8a,0xc8)
589#endif
590
591#define DEBUG_FORMAT_DEFAULT 0x00000000
592#define DEBUG_FORMAT_WRITE_CAB 0x20000000
593#define DEBUG_FORMAT_CAB_SECONDARY_FILES 0x40000000
594#define DEBUG_FORMAT_NO_OVERWRITE 0x80000000
595#define DEBUG_FORMAT_USER_SMALL_FULL_MEMORY 0x00000001
596#define DEBUG_FORMAT_USER_SMALL_HANDLE_DATA 0x00000002
597#define DEBUG_FORMAT_USER_SMALL_UNLOADED_MODULES 0x00000004
598#define DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY 0x00000008
599#define DEBUG_FORMAT_USER_SMALL_DATA_SEGMENTS 0x00000010
600#define DEBUG_FORMAT_USER_SMALL_FILTER_MEMORY 0x00000020
601#define DEBUG_FORMAT_USER_SMALL_FILTER_PATHS 0x00000040
602#define DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA 0x00000080
603#define DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY 0x00000100
604
605#define DEBUG_DUMP_FILE_BASE 0xffffffff
606#define DEBUG_DUMP_FILE_PAGE_FILE_DUMP 0x00000000
607#define DEBUG_DUMP_FILE_LOAD_FAILED_INDEX 0xffffffff
608
609#undef INTERFACE
610#define INTERFACE IDebugClient2
611 DECLARE_INTERFACE_(IDebugClient2,IUnknown) {
612 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
613 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
614 STDMETHOD_(ULONG,Release)(THIS) PURE;
615 STDMETHOD(AttachKernel)(THIS_ ULONG Flags,PCSTR ConnectOptions) PURE;
616 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG OptionsSize) PURE;
617 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
618 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags,PCSTR Options,PVOID Reserved) PURE;
619 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions,PULONG64 Server) PURE;
620 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
621 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server,PULONG Ids,ULONG Count,PULONG ActualCount) PURE;
622 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server,PCSTR ExeName,ULONG Flags,PULONG Id) PURE;
623 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE;
624 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server,ULONG ProcessId,ULONG AttachFlags) PURE;
625 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags) PURE;
626 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE;
627 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
628 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
629 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
630 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
631 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
632 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile,ULONG Qualifier) PURE;
633 STDMETHOD(ConnectSession)(THIS_ ULONG Flags,ULONG HistoryLimit) PURE;
634 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
635 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl,PCSTR Machine,ULONG Flags) PURE;
636 STDMETHOD(TerminateProcesses)(THIS) PURE;
637 STDMETHOD(DetachProcesses)(THIS) PURE;
638 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
639 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
640 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
641 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
642 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
643 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
644 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
645 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
646 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
647 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
648 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
649 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,PULONG Mask) PURE;
650 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,ULONG Mask) PURE;
651 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
652 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
653 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PrefixSize) PURE;
654 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
655 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG IdentitySize) PURE;
656 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl,ULONG Flags,PCSTR Format) PURE;
657 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
658 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
659 STDMETHOD(FlushCallbacks)(THIS) PURE;
660 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile,ULONG Qualifier,ULONG FormatFlags,PCSTR Comment) PURE;
661 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile,ULONG Type) PURE;
662 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE;
663 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE;
664 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
665 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
666 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
667 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
668 };
669#ifdef __CRT_UUID_DECL
670__CRT_UUID_DECL(IDebugClient2,0xedbed635,0x372e,0x4dab,0xbb,0xfe,0xed,0x0d,0x2f,0x63,0xbe,0x81)
671#endif
672
673#undef INTERFACE
674#define INTERFACE IDebugClient3
675 DECLARE_INTERFACE_(IDebugClient3,IUnknown) {
676 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
677 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
678 STDMETHOD_(ULONG,Release)(THIS) PURE;
679 STDMETHOD(AttachKernel)(THIS_
680 ULONG Flags,PCSTR ConnectOptions) PURE;
681 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG OptionsSize) PURE;
682 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
683 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags,PCSTR Options,PVOID Reserved) PURE;
684 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions,PULONG64 Server) PURE;
685 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
686 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server,PULONG Ids,ULONG Count,PULONG ActualCount) PURE;
687 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server,PCSTR ExeName,ULONG Flags,PULONG Id) PURE;
688 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE;
689 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server,ULONG ProcessId,ULONG AttachFlags) PURE;
690 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags) PURE;
691 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE;
692 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
693 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
694 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
695 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
696 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
697 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile,ULONG Qualifier) PURE;
698 STDMETHOD(ConnectSession)(THIS_ ULONG Flags,ULONG HistoryLimit) PURE;
699 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
700 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl,PCSTR Machine,ULONG Flags) PURE;
701 STDMETHOD(TerminateProcesses)(THIS) PURE;
702 STDMETHOD(DetachProcesses)(THIS) PURE;
703 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
704 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
705 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
706 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
707 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
708 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
709 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
710 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
711 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
712 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
713 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
714 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,PULONG Mask) PURE;
715 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,ULONG Mask) PURE;
716 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
717 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
718 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PrefixSize) PURE;
719 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
720 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG IdentitySize) PURE;
721 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl,ULONG Flags,PCSTR Format) PURE;
722 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
723 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
724 STDMETHOD(FlushCallbacks)(THIS) PURE;
725 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile,ULONG Qualifier,ULONG FormatFlags,PCSTR Comment) PURE;
726 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile,ULONG Type) PURE;
727 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE;
728 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE;
729 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
730 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
731 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
732 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
733 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server,PCWSTR ExeName,ULONG Flags,PULONG Id) PURE;
734 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PWSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PWSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE;
735 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server,PWSTR CommandLine,ULONG CreateFlags) PURE;
736 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server,PWSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE;
737 };
738#ifdef __CRT_UUID_DECL
739__CRT_UUID_DECL(IDebugClient3,0xdd492d7f,0x71b8,0x4ad6,0xa8,0xdc,0x1c,0x88,0x74,0x79,0xff,0x91)
740#endif
741
742#undef INTERFACE
743#define INTERFACE IDebugClient4
744 DECLARE_INTERFACE_(IDebugClient4,IUnknown) {
745 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
746 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
747 STDMETHOD_(ULONG,Release)(THIS) PURE;
748 STDMETHOD(AttachKernel)(THIS_ ULONG Flags,PCSTR ConnectOptions) PURE;
749 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG OptionsSize) PURE;
750 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
751 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags,PCSTR Options,PVOID Reserved) PURE;
752 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions,PULONG64 Server) PURE;
753 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
754 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server,PULONG Ids,ULONG Count,PULONG ActualCount) PURE;
755 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server,PCSTR ExeName,ULONG Flags,PULONG Id) PURE;
756 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE;
757 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server,ULONG ProcessId,ULONG AttachFlags) PURE;
758 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags) PURE;
759 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE;
760 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
761 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
762 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
763 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
764 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
765 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile,ULONG Qualifier) PURE;
766 STDMETHOD(ConnectSession)(THIS_ ULONG Flags,ULONG HistoryLimit) PURE;
767 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
768 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl,PCSTR Machine,ULONG Flags) PURE;
769 STDMETHOD(TerminateProcesses)(THIS) PURE;
770 STDMETHOD(DetachProcesses)(THIS) PURE;
771 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
772 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
773 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
774 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
775 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
776 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
777 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
778 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
779 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
780 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
781 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
782 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,PULONG Mask) PURE;
783 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,ULONG Mask) PURE;
784 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
785 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
786 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PrefixSize) PURE;
787 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
788 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG IdentitySize) PURE;
789 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl,ULONG Flags,PCSTR Format) PURE;
790 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
791 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
792 STDMETHOD(FlushCallbacks)(THIS) PURE;
793 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile,ULONG Qualifier,ULONG FormatFlags,PCSTR Comment) PURE;
794 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile,ULONG Type) PURE;
795 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE;
796 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE;
797 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
798 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
799 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
800 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
801 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server,PCWSTR ExeName,ULONG Flags,PULONG Id) PURE;
802 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PWSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PWSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE;
803 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server,PWSTR CommandLine,ULONG CreateFlags) PURE;
804 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server,PWSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE;
805 STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName,ULONG64 FileHandle) PURE;
806 STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName,ULONG64 FileHandle,ULONG Qualifier,ULONG FormatFlags,PCWSTR Comment) PURE;
807 STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName,ULONG64 FileHandle,ULONG Type) PURE;
808 STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE;
809 STDMETHOD(GetDumpFile)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG NameSize,PULONG64 Handle,PULONG Type) PURE;
810 STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index,PWSTR Buffer,ULONG BufferSize,PULONG NameSize,PULONG64 Handle,PULONG Type) PURE;
811 };
812#ifdef __CRT_UUID_DECL
813__CRT_UUID_DECL(IDebugClient4,0xca83c3de,0x5089,0x4cf8,0x93,0xc8,0xd8,0x92,0x38,0x7f,0x2a,0x5e)
814#endif
815
816#undef INTERFACE
817#define INTERFACE IDebugClient5
818 DECLARE_INTERFACE_(IDebugClient5, IUnknown) {
819 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
820 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
821 STDMETHOD_(ULONG, Release)(THIS) PURE;
822 STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE;
823 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
824 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
825 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE;
826 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE;
827 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
828 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE;
829 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE;
830 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
831 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE;
832 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE;
833 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
834 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
835 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
836 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
837 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
838 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
839 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE;
840 STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE;
841 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
842 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE;
843 STDMETHOD(TerminateProcesses)(THIS) PURE;
844 STDMETHOD(DetachProcesses)(THIS) PURE;
845 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
846 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
847 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
848 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
849 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
850 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
851 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
852 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
853 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
854 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
855 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
856 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE;
857 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE;
858 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
859 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
860 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
861 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
862 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
863 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE;
864 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
865 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
866 STDMETHOD(FlushCallbacks)(THIS) PURE;
867 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE;
868 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE;
869 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE;
870 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE;
871 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
872 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
873 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
874 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
875 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE;
876 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
877 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE;
878 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
879 STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE;
880 STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE;
881 STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE;
882 STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE;
883 STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
884 STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
885 STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE;
886 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
887 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE;
888 STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE;
889 STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE;
890 STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE;
891 STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE;
892 STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE;
893 STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE;
894 STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
895 STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE;
896 STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
897 STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE;
898 STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE;
899 STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE;
900 STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE;
901 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE;
902 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
903 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
904 STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE;
905 STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE;
906 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE;
907 STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE;
908 STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE;
909 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE;
910 STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
911 STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE;
912 STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
913 STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE;
914 };
915#ifdef __CRT_UUID_DECL
916__CRT_UUID_DECL(IDebugClient5,0xe3acb9d7,0x7ec2,0x4f0c,0xa0,0xda,0xe8,0x1e,0x0c,0xbb,0xe6,0x28)
917#endif
918
919#undef INTERFACE
920#define INTERFACE IDebugClient6
921 DECLARE_INTERFACE_(IDebugClient6, IUnknown) {
922 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
923 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
924 STDMETHOD_(ULONG, Release)(THIS) PURE;
925 STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE;
926 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
927 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
928 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE;
929 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE;
930 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
931 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE;
932 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE;
933 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
934 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE;
935 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE;
936 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
937 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
938 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
939 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
940 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
941 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
942 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE;
943 STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE;
944 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
945 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE;
946 STDMETHOD(TerminateProcesses)(THIS) PURE;
947 STDMETHOD(DetachProcesses)(THIS) PURE;
948 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
949 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
950 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
951 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
952 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
953 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
954 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
955 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
956 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
957 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
958 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
959 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE;
960 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE;
961 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
962 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
963 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
964 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
965 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
966 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE;
967 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
968 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
969 STDMETHOD(FlushCallbacks)(THIS) PURE;
970 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE;
971 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE;
972 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE;
973 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE;
974 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
975 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
976 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
977 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
978 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE;
979 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
980 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE;
981 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
982 STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE;
983 STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE;
984 STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE;
985 STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE;
986 STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
987 STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
988 STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE;
989 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
990 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE;
991 STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE;
992 STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE;
993 STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE;
994 STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE;
995 STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE;
996 STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE;
997 STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
998 STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE;
999 STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
1000 STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE;
1001 STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE;
1002 STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE;
1003 STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE;
1004 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE;
1005 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
1006 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
1007 STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE;
1008 STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE;
1009 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE;
1010 STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE;
1011 STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE;
1012 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE;
1013 STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
1014 STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE;
1015 STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
1016 STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE;
1017 STDMETHOD(SetEventContextCallbacks)(THIS_ PDEBUG_EVENT_CONTEXT_CALLBACKS Callbacks) PURE;
1018 };
1019#ifdef __CRT_UUID_DECL
1020__CRT_UUID_DECL(IDebugClient6,0xfd28b4c5,0xc498,0x4686,0xa2,0x8e,0x62,0xca,0xd2,0x15,0x4e,0xb3)
1021#endif
1022
1023#undef INTERFACE
1024#define INTERFACE IDebugClient7
1025 DECLARE_INTERFACE_(IDebugClient7, IUnknown) {
1026 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
1027 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1028 STDMETHOD_(ULONG, Release)(THIS) PURE;
1029 STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE;
1030 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
1031 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
1032 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE;
1033 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE;
1034 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
1035 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE;
1036 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE;
1037 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
1038 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE;
1039 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE;
1040 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
1041 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
1042 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
1043 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
1044 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
1045 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
1046 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE;
1047 STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE;
1048 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
1049 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE;
1050 STDMETHOD(TerminateProcesses)(THIS) PURE;
1051 STDMETHOD(DetachProcesses)(THIS) PURE;
1052 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
1053 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
1054 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
1055 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
1056 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
1057 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
1058 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
1059 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
1060 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
1061 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
1062 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
1063 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE;
1064 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE;
1065 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
1066 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
1067 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
1068 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
1069 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
1070 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE;
1071 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
1072 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
1073 STDMETHOD(FlushCallbacks)(THIS) PURE;
1074 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE;
1075 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE;
1076 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE;
1077 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE;
1078 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
1079 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
1080 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
1081 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
1082 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE;
1083 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
1084 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE;
1085 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
1086 STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE;
1087 STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE;
1088 STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE;
1089 STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE;
1090 STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
1091 STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
1092 STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE;
1093 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
1094 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE;
1095 STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE;
1096 STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE;
1097 STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE;
1098 STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE;
1099 STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE;
1100 STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE;
1101 STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
1102 STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE;
1103 STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
1104 STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE;
1105 STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE;
1106 STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE;
1107 STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE;
1108 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE;
1109 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
1110 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
1111 STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE;
1112 STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE;
1113 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE;
1114 STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE;
1115 STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE;
1116 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE;
1117 STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
1118 STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE;
1119 STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
1120 STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE;
1121 STDMETHOD(SetEventContextCallbacks)(THIS_ PDEBUG_EVENT_CONTEXT_CALLBACKS Callbacks) PURE;
1122 STDMETHOD(SetClientContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
1123 };
1124#ifdef __CRT_UUID_DECL
1125__CRT_UUID_DECL(IDebugClient7,0x13586be3,0x542e,0x481e,0xb1,0xf2,0x84,0x97,0xba,0x74,0xf9,0xa9)
1126#endif
1127
1128#undef INTERFACE
1129#define INTERFACE IDebugClient8
1130 DECLARE_INTERFACE_(IDebugClient8, IUnknown) {
1131 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
1132 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1133 STDMETHOD_(ULONG, Release)(THIS) PURE;
1134 STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE;
1135 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
1136 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
1137 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE;
1138 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE;
1139 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
1140 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE;
1141 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE;
1142 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
1143 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE;
1144 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE;
1145 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
1146 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
1147 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
1148 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
1149 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
1150 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
1151 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE;
1152 STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE;
1153 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
1154 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE;
1155 STDMETHOD(TerminateProcesses)(THIS) PURE;
1156 STDMETHOD(DetachProcesses)(THIS) PURE;
1157 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
1158 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
1159 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
1160 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
1161 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
1162 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
1163 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
1164 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
1165 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
1166 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
1167 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
1168 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE;
1169 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE;
1170 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
1171 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
1172 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
1173 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
1174 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
1175 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE;
1176 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
1177 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
1178 STDMETHOD(FlushCallbacks)(THIS) PURE;
1179 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE;
1180 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE;
1181 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE;
1182 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE;
1183 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
1184 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
1185 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
1186 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
1187 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE;
1188 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
1189 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE;
1190 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
1191 STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE;
1192 STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE;
1193 STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE;
1194 STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE;
1195 STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
1196 STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
1197 STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE;
1198 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
1199 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE;
1200 STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE;
1201 STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE;
1202 STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE;
1203 STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE;
1204 STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE;
1205 STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE;
1206 STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
1207 STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE;
1208 STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
1209 STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE;
1210 STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE;
1211 STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE;
1212 STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE;
1213 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE;
1214 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
1215 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
1216 STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE;
1217 STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE;
1218 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE;
1219 STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE;
1220 STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE;
1221 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE;
1222 STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
1223 STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE;
1224 STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
1225 STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE;
1226 STDMETHOD(SetEventContextCallbacks)(THIS_ PDEBUG_EVENT_CONTEXT_CALLBACKS Callbacks) PURE;
1227 STDMETHOD(SetClientContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
1228 STDMETHOD(OpenDumpFileWide2)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG AlternateArch) PURE;
1229 };
1230#ifdef __CRT_UUID_DECL
1231__CRT_UUID_DECL(IDebugClient8,0xcec43add,0x6375,0x469e,0x83,0xd5,0x41,0x4e,0x40,0x33,0xc1,0x9a)
1232#endif
1233
1234#undef INTERFACE
1235#define INTERFACE IDebugClient9
1236 DECLARE_INTERFACE_(IDebugClient9, IUnknown) {
1237 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
1238 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1239 STDMETHOD_(ULONG, Release)(THIS) PURE;
1240 STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE;
1241 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
1242 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE;
1243 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE;
1244 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE;
1245 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE;
1246 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE;
1247 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE;
1248 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
1249 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE;
1250 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE;
1251 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
1252 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE;
1253 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE;
1254 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE;
1255 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE;
1256 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE;
1257 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE;
1258 STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE;
1259 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE;
1260 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE;
1261 STDMETHOD(TerminateProcesses)(THIS) PURE;
1262 STDMETHOD(DetachProcesses)(THIS) PURE;
1263 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE;
1264 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE;
1265 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE;
1266 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE;
1267 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE;
1268 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE;
1269 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE;
1270 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE;
1271 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE;
1272 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE;
1273 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE;
1274 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE;
1275 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE;
1276 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE;
1277 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE;
1278 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
1279 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE;
1280 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
1281 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE;
1282 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE;
1283 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE;
1284 STDMETHOD(FlushCallbacks)(THIS) PURE;
1285 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE;
1286 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE;
1287 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE;
1288 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE;
1289 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
1290 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
1291 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
1292 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
1293 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE;
1294 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE;
1295 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE;
1296 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE;
1297 STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE;
1298 STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE;
1299 STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE;
1300 STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE;
1301 STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
1302 STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE;
1303 STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE;
1304 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE;
1305 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE;
1306 STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE;
1307 STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE;
1308 STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE;
1309 STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE;
1310 STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE;
1311 STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE;
1312 STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE;
1313 STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE;
1314 STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE;
1315 STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE;
1316 STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE;
1317 STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE;
1318 STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE;
1319 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE;
1320 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
1321 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE;
1322 STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE;
1323 STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE;
1324 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE;
1325 STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE;
1326 STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE;
1327 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE;
1328 STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
1329 STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE;
1330 STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
1331 STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE;
1332 STDMETHOD(SetEventContextCallbacks)(THIS_ PDEBUG_EVENT_CONTEXT_CALLBACKS Callbacks) PURE;
1333 STDMETHOD(SetClientContext)(THIS_ PVOID Context, ULONG ContextSize) PURE;
1334 STDMETHOD(OpenDumpFileWide2)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG AlternateArch) PURE;
1335 STDMETHOD(OpenDumpDirectoryWide)(THIS_ PCWSTR DirName, ULONG AlternateArch) PURE;
1336 STDMETHOD(OpenDumpDirectory)(THIS_ PCSTR DumpDir, ULONG AlternativeArch) PURE;
1337 };
1338#ifdef __CRT_UUID_DECL
1339__CRT_UUID_DECL(IDebugClient9,0x2c24cd5b,0x4d9e,0x4df4,0x8a,0x70,0x3d,0x37,0x44,0x0d,0x11,0x9f)
1340#endif
1341
1342#undef INTERFACE
1343#define INTERFACE IDebugPlmClient
1344 DECLARE_INTERFACE_(IDebugPlmClient, IUnknown) {
1345 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
1346 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1347 STDMETHOD_(ULONG, Release)(THIS) PURE;
1348 STDMETHOD(LaunchPlmPackageForDebugWide)(THIS_ ULONG64 Server, ULONG Timeout, PCWSTR PackageFullName, PCWSTR AppName, PCWSTR Arguments, PULONG ProcessId, PULONG ThreadId) PURE;
1349 };
1350#ifdef __CRT_UUID_DECL
1351__CRT_UUID_DECL(IDebugPlmClient,0xa02b66c4,0xaea3,0x4234,0xa9,0xf7,0xfe,0x4c,0x38,0x3d,0x4e,0x29)
1352#endif
1353
1354#undef INTERFACE
1355#define INTERFACE IDebugPlmClient2
1356 DECLARE_INTERFACE_(IDebugPlmClient2, IUnknown) {
1357 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
1358 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1359 STDMETHOD_(ULONG, Release)(THIS) PURE;
1360 STDMETHOD(LaunchPlmPackageForDebugWide)(THIS_ ULONG64 Server, ULONG Timeout, PCWSTR PackageFullName, PCWSTR AppName, PCWSTR Arguments, PULONG ProcessId, PULONG ThreadId) PURE;
1361 STDMETHOD(LaunchPlmBgTaskForDebugWide)(THIS_ ULONG64 Server, ULONG Timeout, PCWSTR PackageFullName, PCWSTR BackgroundTaskId, PULONG ProcessId, PULONG ThreadId) PURE;
1362 };
1363#ifdef __CRT_UUID_DECL
1364__CRT_UUID_DECL(IDebugPlmClient2,0x597c980d,0xe7bd,0x4309,0x96,0x2c,0x9d,0x9b,0x69,0xa7,0x37,0x2c)
1365#endif
1366
1367#undef INTERFACE
1368#define INTERFACE IDebugPlmClient3
1369 DECLARE_INTERFACE_(IDebugPlmClient3, IUnknown) {
1370 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
1371 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1372 STDMETHOD_(ULONG, Release)(THIS) PURE;
1373 STDMETHOD(LaunchPlmPackageForDebugWide)(THIS_ ULONG64 Server, ULONG Timeout, PCWSTR PackageFullName, PCWSTR AppName, PCWSTR Arguments, PULONG ProcessId, PULONG ThreadId) PURE;
1374 STDMETHOD(LaunchPlmBgTaskForDebugWide)(THIS_ ULONG64 Server, ULONG Timeout, PCWSTR PackageFullName, PCWSTR BackgroundTaskId, PULONG ProcessId, PULONG ThreadId) PURE;
1375 STDMETHOD(QueryPlmPackageWide)(THIS_ ULONG64 Server, PCWSTR PackageFullName, PDEBUG_OUTPUT_STREAM Stream) PURE;
1376 STDMETHOD(QueryPlmPackageList)(THIS_ ULONG64 Server, PDEBUG_OUTPUT_STREAM Stream) PURE;
1377 STDMETHOD(EnablePlmPackageDebugWide)(THIS_ ULONG64 Server, PCWSTR PackageFullName) PURE;
1378 STDMETHOD(DisablePlmPackageDebugWide)(THIS_ ULONG64 Server, PCWSTR PackageFullName) PURE;
1379 STDMETHOD(SuspendPlmPackageWide)(THIS_ ULONG64 Server, PCWSTR PackageFullName) PURE;
1380 STDMETHOD(ResumePlmPackageWide)(THIS_ ULONG64 Server, PCWSTR PackageFullName) PURE;
1381 STDMETHOD(TerminatePlmPackageWide)(THIS_ ULONG64 Server, PCWSTR PackageFullName) PURE;
1382 STDMETHOD(LaunchAndDebugPlmAppWide)(THIS_ ULONG64 Server, PCWSTR PackageFullName, PCWSTR AppName, PCWSTR Arguments) PURE;
1383 STDMETHOD(ActivateAndDebugPlmBgTaskWide)(THIS_ ULONG64 Server, PCWSTR PackageFullName, PCWSTR BackgroundTaskId) PURE;
1384 };
1385#ifdef __CRT_UUID_DECL
1386__CRT_UUID_DECL(IDebugPlmClient3,0xcdf48669,0x901f,0x4791,0xb8,0x68,0x7d,0x2c,0xb3,0xa2,0xd7,0xfc)
1387#endif
1388
1389#undef INTERFACE
1390#define INTERFACE IDebugOutputStream
1391 DECLARE_INTERFACE_(IDebugOutputStream, IUnknown) {
1392 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
1393 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1394 STDMETHOD_(ULONG, Release)(THIS) PURE;
1395 STDMETHOD(Write)(THIS_ PCWSTR psz) PURE;
1396 };
1397#ifdef __CRT_UUID_DECL
1398__CRT_UUID_DECL(IDebugOutputStream,0x7782d8f2,0x2b85,0x4059,0xab,0x88,0x28,0xce,0xdd,0xca,0x1c,0x80)
1399#endif
1400
1401#define DEBUG_STATUS_NO_CHANGE 0
1402#define DEBUG_STATUS_GO 1
1403#define DEBUG_STATUS_GO_HANDLED 2
1404#define DEBUG_STATUS_GO_NOT_HANDLED 3
1405#define DEBUG_STATUS_STEP_OVER 4
1406#define DEBUG_STATUS_STEP_INTO 5
1407#define DEBUG_STATUS_BREAK 6
1408#define DEBUG_STATUS_NO_DEBUGGEE 7
1409#define DEBUG_STATUS_STEP_BRANCH 8
1410#define DEBUG_STATUS_IGNORE_EVENT 9
1411
1412#define DEBUG_STATUS_MASK 0xf
1413
1414#define DEBUG_STATUS_INSIDE_WAIT 0x100000000
1415#define DEBUG_OUTCTL_THIS_CLIENT 0x00000000
1416#define DEBUG_OUTCTL_ALL_CLIENTS 0x00000001
1417#define DEBUG_OUTCTL_ALL_OTHER_CLIENTS 0x00000002
1418#define DEBUG_OUTCTL_IGNORE 0x00000003
1419#define DEBUG_OUTCTL_LOG_ONLY 0x00000004
1420#define DEBUG_OUTCTL_SEND_MASK 0x00000007
1421#define DEBUG_OUTCTL_NOT_LOGGED 0x00000008
1422#define DEBUG_OUTCTL_OVERRIDE_MASK 0x00000010
1423#define DEBUG_OUTCTL_AMBIENT 0xffffffff
1424
1425#define DEBUG_INTERRUPT_ACTIVE 0
1426#define DEBUG_INTERRUPT_PASSIVE 1
1427#define DEBUG_INTERRUPT_EXIT 2
1428
1429#define DEBUG_CURRENT_DEFAULT 0x0000000f
1430#define DEBUG_CURRENT_SYMBOL 0x00000001
1431#define DEBUG_CURRENT_DISASM 0x00000002
1432#define DEBUG_CURRENT_REGISTERS 0x00000004
1433#define DEBUG_CURRENT_SOURCE_LINE 0x00000008
1434
1435#define DEBUG_DISASM_EFFECTIVE_ADDRESS 0x00000001
1436#define DEBUG_DISASM_MATCHING_SYMBOLS 0x00000002
1437
1438#define DEBUG_LEVEL_SOURCE 0
1439#define DEBUG_LEVEL_ASSEMBLY 1
1440
1441#define DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION 0x00000001
1442#define DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS 0x00000002
1443
1444#define DEBUG_ENGOPT_ALLOW_NETWORK_PATHS 0x00000004
1445#define DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS 0x00000008
1446#define DEBUG_ENGOPT_NETWORK_PATHS (0x00000004 | 0x00000008)
1447#define DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS 0x00000010
1448#define DEBUG_ENGOPT_INITIAL_BREAK 0x00000020
1449#define DEBUG_ENGOPT_INITIAL_MODULE_BREAK 0x00000040
1450#define DEBUG_ENGOPT_FINAL_BREAK 0x00000080
1451#define DEBUG_ENGOPT_NO_EXECUTE_REPEAT 0x00000100
1452#define DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION 0x00000200
1453#define DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS 0x00000400
1454#define DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS 0x00000800
1455#define DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS 0x00001000
1456#define DEBUG_ENGOPT_ALL 0x00001FFF
1457
1458#define DEBUG_ANY_ID 0xffffffff
1459
1460 typedef struct _DEBUG_STACK_FRAME {
1461 ULONG64 InstructionOffset;
1462 ULONG64 ReturnOffset;
1463 ULONG64 FrameOffset;
1464 ULONG64 StackOffset;
1465 ULONG64 FuncTableEntry;
1466 ULONG64 Params[4];
1467 ULONG64 Reserved[6];
1468 WINBOOL Virtual;
1469 ULONG FrameNumber;
1470 } DEBUG_STACK_FRAME,*PDEBUG_STACK_FRAME;
1471
1472#define DBG_FRAME_DEFAULT 0
1473#define DBG_FRAME_IGNORE_INLINE 0xffffffff
1474
1475 typedef struct _DEBUG_STACK_FRAME_EX {
1476 ULONG64 InstructionOffset;
1477 ULONG64 ReturnOffset;
1478 ULONG64 FrameOffset;
1479 ULONG64 StackOffset;
1480 ULONG64 FuncTableEntry;
1481 ULONG64 Params[4];
1482 ULONG64 Reserved[6];
1483 WINBOOL Virtual;
1484 ULONG FrameNumber;
1485 ULONG InlineFrameContext;
1486 ULONG Reserved1;
1487 } DEBUG_STACK_FRAME_EX,*PDEBUG_STACK_FRAME_EX;
1488
1489#define DEBUG_STACK_ARGUMENTS 0x00000001
1490#define DEBUG_STACK_FUNCTION_INFO 0x00000002
1491#define DEBUG_STACK_SOURCE_LINE 0x00000004
1492#define DEBUG_STACK_FRAME_ADDRESSES 0x00000008
1493#define DEBUG_STACK_COLUMN_NAMES 0x00000010
1494#define DEBUG_STACK_NONVOLATILE_REGISTERS 0x00000020
1495#define DEBUG_STACK_FRAME_NUMBERS 0x00000040
1496#define DEBUG_STACK_PARAMETERS 0x00000080
1497#define DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY 0x00000100
1498#define DEBUG_STACK_FRAME_MEMORY_USAGE 0x00000200
1499
1500#define DEBUG_CLASS_UNINITIALIZED 0
1501#define DEBUG_CLASS_KERNEL 1
1502#define DEBUG_CLASS_USER_WINDOWS 2
1503
1504#define DEBUG_DUMP_SMALL 1024
1505#define DEBUG_DUMP_DEFAULT 1025
1506#define DEBUG_DUMP_FULL 1026
1507
1508#define DEBUG_KERNEL_CONNECTION 0
1509#define DEBUG_KERNEL_LOCAL 1
1510#define DEBUG_KERNEL_EXDI_DRIVER 2
1511#define DEBUG_KERNEL_SMALL_DUMP DEBUG_DUMP_SMALL
1512#define DEBUG_KERNEL_DUMP DEBUG_DUMP_DEFAULT
1513#define DEBUG_KERNEL_FULL_DUMP DEBUG_DUMP_FULL
1514
1515#define DEBUG_USER_WINDOWS_PROCESS 0
1516#define DEBUG_USER_WINDOWS_PROCESS_SERVER 1
1517#define DEBUG_USER_WINDOWS_SMALL_DUMP DEBUG_DUMP_SMALL
1518#define DEBUG_USER_WINDOWS_DUMP DEBUG_DUMP_DEFAULT
1519
1520#define DEBUG_EXTENSION_AT_ENGINE 0x00000000
1521
1522#define DEBUG_EXECUTE_DEFAULT 0x00000000
1523#define DEBUG_EXECUTE_ECHO 0x00000001
1524#define DEBUG_EXECUTE_NOT_LOGGED 0x00000002
1525#define DEBUG_EXECUTE_NO_REPEAT 0x00000004
1526
1527#define DEBUG_FILTER_CREATE_THREAD 0x00000000
1528#define DEBUG_FILTER_EXIT_THREAD 0x00000001
1529#define DEBUG_FILTER_CREATE_PROCESS 0x00000002
1530#define DEBUG_FILTER_EXIT_PROCESS 0x00000003
1531#define DEBUG_FILTER_LOAD_MODULE 0x00000004
1532#define DEBUG_FILTER_UNLOAD_MODULE 0x00000005
1533#define DEBUG_FILTER_SYSTEM_ERROR 0x00000006
1534#define DEBUG_FILTER_INITIAL_BREAKPOINT 0x00000007
1535#define DEBUG_FILTER_INITIAL_MODULE_LOAD 0x00000008
1536#define DEBUG_FILTER_DEBUGGEE_OUTPUT 0x00000009
1537
1538#define DEBUG_FILTER_BREAK 0x00000000
1539
1540#define DEBUG_FILTER_SECOND_CHANCE_BREAK 0x00000001
1541#define DEBUG_FILTER_OUTPUT 0x00000002
1542#define DEBUG_FILTER_IGNORE 0x00000003
1543#define DEBUG_FILTER_REMOVE 0x00000004
1544
1545#define DEBUG_FILTER_GO_HANDLED 0x00000000
1546#define DEBUG_FILTER_GO_NOT_HANDLED 0x00000001
1547
1548 typedef struct _DEBUG_SPECIFIC_FILTER_PARAMETERS {
1549 ULONG ExecutionOption;
1550 ULONG ContinueOption;
1551 ULONG TextSize;
1552 ULONG CommandSize;
1553 ULONG ArgumentSize;
1554 } DEBUG_SPECIFIC_FILTER_PARAMETERS,*PDEBUG_SPECIFIC_FILTER_PARAMETERS;
1555
1556 typedef struct _DEBUG_EXCEPTION_FILTER_PARAMETERS {
1557 ULONG ExecutionOption;
1558 ULONG ContinueOption;
1559 ULONG TextSize;
1560 ULONG CommandSize;
1561 ULONG SecondCommandSize;
1562 ULONG ExceptionCode;
1563 } DEBUG_EXCEPTION_FILTER_PARAMETERS,*PDEBUG_EXCEPTION_FILTER_PARAMETERS;
1564
1565#define DEBUG_WAIT_DEFAULT 0x00000000
1566
1567 typedef struct _DEBUG_LAST_EVENT_INFO_BREAKPOINT {
1568 ULONG Id;
1569 } DEBUG_LAST_EVENT_INFO_BREAKPOINT,*PDEBUG_LAST_EVENT_INFO_BREAKPOINT;
1570
1571 typedef struct _DEBUG_LAST_EVENT_INFO_EXCEPTION {
1572 EXCEPTION_RECORD64 ExceptionRecord;
1573 ULONG FirstChance;
1574 } DEBUG_LAST_EVENT_INFO_EXCEPTION,*PDEBUG_LAST_EVENT_INFO_EXCEPTION;
1575
1576 typedef struct _DEBUG_LAST_EVENT_INFO_EXIT_THREAD {
1577 ULONG ExitCode;
1578 } DEBUG_LAST_EVENT_INFO_EXIT_THREAD,*PDEBUG_LAST_EVENT_INFO_EXIT_THREAD;
1579
1580 typedef struct _DEBUG_LAST_EVENT_INFO_EXIT_PROCESS {
1581 ULONG ExitCode;
1582 } DEBUG_LAST_EVENT_INFO_EXIT_PROCESS,*PDEBUG_LAST_EVENT_INFO_EXIT_PROCESS;
1583
1584 typedef struct _DEBUG_LAST_EVENT_INFO_LOAD_MODULE {
1585 ULONG64 Base;
1586 } DEBUG_LAST_EVENT_INFO_LOAD_MODULE,*PDEBUG_LAST_EVENT_INFO_LOAD_MODULE;
1587
1588 typedef struct _DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE {
1589 ULONG64 Base;
1590 } DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE,*PDEBUG_LAST_EVENT_INFO_UNLOAD_MODULE;
1591
1592 typedef struct _DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR {
1593 ULONG Error;
1594 ULONG Level;
1595 } DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR,*PDEBUG_LAST_EVENT_INFO_SYSTEM_ERROR;
1596
1597#define DEBUG_VALUE_INVALID 0
1598#define DEBUG_VALUE_INT8 1
1599#define DEBUG_VALUE_INT16 2
1600#define DEBUG_VALUE_INT32 3
1601#define DEBUG_VALUE_INT64 4
1602#define DEBUG_VALUE_FLOAT32 5
1603#define DEBUG_VALUE_FLOAT64 6
1604#define DEBUG_VALUE_FLOAT80 7
1605#define DEBUG_VALUE_FLOAT82 8
1606#define DEBUG_VALUE_FLOAT128 9
1607#define DEBUG_VALUE_VECTOR64 10
1608#define DEBUG_VALUE_VECTOR128 11
1609
1610#define DEBUG_VALUE_TYPES 12
1611
1612 typedef struct _DEBUG_VALUE {
1613 __C89_NAMELESS union {
1614 UCHAR I8;
1615 USHORT I16;
1616 ULONG I32;
1617 __C89_NAMELESS struct {
1618 ULONG64 I64;
1619 WINBOOL Nat;
1620 };
1621 float F32;
1622 double F64;
1623 UCHAR F80Bytes[10];
1624 UCHAR F82Bytes[11];
1625 UCHAR F128Bytes[16];
1626 UCHAR VI8[16];
1627 USHORT VI16[8];
1628 ULONG VI32[4];
1629 ULONG64 VI64[2];
1630 float VF32[4];
1631 double VF64[2];
1632 struct {
1633 ULONG LowPart;
1634 ULONG HighPart;
1635 } I64Parts32;
1636 struct {
1637 ULONG64 LowPart;
1638 LONG64 HighPart;
1639 } F128Parts64;
1640 UCHAR RawBytes[24];
1641 };
1642 ULONG TailOfRawBytes;
1643 ULONG Type;
1644 } DEBUG_VALUE,*PDEBUG_VALUE;
1645
1646#undef INTERFACE
1647#define INTERFACE IDebugControl
1648 DECLARE_INTERFACE_(IDebugControl,IUnknown) {
1649 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
1650 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1651 STDMETHOD_(ULONG,Release)(THIS) PURE;
1652 STDMETHOD(GetInterrupt)(THIS) PURE;
1653 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE;
1654 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE;
1655 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE;
1656 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG FileSize,PBOOL Append) PURE;
1657 STDMETHOD(OpenLogFile)(THIS_ PCSTR File,WINBOOL Append) PURE;
1658 STDMETHOD(CloseLogFile)(THIS) PURE;
1659 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE;
1660 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE;
1661 STDMETHOD(Input)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG InputSize) PURE;
1662 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE;
1663 STDMETHODV(Output)(THIS_ ULONG Mask,PCSTR Format,...) PURE;
1664 STDMETHOD(OutputVaList)(THIS_ ULONG Mask,PCSTR Format,va_list Args) PURE;
1665 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,...) PURE;
1666 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,va_list Args) PURE;
1667 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl,PCSTR Format,...) PURE;
1668 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl,PCSTR Format,va_list Args) PURE;
1669 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE;
1670 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl,ULONG Flags) PURE;
1671 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE;
1672 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE;
1673 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE;
1674 STDMETHOD(Assemble)(THIS_ ULONG64 Offset,PCSTR Instr,PULONG64 EndOffset) PURE;
1675 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset,ULONG Flags,PSTR Buffer,ULONG BufferSize,PULONG DisassemblySize,PULONG64 EndOffset) PURE;
1676 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE;
1677 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG Flags,PULONG64 EndOffset) PURE;
1678 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl,ULONG PreviousLines,ULONG TotalLines,ULONG64 Offset,ULONG Flags,PULONG OffsetLine,PULONG64 StartOffset,PULONG64 EndOffset,PULONG64 LineOffsets) PURE;
1679 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset,LONG Delta,PULONG64 NearOffset) PURE;
1680 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset,ULONG64 StackOffset,ULONG64 InstructionOffset,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,PULONG FramesFilled) PURE;
1681 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE;
1682 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,ULONG Flags) PURE;
1683 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class,PULONG Qualifier) PURE;
1684 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE;
1685 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE;
1686 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE;
1687 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE;
1688 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE;
1689 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId,PULONG Major,PULONG Minor,PSTR ServicePackString,ULONG ServicePackStringSize,PULONG ServicePackStringUsed,PULONG ServicePackNumber,PSTR BuildString,ULONG BuildStringSize,PULONG BuildStringUsed) PURE;
1690 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE;
1691 STDMETHOD(IsPointer64Bit)(THIS) PURE;
1692 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code,PULONG64 Arg1,PULONG64 Arg2,PULONG64 Arg3,PULONG64 Arg4) PURE;
1693 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE;
1694 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE;
1695 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type,PSTR FullNameBuffer,ULONG FullNameBufferSize,PULONG FullNameSize,PSTR AbbrevNameBuffer,ULONG AbbrevNameBufferSize,PULONG AbbrevNameSize) PURE;
1696 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE;
1697 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE;
1698 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE;
1699 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE;
1700 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE;
1701 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE;
1702 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE;
1703 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE;
1704 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE;
1705 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE;
1706 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel,PULONG BreakLevel) PURE;
1707 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel,ULONG BreakLevel) PURE;
1708 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot,PSTR Buffer,ULONG BufferSize,PULONG MacroSize) PURE;
1709 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot,PCSTR Macro) PURE;
1710 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE;
1711 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE;
1712 STDMETHOD(Evaluate)(THIS_ PCSTR Expression,ULONG DesiredType,PDEBUG_VALUE Value,PULONG RemainderIndex) PURE;
1713 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In,ULONG OutType,PDEBUG_VALUE Out) PURE;
1714 STDMETHOD(CoerceValues)(THIS_ ULONG Count,PDEBUG_VALUE In,PULONG OutTypes,PDEBUG_VALUE Out) PURE;
1715 STDMETHOD(Execute)(THIS_ ULONG OutputControl,PCSTR Command,ULONG Flags) PURE;
1716 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl,PCSTR CommandFile,ULONG Flags) PURE;
1717 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE;
1718 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index,PDEBUG_BREAKPOINT *Bp) PURE;
1719 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id,PDEBUG_BREAKPOINT *Bp) PURE;
1720 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count,PULONG Ids,ULONG Start,PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
1721 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type,ULONG DesiredId,PDEBUG_BREAKPOINT *Bp) PURE;
1722 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE;
1723 STDMETHOD(AddExtension)(THIS_ PCSTR Path,ULONG Flags,PULONG64 Handle) PURE;
1724 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE;
1725 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path,PULONG64 Handle) PURE;
1726 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle,PCSTR Function,PCSTR Arguments) PURE;
1727 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle,PCSTR FuncName,FARPROC *Function) PURE;
1728 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE;
1729 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE;
1730 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents,PULONG SpecificExceptions,PULONG ArbitraryExceptions) PURE;
1731 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE;
1732 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE;
1733 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index,PCSTR Command) PURE;
1734 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
1735 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
1736 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ArgumentSize) PURE;
1737 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index,PCSTR Argument) PURE;
1738 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count,PULONG Codes,ULONG Start,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
1739 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
1740 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE;
1741 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index,PCSTR Command) PURE;
1742 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags,ULONG Timeout) PURE;
1743 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type,PULONG ProcessId,PULONG ThreadId,PVOID ExtraInformation,ULONG ExtraInformationSize,PULONG ExtraInformationUsed,PSTR Description,ULONG DescriptionSize,PULONG DescriptionUsed) PURE;
1744 };
1745#ifdef __CRT_UUID_DECL
1746__CRT_UUID_DECL(IDebugControl,0x5182e668,0x105e,0x416e,0xad,0x92,0x24,0xef,0x80,0x04,0x24,0xba)
1747#endif
1748
1749#define DEBUG_OUT_TEXT_REPL_DEFAULT 0x00000000
1750
1751#undef INTERFACE
1752#define INTERFACE IDebugControl2
1753 DECLARE_INTERFACE_(IDebugControl2,IUnknown) {
1754 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
1755 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1756 STDMETHOD_(ULONG,Release)(THIS) PURE;
1757 STDMETHOD(GetInterrupt)(THIS) PURE;
1758 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE;
1759 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE;
1760 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE;
1761 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG FileSize,PBOOL Append) PURE;
1762 STDMETHOD(OpenLogFile)(THIS_ PCSTR File,WINBOOL Append) PURE;
1763 STDMETHOD(CloseLogFile)(THIS) PURE;
1764 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE;
1765 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE;
1766 STDMETHOD(Input)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG InputSize) PURE;
1767 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE;
1768 STDMETHODV(Output)(THIS_ ULONG Mask,PCSTR Format,...) PURE;
1769 STDMETHOD(OutputVaList)(THIS_ ULONG Mask,PCSTR Format,va_list Args) PURE;
1770 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,...) PURE;
1771 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,va_list Args) PURE;
1772 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl,PCSTR Format,...) PURE;
1773 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl,PCSTR Format,va_list Args) PURE;
1774 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE;
1775 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl,ULONG Flags) PURE;
1776 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE;
1777 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE;
1778 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE;
1779 STDMETHOD(Assemble)(THIS_ ULONG64 Offset,PCSTR Instr,PULONG64 EndOffset) PURE;
1780 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset,ULONG Flags,PSTR Buffer,ULONG BufferSize,PULONG DisassemblySize,PULONG64 EndOffset) PURE;
1781 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE;
1782 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG Flags,PULONG64 EndOffset) PURE;
1783 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl,ULONG PreviousLines,ULONG TotalLines,ULONG64 Offset,ULONG Flags,PULONG OffsetLine,PULONG64 StartOffset,PULONG64 EndOffset,PULONG64 LineOffsets) PURE;
1784 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset,LONG Delta,PULONG64 NearOffset) PURE;
1785 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset,ULONG64 StackOffset,ULONG64 InstructionOffset,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,PULONG FramesFilled) PURE;
1786 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE;
1787 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,ULONG Flags) PURE;
1788 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class,PULONG Qualifier) PURE;
1789 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE;
1790 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE;
1791 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE;
1792 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE;
1793 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE;
1794 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId,PULONG Major,PULONG Minor,PSTR ServicePackString,ULONG ServicePackStringSize,PULONG ServicePackStringUsed,PULONG ServicePackNumber,PSTR BuildString,ULONG BuildStringSize,PULONG BuildStringUsed) PURE;
1795 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE;
1796 STDMETHOD(IsPointer64Bit)(THIS) PURE;
1797 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code,PULONG64 Arg1,PULONG64 Arg2,PULONG64 Arg3,PULONG64 Arg4) PURE;
1798 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE;
1799 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE;
1800 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type,PSTR FullNameBuffer,ULONG FullNameBufferSize,PULONG FullNameSize,PSTR AbbrevNameBuffer,ULONG AbbrevNameBufferSize,PULONG AbbrevNameSize) PURE;
1801 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE;
1802 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE;
1803 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE;
1804 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE;
1805 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE;
1806 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE;
1807 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE;
1808 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE;
1809 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE;
1810 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE;
1811 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel,PULONG BreakLevel) PURE;
1812 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel,ULONG BreakLevel) PURE;
1813 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot,PSTR Buffer,ULONG BufferSize,PULONG MacroSize) PURE;
1814 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot,PCSTR Macro) PURE;
1815 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE;
1816 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE;
1817 STDMETHOD(Evaluate)(THIS_ PCSTR Expression,ULONG DesiredType,PDEBUG_VALUE Value,PULONG RemainderIndex) PURE;
1818 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In,ULONG OutType,PDEBUG_VALUE Out) PURE;
1819 STDMETHOD(CoerceValues)(THIS_ ULONG Count,PDEBUG_VALUE In,PULONG OutTypes,PDEBUG_VALUE Out) PURE;
1820 STDMETHOD(Execute)(THIS_ ULONG OutputControl,PCSTR Command,ULONG Flags) PURE;
1821 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl,PCSTR CommandFile,ULONG Flags) PURE;
1822 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE;
1823 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index,PDEBUG_BREAKPOINT *Bp) PURE;
1824 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id,PDEBUG_BREAKPOINT *Bp) PURE;
1825 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count,PULONG Ids,ULONG Start,PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
1826 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type,ULONG DesiredId,PDEBUG_BREAKPOINT *Bp) PURE;
1827 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE;
1828 STDMETHOD(AddExtension)(THIS_ PCSTR Path,ULONG Flags,PULONG64 Handle) PURE;
1829 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE;
1830 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path,PULONG64 Handle) PURE;
1831 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle,PCSTR Function,PCSTR Arguments) PURE;
1832 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle,PCSTR FuncName,FARPROC *Function) PURE;
1833 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE;
1834 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE;
1835 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents,PULONG SpecificExceptions,PULONG ArbitraryExceptions) PURE;
1836 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE;
1837 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE;
1838 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index,PCSTR Command) PURE;
1839 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
1840 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
1841 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ArgumentSize) PURE;
1842 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index,PCSTR Argument) PURE;
1843 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count,PULONG Codes,ULONG Start,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
1844 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
1845 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE;
1846 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index,PCSTR Command) PURE;
1847 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags,ULONG Timeout) PURE;
1848 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type,PULONG ProcessId,PULONG ThreadId,PVOID ExtraInformation,ULONG ExtraInformationSize,PULONG ExtraInformationUsed,PSTR Description,ULONG DescriptionSize,PULONG DescriptionUsed) PURE;
1849 STDMETHOD(GetCurrentTimeDate)(THIS_ PULONG TimeDate) PURE;
1850 STDMETHOD(GetCurrentSystemUpTime)(THIS_ PULONG UpTime) PURE;
1851 STDMETHOD(GetDumpFormatFlags)(THIS_ PULONG FormatFlags) PURE;
1852 STDMETHOD(GetNumberTextReplacements)(THIS_ PULONG NumRepl) PURE;
1853 STDMETHOD(GetTextReplacement)(THIS_ PCSTR SrcText,ULONG Index,PSTR SrcBuffer,ULONG SrcBufferSize,PULONG SrcSize,PSTR DstBuffer,ULONG DstBufferSize,PULONG DstSize) PURE;
1854 STDMETHOD(SetTextReplacement)(THIS_ PCSTR SrcText,PCSTR DstText) PURE;
1855 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
1856 STDMETHOD(OutputTextReplacements)(THIS_ ULONG OutputControl,ULONG Flags) PURE;
1857 };
1858#ifdef __CRT_UUID_DECL
1859__CRT_UUID_DECL(IDebugControl2,0xd4366723,0x44df,0x4bed,0x8c,0x7e,0x4c,0x05,0x42,0x4f,0x45,0x88)
1860#endif
1861
1862#define DEBUG_ASMOPT_DEFAULT 0x00000000
1863#define DEBUG_ASMOPT_VERBOSE 0x00000001
1864#define DEBUG_ASMOPT_NO_CODE_BYTES 0x00000002
1865#define DEBUG_ASMOPT_IGNORE_OUTPUT_WIDTH 0x00000004
1866
1867#define DEBUG_EXPR_MASM 0x00000000
1868#define DEBUG_EXPR_CPLUSPLUS 0x00000001
1869
1870#define DEBUG_EINDEX_NAME 0x00000000
1871#define DEBUG_EINDEX_FROM_START 0x00000000
1872#define DEBUG_EINDEX_FROM_END 0x00000001
1873#define DEBUG_EINDEX_FROM_CURRENT 0x00000002
1874
1875#undef INTERFACE
1876#define INTERFACE IDebugControl3
1877 DECLARE_INTERFACE_(IDebugControl3,IUnknown) {
1878 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
1879 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1880 STDMETHOD_(ULONG,Release)(THIS) PURE;
1881 STDMETHOD(GetInterrupt)(THIS) PURE;
1882 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE;
1883 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE;
1884 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE;
1885 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG FileSize,PBOOL Append) PURE;
1886 STDMETHOD(OpenLogFile)(THIS_ PCSTR File,WINBOOL Append) PURE;
1887 STDMETHOD(CloseLogFile)(THIS) PURE;
1888 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE;
1889 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE;
1890 STDMETHOD(Input)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG InputSize) PURE;
1891 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE;
1892 STDMETHODV(Output)(THIS_ ULONG Mask,PCSTR Format,...) PURE;
1893 STDMETHOD(OutputVaList)(THIS_ ULONG Mask,PCSTR Format,va_list Args) PURE;
1894 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,...) PURE;
1895 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,va_list Args) PURE;
1896 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl,PCSTR Format,...) PURE;
1897 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl,PCSTR Format,va_list Args) PURE;
1898 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE;
1899 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl,ULONG Flags) PURE;
1900 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE;
1901 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE;
1902 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE;
1903 STDMETHOD(Assemble)(THIS_ ULONG64 Offset,PCSTR Instr,PULONG64 EndOffset) PURE;
1904 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset,ULONG Flags,PSTR Buffer,ULONG BufferSize,PULONG DisassemblySize,PULONG64 EndOffset) PURE;
1905 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE;
1906 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG Flags,PULONG64 EndOffset) PURE;
1907 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl,ULONG PreviousLines,ULONG TotalLines,ULONG64 Offset,ULONG Flags,PULONG OffsetLine,PULONG64 StartOffset,PULONG64 EndOffset,PULONG64 LineOffsets) PURE;
1908 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset,LONG Delta,PULONG64 NearOffset) PURE;
1909 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset,ULONG64 StackOffset,ULONG64 InstructionOffset,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,PULONG FramesFilled) PURE;
1910 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE;
1911 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,ULONG Flags) PURE;
1912 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class,PULONG Qualifier) PURE;
1913 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE;
1914 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE;
1915 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE;
1916 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE;
1917 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE;
1918 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId,PULONG Major,PULONG Minor,PSTR ServicePackString,ULONG ServicePackStringSize,PULONG ServicePackStringUsed,PULONG ServicePackNumber,PSTR BuildString,ULONG BuildStringSize,PULONG BuildStringUsed) PURE;
1919 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE;
1920 STDMETHOD(IsPointer64Bit)(THIS) PURE;
1921 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code,PULONG64 Arg1,PULONG64 Arg2,PULONG64 Arg3,PULONG64 Arg4) PURE;
1922 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE;
1923 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE;
1924 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type,PSTR FullNameBuffer,ULONG FullNameBufferSize,PULONG FullNameSize,PSTR AbbrevNameBuffer,ULONG AbbrevNameBufferSize,PULONG AbbrevNameSize) PURE;
1925 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE;
1926 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE;
1927 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE;
1928 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE;
1929 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE;
1930 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE;
1931 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE;
1932 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE;
1933 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE;
1934 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE;
1935 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel,PULONG BreakLevel) PURE;
1936 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel,ULONG BreakLevel) PURE;
1937 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot,PSTR Buffer,ULONG BufferSize,PULONG MacroSize) PURE;
1938 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot,PCSTR Macro) PURE;
1939 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE;
1940 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE;
1941 STDMETHOD(Evaluate)(THIS_ PCSTR Expression,ULONG DesiredType,PDEBUG_VALUE Value,PULONG RemainderIndex) PURE;
1942 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In,ULONG OutType,PDEBUG_VALUE Out) PURE;
1943 STDMETHOD(CoerceValues)(THIS_ ULONG Count,PDEBUG_VALUE In,PULONG OutTypes,PDEBUG_VALUE Out) PURE;
1944 STDMETHOD(Execute)(THIS_ ULONG OutputControl,PCSTR Command,ULONG Flags) PURE;
1945 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl,PCSTR CommandFile,ULONG Flags) PURE;
1946 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE;
1947 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index,PDEBUG_BREAKPOINT *Bp) PURE;
1948 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id,PDEBUG_BREAKPOINT *Bp) PURE;
1949 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count,PULONG Ids,ULONG Start,PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
1950 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type,ULONG DesiredId,PDEBUG_BREAKPOINT *Bp) PURE;
1951 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE;
1952 STDMETHOD(AddExtension)(THIS_ PCSTR Path,ULONG Flags,PULONG64 Handle) PURE;
1953 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE;
1954 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path,PULONG64 Handle) PURE;
1955 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle,PCSTR Function,PCSTR Arguments) PURE;
1956 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle,PCSTR FuncName,FARPROC *Function) PURE;
1957 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE;
1958 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE;
1959 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents,PULONG SpecificExceptions,PULONG ArbitraryExceptions) PURE;
1960 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE;
1961 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE;
1962 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index,PCSTR Command) PURE;
1963 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
1964 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
1965 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ArgumentSize) PURE;
1966 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index,PCSTR Argument) PURE;
1967 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count,PULONG Codes,ULONG Start,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
1968 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
1969 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE;
1970 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index,PCSTR Command) PURE;
1971 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags,ULONG Timeout) PURE;
1972 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type,PULONG ProcessId,PULONG ThreadId,PVOID ExtraInformation,ULONG ExtraInformationSize,PULONG ExtraInformationUsed,PSTR Description,ULONG DescriptionSize,PULONG DescriptionUsed) PURE;
1973 STDMETHOD(GetCurrentTimeDate)(THIS_ PULONG TimeDate) PURE;
1974 STDMETHOD(GetCurrentSystemUpTime)(THIS_ PULONG UpTime) PURE;
1975 STDMETHOD(GetDumpFormatFlags)(THIS_ PULONG FormatFlags) PURE;
1976 STDMETHOD(GetNumberTextReplacements)(THIS_ PULONG NumRepl) PURE;
1977 STDMETHOD(GetTextReplacement)(THIS_ PCSTR SrcText,ULONG Index,PSTR SrcBuffer,ULONG SrcBufferSize,PULONG SrcSize,PSTR DstBuffer,ULONG DstBufferSize,PULONG DstSize) PURE;
1978 STDMETHOD(SetTextReplacement)(THIS_ PCSTR SrcText,PCSTR DstText) PURE;
1979 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
1980 STDMETHOD(OutputTextReplacements)(THIS_ ULONG OutputControl,ULONG Flags) PURE;
1981 STDMETHOD(GetAssemblyOptions)(THIS_ PULONG Options) PURE;
1982 STDMETHOD(AddAssemblyOptions)(THIS_ ULONG Options) PURE;
1983 STDMETHOD(RemoveAssemblyOptions)(THIS_ ULONG Options) PURE;
1984 STDMETHOD(SetAssemblyOptions)(THIS_ ULONG Options) PURE;
1985 STDMETHOD(GetExpressionSyntax)(THIS_ PULONG Flags) PURE;
1986 STDMETHOD(SetExpressionSyntax)(THIS_ ULONG Flags) PURE;
1987 STDMETHOD(SetExpressionSyntaxByName)(THIS_ PCSTR AbbrevName) PURE;
1988 STDMETHOD(GetNumberExpressionSyntaxes)(THIS_ PULONG Number) PURE;
1989 STDMETHOD(GetExpressionSyntaxNames)(THIS_ ULONG Index,PSTR FullNameBuffer,ULONG FullNameBufferSize,PULONG FullNameSize,PSTR AbbrevNameBuffer,ULONG AbbrevNameBufferSize,PULONG AbbrevNameSize) PURE;
1990 STDMETHOD(GetNumberEvents)(THIS_ PULONG Events) PURE;
1991 STDMETHOD(GetEventIndexDescription)(THIS_ ULONG Index,ULONG Which,PSTR Buffer,ULONG BufferSize,PULONG DescSize) PURE;
1992 STDMETHOD(GetCurrentEventIndex)(THIS_ PULONG Index) PURE;
1993 STDMETHOD(SetNextEventIndex)(THIS_ ULONG Relation,ULONG Value,PULONG NextIndex) PURE;
1994 };
1995#ifdef __CRT_UUID_DECL
1996__CRT_UUID_DECL(IDebugControl3,0x7df74a86,0xb03f,0x407f,0x90,0xab,0xa2,0x0d,0xad,0xce,0xad,0x08)
1997#endif
1998
1999#undef INTERFACE
2000#define INTERFACE IDebugControl4
2001 DECLARE_INTERFACE_(IDebugControl4, IUnknown) {
2002 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
2003 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
2004 STDMETHOD_(ULONG, Release)(THIS) PURE;
2005 STDMETHOD(GetInterrupt)(THIS) PURE;
2006 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE;
2007 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE;
2008 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE;
2009 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG FileSize, PBOOL Append) PURE;
2010 STDMETHOD(OpenLogFile)(THIS_ PCSTR File, WINBOOL Append) PURE;
2011 STDMETHOD(CloseLogFile)(THIS) PURE;
2012 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE;
2013 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE;
2014 STDMETHOD(Input)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG InputSize) PURE;
2015 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE;
2016 STDMETHODV(Output)(THIS_ ULONG Mask, PCSTR Format, ...) PURE;
2017 STDMETHOD(OutputVaList)(THIS_ ULONG Mask, PCSTR Format, va_list Args) PURE;
2018 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl, ULONG Mask, PCSTR Format, ...) PURE;
2019 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl, ULONG Mask, PCSTR Format, va_list Args) PURE;
2020 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl, PCSTR Format, ...) PURE;
2021 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl, PCSTR Format, va_list Args) PURE;
2022 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2023 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
2024 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE;
2025 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE;
2026 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE;
2027 STDMETHOD(Assemble)(THIS_ ULONG64 Offset, PCSTR Instr, PULONG64 EndOffset) PURE;
2028 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset, ULONG Flags, PSTR Buffer, ULONG BufferSize, PULONG DisassemblySize, PULONG64 EndOffset) PURE;
2029 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE;
2030 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG Flags, PULONG64 EndOffset) PURE;
2031 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl, ULONG PreviousLines, ULONG TotalLines, ULONG64 Offset, ULONG Flags, PULONG OffsetLine, PULONG64 StartOffset, PULONG64 EndOffset, PULONG64 LineOffsets) PURE;
2032 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset, LONG Delta, PULONG64 NearOffset) PURE;
2033 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset, ULONG64 StackOffset, ULONG64 InstructionOffset, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PULONG FramesFilled) PURE;
2034 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE;
2035 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, ULONG Flags) PURE;
2036 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class, PULONG Qualifier) PURE;
2037 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE;
2038 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE;
2039 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE;
2040 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start, ULONG Count, PULONG Types) PURE;
2041 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE;
2042 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId, PULONG Major, PULONG Minor, PSTR ServicePackString, ULONG ServicePackStringSize, PULONG ServicePackStringUsed, PULONG ServicePackNumber, PSTR BuildString, ULONG BuildStringSize, PULONG BuildStringUsed) PURE;
2043 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE;
2044 STDMETHOD(IsPointer64Bit)(THIS) PURE;
2045 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code, PULONG64 Arg1, PULONG64 Arg2, PULONG64 Arg3, PULONG64 Arg4) PURE;
2046 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE;
2047 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start, ULONG Count, PULONG Types) PURE;
2048 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type, PSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2049 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE;
2050 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE;
2051 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE;
2052 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE;
2053 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE;
2054 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE;
2055 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE;
2056 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE;
2057 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE;
2058 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE;
2059 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel, PULONG BreakLevel) PURE;
2060 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel, ULONG BreakLevel) PURE;
2061 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot, PSTR Buffer, ULONG BufferSize, PULONG MacroSize) PURE;
2062 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot, PCSTR Macro) PURE;
2063 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE;
2064 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE;
2065 STDMETHOD(Evaluate)(THIS_ PCSTR Expression, ULONG DesiredType, PDEBUG_VALUE Value, PULONG RemainderIndex) PURE;
2066 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In, ULONG OutType, PDEBUG_VALUE Out) PURE;
2067 STDMETHOD(CoerceValues)(THIS_ ULONG Count, PDEBUG_VALUE In, PULONG OutTypes, PDEBUG_VALUE Out) PURE;
2068 STDMETHOD(Execute)(THIS_ ULONG OutputControl, PCSTR Command, ULONG Flags) PURE;
2069 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl, PCSTR CommandFile, ULONG Flags) PURE;
2070 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE;
2071 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index, PDEBUG_BREAKPOINT *Bp) PURE;
2072 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id, PDEBUG_BREAKPOINT *Bp) PURE;
2073 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count, PULONG Ids, ULONG Start, PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
2074 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type, ULONG DesiredId, PDEBUG_BREAKPOINT *Bp) PURE;
2075 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE;
2076 STDMETHOD(AddExtension)(THIS_ PCSTR Path, ULONG Flags, PULONG64 Handle) PURE;
2077 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE;
2078 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path, PULONG64 Handle) PURE;
2079 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle, PCSTR Function, PCSTR Arguments) PURE;
2080 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle, PCSTR FuncName, FARPROC *Function) PURE;
2081 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE;
2082 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE;
2083 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents, PULONG SpecificExceptions, PULONG ArbitraryExceptions) PURE;
2084 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2085 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2086 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index, PCSTR Command) PURE;
2087 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
2088 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
2089 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG ArgumentSize) PURE;
2090 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index, PCSTR Argument) PURE;
2091 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count, PULONG Codes, ULONG Start, PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
2092 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count, PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
2093 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2094 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index, PCSTR Command) PURE;
2095 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags, ULONG Timeout) PURE;
2096 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed, PSTR Description, ULONG DescriptionSize, PULONG DescriptionUsed) PURE;
2097 STDMETHOD(GetCurrentTimeDate)(THIS_ PULONG TimeDate) PURE;
2098 STDMETHOD(GetCurrentSystemUpTime)(THIS_ PULONG UpTime) PURE;
2099 STDMETHOD(GetDumpFormatFlags)(THIS_ PULONG FormatFlags) PURE;
2100 STDMETHOD(GetNumberTextReplacements)(THIS_ PULONG NumRepl) PURE;
2101 STDMETHOD(GetTextReplacement)(THIS_ PCSTR SrcText, ULONG Index, PSTR SrcBuffer, ULONG SrcBufferSize, PULONG SrcSize, PSTR DstBuffer, ULONG DstBufferSize, PULONG DstSize) PURE;
2102 STDMETHOD(SetTextReplacement)(THIS_ PCSTR SrcText, PCSTR DstText) PURE;
2103 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
2104 STDMETHOD(OutputTextReplacements)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
2105 STDMETHOD(GetAssemblyOptions)(THIS_ PULONG Options) PURE;
2106 STDMETHOD(AddAssemblyOptions)(THIS_ ULONG Options) PURE;
2107 STDMETHOD(RemoveAssemblyOptions)(THIS_ ULONG Options) PURE;
2108 STDMETHOD(SetAssemblyOptions)(THIS_ ULONG Options) PURE;
2109 STDMETHOD(GetExpressionSyntax)(THIS_ PULONG Flags) PURE;
2110 STDMETHOD(SetExpressionSyntax)(THIS_ ULONG Flags) PURE;
2111 STDMETHOD(SetExpressionSyntaxByName)(THIS_ PCSTR AbbrevName) PURE;
2112 STDMETHOD(GetNumberExpressionSyntaxes)(THIS_ PULONG Number) PURE;
2113 STDMETHOD(GetExpressionSyntaxNames)(THIS_ ULONG Index, PSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2114 STDMETHOD(GetNumberEvents)(THIS_ PULONG Events) PURE;
2115 STDMETHOD(GetEventIndexDescription)(THIS_ ULONG Index, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG DescSize) PURE;
2116 STDMETHOD(GetCurrentEventIndex)(THIS_ PULONG Index) PURE;
2117 STDMETHOD(SetNextEventIndex)(THIS_ ULONG Relation, ULONG Value, PULONG NextIndex) PURE;
2118 STDMETHOD(GetLogFileWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG FileSize, PBOOL Append) PURE;
2119 STDMETHOD(OpenLogFileWide)(THIS_ PCWSTR File, WINBOOL Append) PURE;
2120 STDMETHOD(InputWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG InputSize) PURE;
2121 STDMETHOD(ReturnInputWide)(THIS_ PCWSTR Buffer) PURE;
2122 STDMETHODV(OutputWide)(THIS_ ULONG Mask, PCWSTR Format, ...) PURE;
2123 STDMETHOD(OutputVaListWide)(THIS_ ULONG Mask, PCWSTR Format, va_list Args) PURE;
2124 STDMETHODV(ControlledOutputWide)(THIS_ ULONG OutputControl, ULONG Mask, PCWSTR Format, ...) PURE;
2125 STDMETHOD(ControlledOutputVaListWide)(THIS_ ULONG OutputControl, ULONG Mask, PCWSTR Format, va_list Args) PURE;
2126 STDMETHODV(OutputPromptWide)(THIS_ ULONG OutputControl, PCWSTR Format, ...) PURE;
2127 STDMETHOD(OutputPromptVaListWide)(THIS_ ULONG OutputControl, PCWSTR Format, va_list Args) PURE;
2128 STDMETHOD(GetPromptTextWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2129 STDMETHOD(AssembleWide)(THIS_ ULONG64 Offset, PCWSTR Instr, PULONG64 EndOffset) PURE;
2130 STDMETHOD(DisassembleWide)(THIS_ ULONG64 Offset, ULONG Flags, PWSTR Buffer, ULONG BufferSize, PULONG DisassemblySize, PULONG64 EndOffset) PURE;
2131 STDMETHOD(GetProcessorTypeNamesWide)(THIS_ ULONG Type, PWSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PWSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2132 STDMETHOD(GetTextMacroWide)(THIS_ ULONG Slot, PWSTR Buffer, ULONG BufferSize, PULONG MacroSize) PURE;
2133 STDMETHOD(SetTextMacroWide)(THIS_ ULONG Slot, PCWSTR Macro) PURE;
2134 STDMETHOD(EvaluateWide)(THIS_ PCWSTR Expression, ULONG DesiredType, PDEBUG_VALUE Value, PULONG RemainderIndex) PURE;
2135 STDMETHOD(ExecuteWide)(THIS_ ULONG OutputControl, PCWSTR Command, ULONG Flags) PURE;
2136 STDMETHOD(ExecuteCommandFileWide)(THIS_ ULONG OutputControl, PCWSTR CommandFile, ULONG Flags) PURE;
2137 STDMETHOD(GetBreakpointByIndex2)(THIS_ ULONG Index, PDEBUG_BREAKPOINT2 *Bp) PURE;
2138 STDMETHOD(GetBreakpointById2)(THIS_ ULONG Id, PDEBUG_BREAKPOINT2 *Bp) PURE;
2139 STDMETHOD(AddBreakpoint2)(THIS_ ULONG Type, ULONG DesiredId, PDEBUG_BREAKPOINT2 *Bp) PURE;
2140 STDMETHOD(RemoveBreakpoint2)(THIS_ PDEBUG_BREAKPOINT2 Bp) PURE;
2141 STDMETHOD(AddExtensionWide)(THIS_ PCWSTR Path, ULONG Flags, PULONG64 Handle) PURE;
2142 STDMETHOD(GetExtensionByPathWide)(THIS_ PCWSTR Path, PULONG64 Handle) PURE;
2143 STDMETHOD(CallExtensionWide)(THIS_ ULONG64 Handle, PCWSTR Function, PCWSTR Arguments) PURE;
2144 STDMETHOD(GetExtensionFunctionWide)(THIS_ ULONG64 Handle, PCWSTR FuncName, FARPROC *Function) PURE;
2145 STDMETHOD(GetEventFilterTextWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2146 STDMETHOD(GetEventFilterCommandWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2147 STDMETHOD(SetEventFilterCommandWide)(THIS_ ULONG Index, PCWSTR Command) PURE;
2148 STDMETHOD(GetSpecificFilterArgumentWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG ArgumentSize) PURE;
2149 STDMETHOD(SetSpecificFilterArgumentWide)(THIS_ ULONG Index, PCWSTR Argument) PURE;
2150 STDMETHOD(GetExceptionFilterSecondCommandWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2151 STDMETHOD(SetExceptionFilterSecondCommandWide)(THIS_ ULONG Index, PCWSTR Command) PURE;
2152 STDMETHOD(GetLastEventInformationWide)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed, PWSTR Description, ULONG DescriptionSize, PULONG DescriptionUsed) PURE;
2153 STDMETHOD(GetTextReplacementWide)(THIS_ PCWSTR SrcText, ULONG Index, PWSTR SrcBuffer, ULONG SrcBufferSize, PULONG SrcSize, PWSTR DstBuffer, ULONG DstBufferSize, PULONG DstSize) PURE;
2154 STDMETHOD(SetTextReplacementWide)(THIS_ PCWSTR SrcText, PCWSTR DstText) PURE;
2155 STDMETHOD(SetExpressionSyntaxByNameWide)(THIS_ PCWSTR AbbrevName) PURE;
2156 STDMETHOD(GetExpressionSyntaxNamesWide)(THIS_ ULONG Index, PWSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PWSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2157 STDMETHOD(GetEventIndexDescriptionWide)(THIS_ ULONG Index, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG DescSize) PURE;
2158 STDMETHOD(GetLogFile2)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG FileSize, PULONG Flags) PURE;
2159 STDMETHOD(OpenLogFile2)(THIS_ PCSTR File, ULONG Flags) PURE;
2160 STDMETHOD(GetLogFile2Wide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG FileSize, PULONG Flags) PURE;
2161 STDMETHOD(OpenLogFile2Wide)(THIS_ PCWSTR File, ULONG Flags) PURE;
2162 STDMETHOD(GetSystemVersionValues)(THIS_ PULONG PlatformId, PULONG Win32Major, PULONG Win32Minor, PULONG KdMajor, PULONG KdMinor) PURE;
2163 STDMETHOD(GetSystemVersionString)(THIS_ ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
2164 STDMETHOD(GetSystemVersionStringWide)(THIS_ ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
2165 STDMETHOD(GetContextStackTrace)(THIS_ PVOID StartContext, ULONG StartContextSize, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, PULONG FramesFilled) PURE;
2166 STDMETHOD(OutputContextStackTrace)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, ULONG Flags) PURE;
2167 STDMETHOD(GetStoredEventInformation)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID Context, ULONG ContextSize, PULONG ContextUsed, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed) PURE;
2168 STDMETHOD(GetManagedStatus)(THIS_ PULONG Flags, ULONG WhichString, PSTR String, ULONG StringSize, PULONG StringNeeded) PURE;
2169 STDMETHOD(GetManagedStatusWide)(THIS_ PULONG Flags, ULONG WhichString, PWSTR String, ULONG StringSize, PULONG StringNeeded) PURE;
2170 STDMETHOD(ResetManagedStatus)(THIS_ ULONG Flags) PURE;
2171 };
2172#ifdef __CRT_UUID_DECL
2173__CRT_UUID_DECL(IDebugControl4,0x94e60ce9,0x9b41,0x4b19,0x9f,0xc0,0x6d,0x9e,0xb3,0x52,0x72,0xb3)
2174#endif
2175
2176#undef INTERFACE
2177#define INTERFACE IDebugControl5
2178 DECLARE_INTERFACE_(IDebugControl5, IUnknown) {
2179 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
2180 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
2181 STDMETHOD_(ULONG, Release)(THIS) PURE;
2182 STDMETHOD(GetInterrupt)(THIS) PURE;
2183 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE;
2184 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE;
2185 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE;
2186 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG FileSize, PBOOL Append) PURE;
2187 STDMETHOD(OpenLogFile)(THIS_ PCSTR File, WINBOOL Append) PURE;
2188 STDMETHOD(CloseLogFile)(THIS) PURE;
2189 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE;
2190 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE;
2191 STDMETHOD(Input)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG InputSize) PURE;
2192 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE;
2193 STDMETHODV(Output)(THIS_ ULONG Mask, PCSTR Format, ...) PURE;
2194 STDMETHOD(OutputVaList)(THIS_ ULONG Mask, PCSTR Format, va_list Args) PURE;
2195 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl, ULONG Mask, PCSTR Format, ...) PURE;
2196 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl, ULONG Mask, PCSTR Format, va_list Args) PURE;
2197 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl, PCSTR Format, ...) PURE;
2198 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl, PCSTR Format, va_list Args) PURE;
2199 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2200 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
2201 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE;
2202 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE;
2203 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE;
2204 STDMETHOD(Assemble)(THIS_ ULONG64 Offset, PCSTR Instr, PULONG64 EndOffset) PURE;
2205 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset, ULONG Flags, PSTR Buffer, ULONG BufferSize, PULONG DisassemblySize, PULONG64 EndOffset) PURE;
2206 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE;
2207 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG Flags, PULONG64 EndOffset) PURE;
2208 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl, ULONG PreviousLines, ULONG TotalLines, ULONG64 Offset, ULONG Flags, PULONG OffsetLine, PULONG64 StartOffset, PULONG64 EndOffset, PULONG64 LineOffsets) PURE;
2209 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset, LONG Delta, PULONG64 NearOffset) PURE;
2210 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset, ULONG64 StackOffset, ULONG64 InstructionOffset, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PULONG FramesFilled) PURE;
2211 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE;
2212 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, ULONG Flags) PURE;
2213 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class, PULONG Qualifier) PURE;
2214 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE;
2215 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE;
2216 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE;
2217 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start, ULONG Count, PULONG Types) PURE;
2218 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE;
2219 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId, PULONG Major, PULONG Minor, PSTR ServicePackString, ULONG ServicePackStringSize, PULONG ServicePackStringUsed, PULONG ServicePackNumber, PSTR BuildString, ULONG BuildStringSize, PULONG BuildStringUsed) PURE;
2220 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE;
2221 STDMETHOD(IsPointer64Bit)(THIS) PURE;
2222 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code, PULONG64 Arg1, PULONG64 Arg2, PULONG64 Arg3, PULONG64 Arg4) PURE;
2223 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE;
2224 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start, ULONG Count, PULONG Types) PURE;
2225 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type, PSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2226 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE;
2227 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE;
2228 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE;
2229 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE;
2230 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE;
2231 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE;
2232 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE;
2233 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE;
2234 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE;
2235 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE;
2236 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel, PULONG BreakLevel) PURE;
2237 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel, ULONG BreakLevel) PURE;
2238 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot, PSTR Buffer, ULONG BufferSize, PULONG MacroSize) PURE;
2239 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot, PCSTR Macro) PURE;
2240 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE;
2241 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE;
2242 STDMETHOD(Evaluate)(THIS_ PCSTR Expression, ULONG DesiredType, PDEBUG_VALUE Value, PULONG RemainderIndex) PURE;
2243 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In, ULONG OutType, PDEBUG_VALUE Out) PURE;
2244 STDMETHOD(CoerceValues)(THIS_ ULONG Count, PDEBUG_VALUE In, PULONG OutTypes, PDEBUG_VALUE Out) PURE;
2245 STDMETHOD(Execute)(THIS_ ULONG OutputControl, PCSTR Command, ULONG Flags) PURE;
2246 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl, PCSTR CommandFile, ULONG Flags) PURE;
2247 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE;
2248 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index, PDEBUG_BREAKPOINT *Bp) PURE;
2249 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id, PDEBUG_BREAKPOINT *Bp) PURE;
2250 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count, PULONG Ids, ULONG Start, PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
2251 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type, ULONG DesiredId, PDEBUG_BREAKPOINT *Bp) PURE;
2252 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE;
2253 STDMETHOD(AddExtension)(THIS_ PCSTR Path, ULONG Flags, PULONG64 Handle) PURE;
2254 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE;
2255 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path, PULONG64 Handle) PURE;
2256 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle, PCSTR Function, PCSTR Arguments) PURE;
2257 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle, PCSTR FuncName, FARPROC *Function) PURE;
2258 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE;
2259 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE;
2260 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents, PULONG SpecificExceptions, PULONG ArbitraryExceptions) PURE;
2261 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2262 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2263 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index, PCSTR Command) PURE;
2264 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
2265 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
2266 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG ArgumentSize) PURE;
2267 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index, PCSTR Argument) PURE;
2268 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count, PULONG Codes, ULONG Start, PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
2269 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count, PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
2270 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2271 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index, PCSTR Command) PURE;
2272 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags, ULONG Timeout) PURE;
2273 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed, PSTR Description, ULONG DescriptionSize, PULONG DescriptionUsed) PURE;
2274 STDMETHOD(GetCurrentTimeDate)(THIS_ PULONG TimeDate) PURE;
2275 STDMETHOD(GetCurrentSystemUpTime)(THIS_ PULONG UpTime) PURE;
2276 STDMETHOD(GetDumpFormatFlags)(THIS_ PULONG FormatFlags) PURE;
2277 STDMETHOD(GetNumberTextReplacements)(THIS_ PULONG NumRepl) PURE;
2278 STDMETHOD(GetTextReplacement)(THIS_ PCSTR SrcText, ULONG Index, PSTR SrcBuffer, ULONG SrcBufferSize, PULONG SrcSize, PSTR DstBuffer, ULONG DstBufferSize, PULONG DstSize) PURE;
2279 STDMETHOD(SetTextReplacement)(THIS_ PCSTR SrcText, PCSTR DstText) PURE;
2280 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
2281 STDMETHOD(OutputTextReplacements)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
2282 STDMETHOD(GetAssemblyOptions)(THIS_ PULONG Options) PURE;
2283 STDMETHOD(AddAssemblyOptions)(THIS_ ULONG Options) PURE;
2284 STDMETHOD(RemoveAssemblyOptions)(THIS_ ULONG Options) PURE;
2285 STDMETHOD(SetAssemblyOptions)(THIS_ ULONG Options) PURE;
2286 STDMETHOD(GetExpressionSyntax)(THIS_ PULONG Flags) PURE;
2287 STDMETHOD(SetExpressionSyntax)(THIS_ ULONG Flags) PURE;
2288 STDMETHOD(SetExpressionSyntaxByName)(THIS_ PCSTR AbbrevName) PURE;
2289 STDMETHOD(GetNumberExpressionSyntaxes)(THIS_ PULONG Number) PURE;
2290 STDMETHOD(GetExpressionSyntaxNames)(THIS_ ULONG Index, PSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2291 STDMETHOD(GetNumberEvents)(THIS_ PULONG Events) PURE;
2292 STDMETHOD(GetEventIndexDescription)(THIS_ ULONG Index, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG DescSize) PURE;
2293 STDMETHOD(GetCurrentEventIndex)(THIS_ PULONG Index) PURE;
2294 STDMETHOD(SetNextEventIndex)(THIS_ ULONG Relation, ULONG Value, PULONG NextIndex) PURE;
2295 STDMETHOD(GetLogFileWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG FileSize, PBOOL Append) PURE;
2296 STDMETHOD(OpenLogFileWide)(THIS_ PCWSTR File, WINBOOL Append) PURE;
2297 STDMETHOD(InputWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG InputSize) PURE;
2298 STDMETHOD(ReturnInputWide)(THIS_ PCWSTR Buffer) PURE;
2299 STDMETHODV(OutputWide)(THIS_ ULONG Mask, PCWSTR Format, ...) PURE;
2300 STDMETHOD(OutputVaListWide)(THIS_ ULONG Mask, PCWSTR Format, va_list Args) PURE;
2301 STDMETHODV(ControlledOutputWide)(THIS_ ULONG OutputControl, ULONG Mask, PCWSTR Format, ...) PURE;
2302 STDMETHOD(ControlledOutputVaListWide)(THIS_ ULONG OutputControl, ULONG Mask, PCWSTR Format, va_list Args) PURE;
2303 STDMETHODV(OutputPromptWide)(THIS_ ULONG OutputControl, PCWSTR Format, ...) PURE;
2304 STDMETHOD(OutputPromptVaListWide)(THIS_ ULONG OutputControl, PCWSTR Format, va_list Args) PURE;
2305 STDMETHOD(GetPromptTextWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2306 STDMETHOD(AssembleWide)(THIS_ ULONG64 Offset, PCWSTR Instr, PULONG64 EndOffset) PURE;
2307 STDMETHOD(DisassembleWide)(THIS_ ULONG64 Offset, ULONG Flags, PWSTR Buffer, ULONG BufferSize, PULONG DisassemblySize, PULONG64 EndOffset) PURE;
2308 STDMETHOD(GetProcessorTypeNamesWide)(THIS_ ULONG Type, PWSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PWSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2309 STDMETHOD(GetTextMacroWide)(THIS_ ULONG Slot, PWSTR Buffer, ULONG BufferSize, PULONG MacroSize) PURE;
2310 STDMETHOD(SetTextMacroWide)(THIS_ ULONG Slot, PCWSTR Macro) PURE;
2311 STDMETHOD(EvaluateWide)(THIS_ PCWSTR Expression, ULONG DesiredType, PDEBUG_VALUE Value, PULONG RemainderIndex) PURE;
2312 STDMETHOD(ExecuteWide)(THIS_ ULONG OutputControl, PCWSTR Command, ULONG Flags) PURE;
2313 STDMETHOD(ExecuteCommandFileWide)(THIS_ ULONG OutputControl, PCWSTR CommandFile, ULONG Flags) PURE;
2314 STDMETHOD(GetBreakpointByIndex2)(THIS_ ULONG Index, PDEBUG_BREAKPOINT2 *Bp) PURE;
2315 STDMETHOD(GetBreakpointById2)(THIS_ ULONG Id, PDEBUG_BREAKPOINT2 *Bp) PURE;
2316 STDMETHOD(AddBreakpoint2)(THIS_ ULONG Type, ULONG DesiredId, PDEBUG_BREAKPOINT2 *Bp) PURE;
2317 STDMETHOD(RemoveBreakpoint2)(THIS_ PDEBUG_BREAKPOINT2 Bp) PURE;
2318 STDMETHOD(AddExtensionWide)(THIS_ PCWSTR Path, ULONG Flags, PULONG64 Handle) PURE;
2319 STDMETHOD(GetExtensionByPathWide)(THIS_ PCWSTR Path, PULONG64 Handle) PURE;
2320 STDMETHOD(CallExtensionWide)(THIS_ ULONG64 Handle, PCWSTR Function, PCWSTR Arguments) PURE;
2321 STDMETHOD(GetExtensionFunctionWide)(THIS_ ULONG64 Handle, PCWSTR FuncName, FARPROC *Function) PURE;
2322 STDMETHOD(GetEventFilterTextWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2323 STDMETHOD(GetEventFilterCommandWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2324 STDMETHOD(SetEventFilterCommandWide)(THIS_ ULONG Index, PCWSTR Command) PURE;
2325 STDMETHOD(GetSpecificFilterArgumentWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG ArgumentSize) PURE;
2326 STDMETHOD(SetSpecificFilterArgumentWide)(THIS_ ULONG Index, PCWSTR Argument) PURE;
2327 STDMETHOD(GetExceptionFilterSecondCommandWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2328 STDMETHOD(SetExceptionFilterSecondCommandWide)(THIS_ ULONG Index, PCWSTR Command) PURE;
2329 STDMETHOD(GetLastEventInformationWide)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed, PWSTR Description, ULONG DescriptionSize, PULONG DescriptionUsed) PURE;
2330 STDMETHOD(GetTextReplacementWide)(THIS_ PCWSTR SrcText, ULONG Index, PWSTR SrcBuffer, ULONG SrcBufferSize, PULONG SrcSize, PWSTR DstBuffer, ULONG DstBufferSize, PULONG DstSize) PURE;
2331 STDMETHOD(SetTextReplacementWide)(THIS_ PCWSTR SrcText, PCWSTR DstText) PURE;
2332 STDMETHOD(SetExpressionSyntaxByNameWide)(THIS_ PCWSTR AbbrevName) PURE;
2333 STDMETHOD(GetExpressionSyntaxNamesWide)(THIS_ ULONG Index, PWSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PWSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2334 STDMETHOD(GetEventIndexDescriptionWide)(THIS_ ULONG Index, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG DescSize) PURE;
2335 STDMETHOD(GetLogFile2)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG FileSize, PULONG Flags) PURE;
2336 STDMETHOD(OpenLogFile2)(THIS_ PCSTR File, ULONG Flags) PURE;
2337 STDMETHOD(GetLogFile2Wide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG FileSize, PULONG Flags) PURE;
2338 STDMETHOD(OpenLogFile2Wide)(THIS_ PCWSTR File, ULONG Flags) PURE;
2339 STDMETHOD(GetSystemVersionValues)(THIS_ PULONG PlatformId, PULONG Win32Major, PULONG Win32Minor, PULONG KdMajor, PULONG KdMinor) PURE;
2340 STDMETHOD(GetSystemVersionString)(THIS_ ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
2341 STDMETHOD(GetSystemVersionStringWide)(THIS_ ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
2342 STDMETHOD(GetContextStackTrace)(THIS_ PVOID StartContext, ULONG StartContextSize, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, PULONG FramesFilled) PURE;
2343 STDMETHOD(OutputContextStackTrace)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, ULONG Flags) PURE;
2344 STDMETHOD(GetStoredEventInformation)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID Context, ULONG ContextSize, PULONG ContextUsed, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed) PURE;
2345 STDMETHOD(GetManagedStatus)(THIS_ PULONG Flags, ULONG WhichString, PSTR String, ULONG StringSize, PULONG StringNeeded) PURE;
2346 STDMETHOD(GetManagedStatusWide)(THIS_ PULONG Flags, ULONG WhichString, PWSTR String, ULONG StringSize, PULONG StringNeeded) PURE;
2347 STDMETHOD(ResetManagedStatus)(THIS_ ULONG Flags) PURE;
2348 STDMETHOD(GetStackTraceEx)(THIS_ ULONG64 FrameOffset, ULONG64 StackOffset, ULONG64 InstructionOffset, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PULONG FramesFilled) PURE;
2349 STDMETHOD(OutputStackTraceEx)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, ULONG Flags) PURE;
2350 STDMETHOD(GetContextStackTraceEx)(THIS_ PVOID StartContext, ULONG StartContextSize, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, PULONG FramesFilled) PURE;
2351 STDMETHOD(OutputContextStackTraceEx)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, ULONG Flags) PURE;
2352 STDMETHOD(GetBreakpointByGuid)(THIS_ LPGUID Guid, PDEBUG_BREAKPOINT3 *Bp) PURE;
2353 };
2354#ifdef __CRT_UUID_DECL
2355__CRT_UUID_DECL(IDebugControl5,0xb2ffe162,0x2412,0x429f,0x8d,0x1d,0x5b,0xf6,0xdd,0x82,0x46,0x96)
2356#endif
2357
2358#undef INTERFACE
2359#define INTERFACE IDebugControl6
2360 DECLARE_INTERFACE_(IDebugControl6, IUnknown) {
2361 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
2362 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
2363 STDMETHOD_(ULONG, Release)(THIS) PURE;
2364 STDMETHOD(GetInterrupt)(THIS) PURE;
2365 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE;
2366 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE;
2367 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE;
2368 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG FileSize, PBOOL Append) PURE;
2369 STDMETHOD(OpenLogFile)(THIS_ PCSTR File, WINBOOL Append) PURE;
2370 STDMETHOD(CloseLogFile)(THIS) PURE;
2371 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE;
2372 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE;
2373 STDMETHOD(Input)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG InputSize) PURE;
2374 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE;
2375 STDMETHODV(Output)(THIS_ ULONG Mask, PCSTR Format, ...) PURE;
2376 STDMETHOD(OutputVaList)(THIS_ ULONG Mask, PCSTR Format, va_list Args) PURE;
2377 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl, ULONG Mask, PCSTR Format, ...) PURE;
2378 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl, ULONG Mask, PCSTR Format, va_list Args) PURE;
2379 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl, PCSTR Format, ...) PURE;
2380 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl, PCSTR Format, va_list Args) PURE;
2381 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2382 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
2383 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE;
2384 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE;
2385 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE;
2386 STDMETHOD(Assemble)(THIS_ ULONG64 Offset, PCSTR Instr, PULONG64 EndOffset) PURE;
2387 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset, ULONG Flags, PSTR Buffer, ULONG BufferSize, PULONG DisassemblySize, PULONG64 EndOffset) PURE;
2388 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE;
2389 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG Flags, PULONG64 EndOffset) PURE;
2390 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl, ULONG PreviousLines, ULONG TotalLines, ULONG64 Offset, ULONG Flags, PULONG OffsetLine, PULONG64 StartOffset, PULONG64 EndOffset, PULONG64 LineOffsets) PURE;
2391 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset, LONG Delta, PULONG64 NearOffset) PURE;
2392 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset, ULONG64 StackOffset, ULONG64 InstructionOffset, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PULONG FramesFilled) PURE;
2393 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE;
2394 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, ULONG Flags) PURE;
2395 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class, PULONG Qualifier) PURE;
2396 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE;
2397 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE;
2398 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE;
2399 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start, ULONG Count, PULONG Types) PURE;
2400 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE;
2401 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId, PULONG Major, PULONG Minor, PSTR ServicePackString, ULONG ServicePackStringSize, PULONG ServicePackStringUsed, PULONG ServicePackNumber, PSTR BuildString, ULONG BuildStringSize, PULONG BuildStringUsed) PURE;
2402 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE;
2403 STDMETHOD(IsPointer64Bit)(THIS) PURE;
2404 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code, PULONG64 Arg1, PULONG64 Arg2, PULONG64 Arg3, PULONG64 Arg4) PURE;
2405 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE;
2406 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start, ULONG Count, PULONG Types) PURE;
2407 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type, PSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2408 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE;
2409 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE;
2410 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE;
2411 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE;
2412 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE;
2413 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE;
2414 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE;
2415 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE;
2416 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE;
2417 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE;
2418 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel, PULONG BreakLevel) PURE;
2419 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel, ULONG BreakLevel) PURE;
2420 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot, PSTR Buffer, ULONG BufferSize, PULONG MacroSize) PURE;
2421 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot, PCSTR Macro) PURE;
2422 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE;
2423 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE;
2424 STDMETHOD(Evaluate)(THIS_ PCSTR Expression, ULONG DesiredType, PDEBUG_VALUE Value, PULONG RemainderIndex) PURE;
2425 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In, ULONG OutType, PDEBUG_VALUE Out) PURE;
2426 STDMETHOD(CoerceValues)(THIS_ ULONG Count, PDEBUG_VALUE In, PULONG OutTypes, PDEBUG_VALUE Out) PURE;
2427 STDMETHOD(Execute)(THIS_ ULONG OutputControl, PCSTR Command, ULONG Flags) PURE;
2428 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl, PCSTR CommandFile, ULONG Flags) PURE;
2429 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE;
2430 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index, PDEBUG_BREAKPOINT *Bp) PURE;
2431 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id, PDEBUG_BREAKPOINT *Bp) PURE;
2432 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count, PULONG Ids, ULONG Start, PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
2433 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type, ULONG DesiredId, PDEBUG_BREAKPOINT *Bp) PURE;
2434 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE;
2435 STDMETHOD(AddExtension)(THIS_ PCSTR Path, ULONG Flags, PULONG64 Handle) PURE;
2436 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE;
2437 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path, PULONG64 Handle) PURE;
2438 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle, PCSTR Function, PCSTR Arguments) PURE;
2439 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle, PCSTR FuncName, FARPROC *Function) PURE;
2440 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE;
2441 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE;
2442 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents, PULONG SpecificExceptions, PULONG ArbitraryExceptions) PURE;
2443 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2444 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2445 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index, PCSTR Command) PURE;
2446 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
2447 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
2448 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG ArgumentSize) PURE;
2449 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index, PCSTR Argument) PURE;
2450 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count, PULONG Codes, ULONG Start, PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
2451 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count, PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
2452 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2453 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index, PCSTR Command) PURE;
2454 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags, ULONG Timeout) PURE;
2455 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed, PSTR Description, ULONG DescriptionSize, PULONG DescriptionUsed) PURE;
2456 STDMETHOD(GetCurrentTimeDate)(THIS_ PULONG TimeDate) PURE;
2457 STDMETHOD(GetCurrentSystemUpTime)(THIS_ PULONG UpTime) PURE;
2458 STDMETHOD(GetDumpFormatFlags)(THIS_ PULONG FormatFlags) PURE;
2459 STDMETHOD(GetNumberTextReplacements)(THIS_ PULONG NumRepl) PURE;
2460 STDMETHOD(GetTextReplacement)(THIS_ PCSTR SrcText, ULONG Index, PSTR SrcBuffer, ULONG SrcBufferSize, PULONG SrcSize, PSTR DstBuffer, ULONG DstBufferSize, PULONG DstSize) PURE;
2461 STDMETHOD(SetTextReplacement)(THIS_ PCSTR SrcText, PCSTR DstText) PURE;
2462 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
2463 STDMETHOD(OutputTextReplacements)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
2464 STDMETHOD(GetAssemblyOptions)(THIS_ PULONG Options) PURE;
2465 STDMETHOD(AddAssemblyOptions)(THIS_ ULONG Options) PURE;
2466 STDMETHOD(RemoveAssemblyOptions)(THIS_ ULONG Options) PURE;
2467 STDMETHOD(SetAssemblyOptions)(THIS_ ULONG Options) PURE;
2468 STDMETHOD(GetExpressionSyntax)(THIS_ PULONG Flags) PURE;
2469 STDMETHOD(SetExpressionSyntax)(THIS_ ULONG Flags) PURE;
2470 STDMETHOD(SetExpressionSyntaxByName)(THIS_ PCSTR AbbrevName) PURE;
2471 STDMETHOD(GetNumberExpressionSyntaxes)(THIS_ PULONG Number) PURE;
2472 STDMETHOD(GetExpressionSyntaxNames)(THIS_ ULONG Index, PSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2473 STDMETHOD(GetNumberEvents)(THIS_ PULONG Events) PURE;
2474 STDMETHOD(GetEventIndexDescription)(THIS_ ULONG Index, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG DescSize) PURE;
2475 STDMETHOD(GetCurrentEventIndex)(THIS_ PULONG Index) PURE;
2476 STDMETHOD(SetNextEventIndex)(THIS_ ULONG Relation, ULONG Value, PULONG NextIndex) PURE;
2477 STDMETHOD(GetLogFileWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG FileSize, PBOOL Append) PURE;
2478 STDMETHOD(OpenLogFileWide)(THIS_ PCWSTR File, WINBOOL Append) PURE;
2479 STDMETHOD(InputWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG InputSize) PURE;
2480 STDMETHOD(ReturnInputWide)(THIS_ PCWSTR Buffer) PURE;
2481 STDMETHODV(OutputWide)(THIS_ ULONG Mask, PCWSTR Format, ...) PURE;
2482 STDMETHOD(OutputVaListWide)(THIS_ ULONG Mask, PCWSTR Format, va_list Args) PURE;
2483 STDMETHODV(ControlledOutputWide)(THIS_ ULONG OutputControl, ULONG Mask, PCWSTR Format, ...) PURE;
2484 STDMETHOD(ControlledOutputVaListWide)(THIS_ ULONG OutputControl, ULONG Mask, PCWSTR Format, va_list Args) PURE;
2485 STDMETHODV(OutputPromptWide)(THIS_ ULONG OutputControl, PCWSTR Format, ...) PURE;
2486 STDMETHOD(OutputPromptVaListWide)(THIS_ ULONG OutputControl, PCWSTR Format, va_list Args) PURE;
2487 STDMETHOD(GetPromptTextWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2488 STDMETHOD(AssembleWide)(THIS_ ULONG64 Offset, PCWSTR Instr, PULONG64 EndOffset) PURE;
2489 STDMETHOD(DisassembleWide)(THIS_ ULONG64 Offset, ULONG Flags, PWSTR Buffer, ULONG BufferSize, PULONG DisassemblySize, PULONG64 EndOffset) PURE;
2490 STDMETHOD(GetProcessorTypeNamesWide)(THIS_ ULONG Type, PWSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PWSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2491 STDMETHOD(GetTextMacroWide)(THIS_ ULONG Slot, PWSTR Buffer, ULONG BufferSize, PULONG MacroSize) PURE;
2492 STDMETHOD(SetTextMacroWide)(THIS_ ULONG Slot, PCWSTR Macro) PURE;
2493 STDMETHOD(EvaluateWide)(THIS_ PCWSTR Expression, ULONG DesiredType, PDEBUG_VALUE Value, PULONG RemainderIndex) PURE;
2494 STDMETHOD(ExecuteWide)(THIS_ ULONG OutputControl, PCWSTR Command, ULONG Flags) PURE;
2495 STDMETHOD(ExecuteCommandFileWide)(THIS_ ULONG OutputControl, PCWSTR CommandFile, ULONG Flags) PURE;
2496 STDMETHOD(GetBreakpointByIndex2)(THIS_ ULONG Index, PDEBUG_BREAKPOINT2 *Bp) PURE;
2497 STDMETHOD(GetBreakpointById2)(THIS_ ULONG Id, PDEBUG_BREAKPOINT2 *Bp) PURE;
2498 STDMETHOD(AddBreakpoint2)(THIS_ ULONG Type, ULONG DesiredId, PDEBUG_BREAKPOINT2 *Bp) PURE;
2499 STDMETHOD(RemoveBreakpoint2)(THIS_ PDEBUG_BREAKPOINT2 Bp) PURE;
2500 STDMETHOD(AddExtensionWide)(THIS_ PCWSTR Path, ULONG Flags, PULONG64 Handle) PURE;
2501 STDMETHOD(GetExtensionByPathWide)(THIS_ PCWSTR Path, PULONG64 Handle) PURE;
2502 STDMETHOD(CallExtensionWide)(THIS_ ULONG64 Handle, PCWSTR Function, PCWSTR Arguments) PURE;
2503 STDMETHOD(GetExtensionFunctionWide)(THIS_ ULONG64 Handle, PCWSTR FuncName, FARPROC *Function) PURE;
2504 STDMETHOD(GetEventFilterTextWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2505 STDMETHOD(GetEventFilterCommandWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2506 STDMETHOD(SetEventFilterCommandWide)(THIS_ ULONG Index, PCWSTR Command) PURE;
2507 STDMETHOD(GetSpecificFilterArgumentWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG ArgumentSize) PURE;
2508 STDMETHOD(SetSpecificFilterArgumentWide)(THIS_ ULONG Index, PCWSTR Argument) PURE;
2509 STDMETHOD(GetExceptionFilterSecondCommandWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2510 STDMETHOD(SetExceptionFilterSecondCommandWide)(THIS_ ULONG Index, PCWSTR Command) PURE;
2511 STDMETHOD(GetLastEventInformationWide)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed, PWSTR Description, ULONG DescriptionSize, PULONG DescriptionUsed) PURE;
2512 STDMETHOD(GetTextReplacementWide)(THIS_ PCWSTR SrcText, ULONG Index, PWSTR SrcBuffer, ULONG SrcBufferSize, PULONG SrcSize, PWSTR DstBuffer, ULONG DstBufferSize, PULONG DstSize) PURE;
2513 STDMETHOD(SetTextReplacementWide)(THIS_ PCWSTR SrcText, PCWSTR DstText) PURE;
2514 STDMETHOD(SetExpressionSyntaxByNameWide)(THIS_ PCWSTR AbbrevName) PURE;
2515 STDMETHOD(GetExpressionSyntaxNamesWide)(THIS_ ULONG Index, PWSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PWSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2516 STDMETHOD(GetEventIndexDescriptionWide)(THIS_ ULONG Index, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG DescSize) PURE;
2517 STDMETHOD(GetLogFile2)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG FileSize, PULONG Flags) PURE;
2518 STDMETHOD(OpenLogFile2)(THIS_ PCSTR File, ULONG Flags) PURE;
2519 STDMETHOD(GetLogFile2Wide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG FileSize, PULONG Flags) PURE;
2520 STDMETHOD(OpenLogFile2Wide)(THIS_ PCWSTR File, ULONG Flags) PURE;
2521 STDMETHOD(GetSystemVersionValues)(THIS_ PULONG PlatformId, PULONG Win32Major, PULONG Win32Minor, PULONG KdMajor, PULONG KdMinor) PURE;
2522 STDMETHOD(GetSystemVersionString)(THIS_ ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
2523 STDMETHOD(GetSystemVersionStringWide)(THIS_ ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
2524 STDMETHOD(GetContextStackTrace)(THIS_ PVOID StartContext, ULONG StartContextSize, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, PULONG FramesFilled) PURE;
2525 STDMETHOD(OutputContextStackTrace)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, ULONG Flags) PURE;
2526 STDMETHOD(GetStoredEventInformation)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID Context, ULONG ContextSize, PULONG ContextUsed, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed) PURE;
2527 STDMETHOD(GetManagedStatus)(THIS_ PULONG Flags, ULONG WhichString, PSTR String, ULONG StringSize, PULONG StringNeeded) PURE;
2528 STDMETHOD(GetManagedStatusWide)(THIS_ PULONG Flags, ULONG WhichString, PWSTR String, ULONG StringSize, PULONG StringNeeded) PURE;
2529 STDMETHOD(ResetManagedStatus)(THIS_ ULONG Flags) PURE;
2530 STDMETHOD(GetStackTraceEx)(THIS_ ULONG64 FrameOffset, ULONG64 StackOffset, ULONG64 InstructionOffset, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PULONG FramesFilled) PURE;
2531 STDMETHOD(OutputStackTraceEx)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, ULONG Flags) PURE;
2532 STDMETHOD(GetContextStackTraceEx)(THIS_ PVOID StartContext, ULONG StartContextSize, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, PULONG FramesFilled) PURE;
2533 STDMETHOD(OutputContextStackTraceEx)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, ULONG Flags) PURE;
2534 STDMETHOD(GetBreakpointByGuid)(THIS_ LPGUID Guid, PDEBUG_BREAKPOINT3 *Bp) PURE;
2535 STDMETHOD(GetExecutionStatusEx)(THIS_ PULONG Status) PURE;
2536 STDMETHOD(GetSynchronizationStatus)(THIS_ PULONG SendsAttempted, PULONG SecondsSinceLastResponse) PURE;
2537 };
2538#ifdef __CRT_UUID_DECL
2539__CRT_UUID_DECL(IDebugControl6,0xbc0d583f,0x126d,0x43a1,0x9c,0xc4,0xa8,0x60,0xab,0x1d,0x53,0x7b)
2540#endif
2541
2542#define DEBUG_EXEC_FLAGS_NONBLOCK 0x00000001
2543
2544#undef INTERFACE
2545#define INTERFACE IDebugControl7
2546 DECLARE_INTERFACE_(IDebugControl7, IUnknown) {
2547 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
2548 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
2549 STDMETHOD_(ULONG, Release)(THIS) PURE;
2550 STDMETHOD(GetInterrupt)(THIS) PURE;
2551 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE;
2552 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE;
2553 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE;
2554 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG FileSize, PBOOL Append) PURE;
2555 STDMETHOD(OpenLogFile)(THIS_ PCSTR File, WINBOOL Append) PURE;
2556 STDMETHOD(CloseLogFile)(THIS) PURE;
2557 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE;
2558 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE;
2559 STDMETHOD(Input)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG InputSize) PURE;
2560 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE;
2561 STDMETHODV(Output)(THIS_ ULONG Mask, PCSTR Format, ...) PURE;
2562 STDMETHOD(OutputVaList)(THIS_ ULONG Mask, PCSTR Format, va_list Args) PURE;
2563 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl, ULONG Mask, PCSTR Format, ...) PURE;
2564 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl, ULONG Mask, PCSTR Format, va_list Args) PURE;
2565 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl, PCSTR Format, ...) PURE;
2566 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl, PCSTR Format, va_list Args) PURE;
2567 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2568 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
2569 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE;
2570 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE;
2571 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE;
2572 STDMETHOD(Assemble)(THIS_ ULONG64 Offset, PCSTR Instr, PULONG64 EndOffset) PURE;
2573 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset, ULONG Flags, PSTR Buffer, ULONG BufferSize, PULONG DisassemblySize, PULONG64 EndOffset) PURE;
2574 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE;
2575 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG Flags, PULONG64 EndOffset) PURE;
2576 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl, ULONG PreviousLines, ULONG TotalLines, ULONG64 Offset, ULONG Flags, PULONG OffsetLine, PULONG64 StartOffset, PULONG64 EndOffset, PULONG64 LineOffsets) PURE;
2577 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset, LONG Delta, PULONG64 NearOffset) PURE;
2578 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset, ULONG64 StackOffset, ULONG64 InstructionOffset, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PULONG FramesFilled) PURE;
2579 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE;
2580 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, ULONG Flags) PURE;
2581 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class, PULONG Qualifier) PURE;
2582 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE;
2583 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE;
2584 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE;
2585 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start, ULONG Count, PULONG Types) PURE;
2586 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE;
2587 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId, PULONG Major, PULONG Minor, PSTR ServicePackString, ULONG ServicePackStringSize, PULONG ServicePackStringUsed, PULONG ServicePackNumber, PSTR BuildString, ULONG BuildStringSize, PULONG BuildStringUsed) PURE;
2588 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE;
2589 STDMETHOD(IsPointer64Bit)(THIS) PURE;
2590 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code, PULONG64 Arg1, PULONG64 Arg2, PULONG64 Arg3, PULONG64 Arg4) PURE;
2591 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE;
2592 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start, ULONG Count, PULONG Types) PURE;
2593 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type, PSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2594 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE;
2595 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE;
2596 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE;
2597 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE;
2598 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE;
2599 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE;
2600 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE;
2601 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE;
2602 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE;
2603 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE;
2604 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel, PULONG BreakLevel) PURE;
2605 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel, ULONG BreakLevel) PURE;
2606 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot, PSTR Buffer, ULONG BufferSize, PULONG MacroSize) PURE;
2607 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot, PCSTR Macro) PURE;
2608 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE;
2609 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE;
2610 STDMETHOD(Evaluate)(THIS_ PCSTR Expression, ULONG DesiredType, PDEBUG_VALUE Value, PULONG RemainderIndex) PURE;
2611 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In, ULONG OutType, PDEBUG_VALUE Out) PURE;
2612 STDMETHOD(CoerceValues)(THIS_ ULONG Count, PDEBUG_VALUE In, PULONG OutTypes, PDEBUG_VALUE Out) PURE;
2613 STDMETHOD(Execute)(THIS_ ULONG OutputControl, PCSTR Command, ULONG Flags) PURE;
2614 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl, PCSTR CommandFile, ULONG Flags) PURE;
2615 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE;
2616 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index, PDEBUG_BREAKPOINT *Bp) PURE;
2617 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id, PDEBUG_BREAKPOINT *Bp) PURE;
2618 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count, PULONG Ids, ULONG Start, PDEBUG_BREAKPOINT_PARAMETERS Params) PURE;
2619 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type, ULONG DesiredId, PDEBUG_BREAKPOINT *Bp) PURE;
2620 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE;
2621 STDMETHOD(AddExtension)(THIS_ PCSTR Path, ULONG Flags, PULONG64 Handle) PURE;
2622 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE;
2623 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path, PULONG64 Handle) PURE;
2624 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle, PCSTR Function, PCSTR Arguments) PURE;
2625 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle, PCSTR FuncName, FARPROC *Function) PURE;
2626 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE;
2627 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE;
2628 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents, PULONG SpecificExceptions, PULONG ArbitraryExceptions) PURE;
2629 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2630 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2631 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index, PCSTR Command) PURE;
2632 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
2633 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE;
2634 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG ArgumentSize) PURE;
2635 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index, PCSTR Argument) PURE;
2636 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count, PULONG Codes, ULONG Start, PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
2637 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count, PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE;
2638 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2639 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index, PCSTR Command) PURE;
2640 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags, ULONG Timeout) PURE;
2641 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed, PSTR Description, ULONG DescriptionSize, PULONG DescriptionUsed) PURE;
2642 STDMETHOD(GetCurrentTimeDate)(THIS_ PULONG TimeDate) PURE;
2643 STDMETHOD(GetCurrentSystemUpTime)(THIS_ PULONG UpTime) PURE;
2644 STDMETHOD(GetDumpFormatFlags)(THIS_ PULONG FormatFlags) PURE;
2645 STDMETHOD(GetNumberTextReplacements)(THIS_ PULONG NumRepl) PURE;
2646 STDMETHOD(GetTextReplacement)(THIS_ PCSTR SrcText, ULONG Index, PSTR SrcBuffer, ULONG SrcBufferSize, PULONG SrcSize, PSTR DstBuffer, ULONG DstBufferSize, PULONG DstSize) PURE;
2647 STDMETHOD(SetTextReplacement)(THIS_ PCSTR SrcText, PCSTR DstText) PURE;
2648 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
2649 STDMETHOD(OutputTextReplacements)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
2650 STDMETHOD(GetAssemblyOptions)(THIS_ PULONG Options) PURE;
2651 STDMETHOD(AddAssemblyOptions)(THIS_ ULONG Options) PURE;
2652 STDMETHOD(RemoveAssemblyOptions)(THIS_ ULONG Options) PURE;
2653 STDMETHOD(SetAssemblyOptions)(THIS_ ULONG Options) PURE;
2654 STDMETHOD(GetExpressionSyntax)(THIS_ PULONG Flags) PURE;
2655 STDMETHOD(SetExpressionSyntax)(THIS_ ULONG Flags) PURE;
2656 STDMETHOD(SetExpressionSyntaxByName)(THIS_ PCSTR AbbrevName) PURE;
2657 STDMETHOD(GetNumberExpressionSyntaxes)(THIS_ PULONG Number) PURE;
2658 STDMETHOD(GetExpressionSyntaxNames)(THIS_ ULONG Index, PSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2659 STDMETHOD(GetNumberEvents)(THIS_ PULONG Events) PURE;
2660 STDMETHOD(GetEventIndexDescription)(THIS_ ULONG Index, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG DescSize) PURE;
2661 STDMETHOD(GetCurrentEventIndex)(THIS_ PULONG Index) PURE;
2662 STDMETHOD(SetNextEventIndex)(THIS_ ULONG Relation, ULONG Value, PULONG NextIndex) PURE;
2663 STDMETHOD(GetLogFileWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG FileSize, PBOOL Append) PURE;
2664 STDMETHOD(OpenLogFileWide)(THIS_ PCWSTR File, WINBOOL Append) PURE;
2665 STDMETHOD(InputWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG InputSize) PURE;
2666 STDMETHOD(ReturnInputWide)(THIS_ PCWSTR Buffer) PURE;
2667 STDMETHODV(OutputWide)(THIS_ ULONG Mask, PCWSTR Format, ...) PURE;
2668 STDMETHOD(OutputVaListWide)(THIS_ ULONG Mask, PCWSTR Format, va_list Args) PURE;
2669 STDMETHODV(ControlledOutputWide)(THIS_ ULONG OutputControl, ULONG Mask, PCWSTR Format, ...) PURE;
2670 STDMETHOD(ControlledOutputVaListWide)(THIS_ ULONG OutputControl, ULONG Mask, PCWSTR Format, va_list Args) PURE;
2671 STDMETHODV(OutputPromptWide)(THIS_ ULONG OutputControl, PCWSTR Format, ...) PURE;
2672 STDMETHOD(OutputPromptVaListWide)(THIS_ ULONG OutputControl, PCWSTR Format, va_list Args) PURE;
2673 STDMETHOD(GetPromptTextWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2674 STDMETHOD(AssembleWide)(THIS_ ULONG64 Offset, PCWSTR Instr, PULONG64 EndOffset) PURE;
2675 STDMETHOD(DisassembleWide)(THIS_ ULONG64 Offset, ULONG Flags, PWSTR Buffer, ULONG BufferSize, PULONG DisassemblySize, PULONG64 EndOffset) PURE;
2676 STDMETHOD(GetProcessorTypeNamesWide)(THIS_ ULONG Type, PWSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PWSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2677 STDMETHOD(GetTextMacroWide)(THIS_ ULONG Slot, PWSTR Buffer, ULONG BufferSize, PULONG MacroSize) PURE;
2678 STDMETHOD(SetTextMacroWide)(THIS_ ULONG Slot, PCWSTR Macro) PURE;
2679 STDMETHOD(EvaluateWide)(THIS_ PCWSTR Expression, ULONG DesiredType, PDEBUG_VALUE Value, PULONG RemainderIndex) PURE;
2680 STDMETHOD(ExecuteWide)(THIS_ ULONG OutputControl, PCWSTR Command, ULONG Flags) PURE;
2681 STDMETHOD(ExecuteCommandFileWide)(THIS_ ULONG OutputControl, PCWSTR CommandFile, ULONG Flags) PURE;
2682 STDMETHOD(GetBreakpointByIndex2)(THIS_ ULONG Index, PDEBUG_BREAKPOINT2 *Bp) PURE;
2683 STDMETHOD(GetBreakpointById2)(THIS_ ULONG Id, PDEBUG_BREAKPOINT2 *Bp) PURE;
2684 STDMETHOD(AddBreakpoint2)(THIS_ ULONG Type, ULONG DesiredId, PDEBUG_BREAKPOINT2 *Bp) PURE;
2685 STDMETHOD(RemoveBreakpoint2)(THIS_ PDEBUG_BREAKPOINT2 Bp) PURE;
2686 STDMETHOD(AddExtensionWide)(THIS_ PCWSTR Path, ULONG Flags, PULONG64 Handle) PURE;
2687 STDMETHOD(GetExtensionByPathWide)(THIS_ PCWSTR Path, PULONG64 Handle) PURE;
2688 STDMETHOD(CallExtensionWide)(THIS_ ULONG64 Handle, PCWSTR Function, PCWSTR Arguments) PURE;
2689 STDMETHOD(GetExtensionFunctionWide)(THIS_ ULONG64 Handle, PCWSTR FuncName, FARPROC *Function) PURE;
2690 STDMETHOD(GetEventFilterTextWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG TextSize) PURE;
2691 STDMETHOD(GetEventFilterCommandWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2692 STDMETHOD(SetEventFilterCommandWide)(THIS_ ULONG Index, PCWSTR Command) PURE;
2693 STDMETHOD(GetSpecificFilterArgumentWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG ArgumentSize) PURE;
2694 STDMETHOD(SetSpecificFilterArgumentWide)(THIS_ ULONG Index, PCWSTR Argument) PURE;
2695 STDMETHOD(GetExceptionFilterSecondCommandWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE;
2696 STDMETHOD(SetExceptionFilterSecondCommandWide)(THIS_ ULONG Index, PCWSTR Command) PURE;
2697 STDMETHOD(GetLastEventInformationWide)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed, PWSTR Description, ULONG DescriptionSize, PULONG DescriptionUsed) PURE;
2698 STDMETHOD(GetTextReplacementWide)(THIS_ PCWSTR SrcText, ULONG Index, PWSTR SrcBuffer, ULONG SrcBufferSize, PULONG SrcSize, PWSTR DstBuffer, ULONG DstBufferSize, PULONG DstSize) PURE;
2699 STDMETHOD(SetTextReplacementWide)(THIS_ PCWSTR SrcText, PCWSTR DstText) PURE;
2700 STDMETHOD(SetExpressionSyntaxByNameWide)(THIS_ PCWSTR AbbrevName) PURE;
2701 STDMETHOD(GetExpressionSyntaxNamesWide)(THIS_ ULONG Index, PWSTR FullNameBuffer, ULONG FullNameBufferSize, PULONG FullNameSize, PWSTR AbbrevNameBuffer, ULONG AbbrevNameBufferSize, PULONG AbbrevNameSize) PURE;
2702 STDMETHOD(GetEventIndexDescriptionWide)(THIS_ ULONG Index, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG DescSize) PURE;
2703 STDMETHOD(GetLogFile2)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG FileSize, PULONG Flags) PURE;
2704 STDMETHOD(OpenLogFile2)(THIS_ PCSTR File, ULONG Flags) PURE;
2705 STDMETHOD(GetLogFile2Wide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG FileSize, PULONG Flags) PURE;
2706 STDMETHOD(OpenLogFile2Wide)(THIS_ PCWSTR File, ULONG Flags) PURE;
2707 STDMETHOD(GetSystemVersionValues)(THIS_ PULONG PlatformId, PULONG Win32Major, PULONG Win32Minor, PULONG KdMajor, PULONG KdMinor) PURE;
2708 STDMETHOD(GetSystemVersionString)(THIS_ ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
2709 STDMETHOD(GetSystemVersionStringWide)(THIS_ ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
2710 STDMETHOD(GetContextStackTrace)(THIS_ PVOID StartContext, ULONG StartContextSize, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, PULONG FramesFilled) PURE;
2711 STDMETHOD(OutputContextStackTrace)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, ULONG Flags) PURE;
2712 STDMETHOD(GetStoredEventInformation)(THIS_ PULONG Type, PULONG ProcessId, PULONG ThreadId, PVOID Context, ULONG ContextSize, PULONG ContextUsed, PVOID ExtraInformation, ULONG ExtraInformationSize, PULONG ExtraInformationUsed) PURE;
2713 STDMETHOD(GetManagedStatus)(THIS_ PULONG Flags, ULONG WhichString, PSTR String, ULONG StringSize, PULONG StringNeeded) PURE;
2714 STDMETHOD(GetManagedStatusWide)(THIS_ PULONG Flags, ULONG WhichString, PWSTR String, ULONG StringSize, PULONG StringNeeded) PURE;
2715 STDMETHOD(ResetManagedStatus)(THIS_ ULONG Flags) PURE;
2716 STDMETHOD(GetStackTraceEx)(THIS_ ULONG64 FrameOffset, ULONG64 StackOffset, ULONG64 InstructionOffset, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PULONG FramesFilled) PURE;
2717 STDMETHOD(OutputStackTraceEx)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, ULONG Flags) PURE;
2718 STDMETHOD(GetContextStackTraceEx)(THIS_ PVOID StartContext, ULONG StartContextSize, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, PULONG FramesFilled) PURE;
2719 STDMETHOD(OutputContextStackTraceEx)(THIS_ ULONG OutputControl, PDEBUG_STACK_FRAME_EX Frames, ULONG FramesSize, PVOID FrameContexts, ULONG FrameContextsSize, ULONG FrameContextsEntrySize, ULONG Flags) PURE;
2720 STDMETHOD(GetBreakpointByGuid)(THIS_ LPGUID Guid, PDEBUG_BREAKPOINT3 *Bp) PURE;
2721 STDMETHOD(GetExecutionStatusEx)(THIS_ PULONG Status) PURE;
2722 STDMETHOD(GetSynchronizationStatus)(THIS_ PULONG SendsAttempted, PULONG SecondsSinceLastResponse) PURE;
2723 STDMETHOD(GetDebuggeeType2)(THIS_ ULONG Flags, PULONG Class, PULONG Qualifier) PURE;
2724 };
2725#ifdef __CRT_UUID_DECL
2726__CRT_UUID_DECL(IDebugControl7,0xb86fb3b1,0x80d4,0x475b,0xae,0xa3,0xcf,0x06,0x53,0x9c,0xf6,0x3a)
2727#endif
2728
2729#define DEBUG_DATA_SPACE_VIRTUAL 0
2730#define DEBUG_DATA_SPACE_PHYSICAL 1
2731#define DEBUG_DATA_SPACE_CONTROL 2
2732#define DEBUG_DATA_SPACE_IO 3
2733#define DEBUG_DATA_SPACE_MSR 4
2734#define DEBUG_DATA_SPACE_BUS_DATA 5
2735#define DEBUG_DATA_SPACE_DEBUGGER_DATA 6
2736#define DEBUG_DATA_SPACE_COUNT 7
2737
2738#define DEBUG_DATA_KernBase 24
2739#define DEBUG_DATA_BreakpointWithStatusAddr 32
2740#define DEBUG_DATA_SavedContextAddr 40
2741#define DEBUG_DATA_KiCallUserModeAddr 56
2742#define DEBUG_DATA_KeUserCallbackDispatcherAddr 64
2743#define DEBUG_DATA_PsLoadedModuleListAddr 72
2744#define DEBUG_DATA_PsActiveProcessHeadAddr 80
2745#define DEBUG_DATA_PspCidTableAddr 88
2746#define DEBUG_DATA_ExpSystemResourcesListAddr 96
2747#define DEBUG_DATA_ExpPagedPoolDescriptorAddr 104
2748#define DEBUG_DATA_ExpNumberOfPagedPoolsAddr 112
2749#define DEBUG_DATA_KeTimeIncrementAddr 120
2750#define DEBUG_DATA_KeBugCheckCallbackListHeadAddr 128
2751#define DEBUG_DATA_KiBugcheckDataAddr 136
2752#define DEBUG_DATA_IopErrorLogListHeadAddr 144
2753#define DEBUG_DATA_ObpRootDirectoryObjectAddr 152
2754#define DEBUG_DATA_ObpTypeObjectTypeAddr 160
2755#define DEBUG_DATA_MmSystemCacheStartAddr 168
2756#define DEBUG_DATA_MmSystemCacheEndAddr 176
2757#define DEBUG_DATA_MmSystemCacheWsAddr 184
2758#define DEBUG_DATA_MmPfnDatabaseAddr 192
2759#define DEBUG_DATA_MmSystemPtesStartAddr 200
2760#define DEBUG_DATA_MmSystemPtesEndAddr 208
2761#define DEBUG_DATA_MmSubsectionBaseAddr 216
2762#define DEBUG_DATA_MmNumberOfPagingFilesAddr 224
2763#define DEBUG_DATA_MmLowestPhysicalPageAddr 232
2764#define DEBUG_DATA_MmHighestPhysicalPageAddr 240
2765#define DEBUG_DATA_MmNumberOfPhysicalPagesAddr 248
2766#define DEBUG_DATA_MmMaximumNonPagedPoolInBytesAddr 256
2767#define DEBUG_DATA_MmNonPagedSystemStartAddr 264
2768#define DEBUG_DATA_MmNonPagedPoolStartAddr 272
2769#define DEBUG_DATA_MmNonPagedPoolEndAddr 280
2770#define DEBUG_DATA_MmPagedPoolStartAddr 288
2771#define DEBUG_DATA_MmPagedPoolEndAddr 296
2772#define DEBUG_DATA_MmPagedPoolInformationAddr 304
2773#define DEBUG_DATA_MmPageSize 312
2774#define DEBUG_DATA_MmSizeOfPagedPoolInBytesAddr 320
2775#define DEBUG_DATA_MmTotalCommitLimitAddr 328
2776#define DEBUG_DATA_MmTotalCommittedPagesAddr 336
2777#define DEBUG_DATA_MmSharedCommitAddr 344
2778#define DEBUG_DATA_MmDriverCommitAddr 352
2779#define DEBUG_DATA_MmProcessCommitAddr 360
2780#define DEBUG_DATA_MmPagedPoolCommitAddr 368
2781#define DEBUG_DATA_MmExtendedCommitAddr 376
2782#define DEBUG_DATA_MmZeroedPageListHeadAddr 384
2783#define DEBUG_DATA_MmFreePageListHeadAddr 392
2784#define DEBUG_DATA_MmStandbyPageListHeadAddr 400
2785#define DEBUG_DATA_MmModifiedPageListHeadAddr 408
2786#define DEBUG_DATA_MmModifiedNoWritePageListHeadAddr 416
2787#define DEBUG_DATA_MmAvailablePagesAddr 424
2788#define DEBUG_DATA_MmResidentAvailablePagesAddr 432
2789#define DEBUG_DATA_PoolTrackTableAddr 440
2790#define DEBUG_DATA_NonPagedPoolDescriptorAddr 448
2791#define DEBUG_DATA_MmHighestUserAddressAddr 456
2792#define DEBUG_DATA_MmSystemRangeStartAddr 464
2793#define DEBUG_DATA_MmUserProbeAddressAddr 472
2794#define DEBUG_DATA_KdPrintCircularBufferAddr 480
2795#define DEBUG_DATA_KdPrintCircularBufferEndAddr 488
2796#define DEBUG_DATA_KdPrintWritePointerAddr 496
2797#define DEBUG_DATA_KdPrintRolloverCountAddr 504
2798#define DEBUG_DATA_MmLoadedUserImageListAddr 512
2799#define DEBUG_DATA_NtBuildLabAddr 520
2800#define DEBUG_DATA_KiNormalSystemCall 528
2801#define DEBUG_DATA_KiProcessorBlockAddr 536
2802#define DEBUG_DATA_MmUnloadedDriversAddr 544
2803#define DEBUG_DATA_MmLastUnloadedDriverAddr 552
2804#define DEBUG_DATA_MmTriageActionTakenAddr 560
2805#define DEBUG_DATA_MmSpecialPoolTagAddr 568
2806#define DEBUG_DATA_KernelVerifierAddr 576
2807#define DEBUG_DATA_MmVerifierDataAddr 584
2808#define DEBUG_DATA_MmAllocatedNonPagedPoolAddr 592
2809#define DEBUG_DATA_MmPeakCommitmentAddr 600
2810#define DEBUG_DATA_MmTotalCommitLimitMaximumAddr 608
2811#define DEBUG_DATA_CmNtCSDVersionAddr 616
2812#define DEBUG_DATA_MmPhysicalMemoryBlockAddr 624
2813#define DEBUG_DATA_MmSessionBase 632
2814#define DEBUG_DATA_MmSessionSize 640
2815#define DEBUG_DATA_MmSystemParentTablePage 648
2816#define DEBUG_DATA_MmVirtualTranslationBase 656
2817#define DEBUG_DATA_OffsetKThreadNextProcessor 664
2818#define DEBUG_DATA_OffsetKThreadTeb 666
2819#define DEBUG_DATA_OffsetKThreadKernelStack 668
2820#define DEBUG_DATA_OffsetKThreadInitialStack 670
2821#define DEBUG_DATA_OffsetKThreadApcProcess 672
2822#define DEBUG_DATA_OffsetKThreadState 674
2823#define DEBUG_DATA_OffsetKThreadBStore 676
2824#define DEBUG_DATA_OffsetKThreadBStoreLimit 678
2825#define DEBUG_DATA_SizeEProcess 680
2826#define DEBUG_DATA_OffsetEprocessPeb 682
2827#define DEBUG_DATA_OffsetEprocessParentCID 684
2828#define DEBUG_DATA_OffsetEprocessDirectoryTableBase 686
2829#define DEBUG_DATA_SizePrcb 688
2830#define DEBUG_DATA_OffsetPrcbDpcRoutine 690
2831#define DEBUG_DATA_OffsetPrcbCurrentThread 692
2832#define DEBUG_DATA_OffsetPrcbMhz 694
2833#define DEBUG_DATA_OffsetPrcbCpuType 696
2834#define DEBUG_DATA_OffsetPrcbVendorString 698
2835#define DEBUG_DATA_OffsetPrcbProcessorState 700
2836#define DEBUG_DATA_OffsetPrcbNumber 702
2837#define DEBUG_DATA_SizeEThread 704
2838#define DEBUG_DATA_KdPrintCircularBufferPtrAddr 712
2839#define DEBUG_DATA_KdPrintBufferSizeAddr 720
2840
2841#define DEBUG_DATA_PaeEnabled 100000
2842#define DEBUG_DATA_SharedUserData 100008
2843#define DEBUG_DATA_ProductType 100016
2844#define DEBUG_DATA_SuiteMask 100024
2845
2846 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_ALPHA {
2847 ULONG Type;
2848 ULONG Revision;
2849 } DEBUG_PROCESSOR_IDENTIFICATION_ALPHA,*PDEBUG_PROCESSOR_IDENTIFICATION_ALPHA;
2850
2851 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_AMD64 {
2852 ULONG Family;
2853 ULONG Model;
2854 ULONG Stepping;
2855 CHAR VendorString[16];
2856 } DEBUG_PROCESSOR_IDENTIFICATION_AMD64,*PDEBUG_PROCESSOR_IDENTIFICATION_AMD64;
2857
2858 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_IA64 {
2859 ULONG Model;
2860 ULONG Revision;
2861 ULONG Family;
2862 ULONG ArchRev;
2863 CHAR VendorString[16];
2864 } DEBUG_PROCESSOR_IDENTIFICATION_IA64,*PDEBUG_PROCESSOR_IDENTIFICATION_IA64;
2865
2866 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_X86 {
2867 ULONG Family;
2868 ULONG Model;
2869 ULONG Stepping;
2870 CHAR VendorString[16];
2871 } DEBUG_PROCESSOR_IDENTIFICATION_X86,*PDEBUG_PROCESSOR_IDENTIFICATION_X86;
2872
2873 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_ARM {
2874 ULONG Type;
2875 ULONG Revision;
2876 } DEBUG_PROCESSOR_IDENTIFICATION_ARM,*PDEBUG_PROCESSOR_IDENTIFICATION_ARM;
2877
2878 typedef union _DEBUG_PROCESSOR_IDENTIFICATION_ALL {
2879 DEBUG_PROCESSOR_IDENTIFICATION_ALPHA Alpha;
2880 DEBUG_PROCESSOR_IDENTIFICATION_AMD64 Amd64;
2881 DEBUG_PROCESSOR_IDENTIFICATION_IA64 Ia64;
2882 DEBUG_PROCESSOR_IDENTIFICATION_X86 X86;
2883 DEBUG_PROCESSOR_IDENTIFICATION_ARM Arm;
2884 } DEBUG_PROCESSOR_IDENTIFICATION_ALL,*PDEBUG_PROCESSOR_IDENTIFICATION_ALL;
2885
2886#define DEBUG_DATA_KPCR_OFFSET 0
2887#define DEBUG_DATA_KPRCB_OFFSET 1
2888#define DEBUG_DATA_KTHREAD_OFFSET 2
2889#define DEBUG_DATA_BASE_TRANSLATION_VIRTUAL_OFFSET 3
2890#define DEBUG_DATA_PROCESSOR_IDENTIFICATION 4
2891#define DEBUG_DATA_PROCESSOR_SPEED 5
2892
2893#undef INTERFACE
2894#define INTERFACE IDebugDataSpaces
2895 DECLARE_INTERFACE_(IDebugDataSpaces,IUnknown) {
2896 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
2897 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2898 STDMETHOD_(ULONG,Release)(THIS) PURE;
2899 STDMETHOD(ReadVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2900 STDMETHOD(WriteVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2901 STDMETHOD(SearchVirtual)(THIS_ ULONG64 Offset,ULONG64 Length,PVOID Pattern,ULONG PatternSize,ULONG PatternGranularity,PULONG64 MatchOffset) PURE;
2902 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2903 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2904 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE;
2905 STDMETHOD(WritePointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE;
2906 STDMETHOD(ReadPhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2907 STDMETHOD(WritePhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2908 STDMETHOD(ReadControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2909 STDMETHOD(WriteControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2910 STDMETHOD(ReadIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2911 STDMETHOD(WriteIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2912 STDMETHOD(ReadMsr)(THIS_ ULONG Msr,PULONG64 Value) PURE;
2913 STDMETHOD(WriteMsr)(THIS_ ULONG Msr,ULONG64 Value) PURE;
2914 STDMETHOD(ReadBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2915 STDMETHOD(WriteBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2916 STDMETHOD(CheckLowMemory)(THIS) PURE;
2917 STDMETHOD(ReadDebuggerData)(THIS_ ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE;
2918 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG Processor,ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE;
2919 };
2920#ifdef __CRT_UUID_DECL
2921__CRT_UUID_DECL(IDebugDataSpaces,0x88f7dfab,0x3ea7,0x4c3a,0xae,0xfb,0xc4,0xe8,0x10,0x61,0x73,0xaa)
2922#endif
2923
2924#define DEBUG_HANDLE_DATA_TYPE_BASIC 0
2925#define DEBUG_HANDLE_DATA_TYPE_TYPE_NAME 1
2926#define DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME 2
2927#define DEBUG_HANDLE_DATA_TYPE_HANDLE_COUNT 3
2928#define DEBUG_HANDLE_DATA_TYPE_TYPE_NAME_WIDE 4
2929#define DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME_WIDE 5
2930
2931 typedef struct _DEBUG_HANDLE_DATA_BASIC {
2932 ULONG TypeNameSize;
2933 ULONG ObjectNameSize;
2934 ULONG Attributes;
2935 ULONG GrantedAccess;
2936 ULONG HandleCount;
2937 ULONG PointerCount;
2938 } DEBUG_HANDLE_DATA_BASIC,*PDEBUG_HANDLE_DATA_BASIC;
2939
2940#undef INTERFACE
2941#define INTERFACE IDebugDataSpaces2
2942 DECLARE_INTERFACE_(IDebugDataSpaces2,IUnknown) {
2943 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
2944 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2945 STDMETHOD_(ULONG,Release)(THIS) PURE;
2946 STDMETHOD(ReadVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2947 STDMETHOD(WriteVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2948 STDMETHOD(SearchVirtual)(THIS_ ULONG64 Offset,ULONG64 Length,PVOID Pattern,ULONG PatternSize,ULONG PatternGranularity,PULONG64 MatchOffset) PURE;
2949 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2950 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2951 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE;
2952 STDMETHOD(WritePointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE;
2953 STDMETHOD(ReadPhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2954 STDMETHOD(WritePhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2955 STDMETHOD(ReadControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2956 STDMETHOD(WriteControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2957 STDMETHOD(ReadIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2958 STDMETHOD(WriteIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2959 STDMETHOD(ReadMsr)(THIS_ ULONG Msr,PULONG64 Value) PURE;
2960 STDMETHOD(WriteMsr)(THIS_ ULONG Msr,ULONG64 Value) PURE;
2961 STDMETHOD(ReadBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2962 STDMETHOD(WriteBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2963 STDMETHOD(CheckLowMemory)(THIS) PURE;
2964 STDMETHOD(ReadDebuggerData)(THIS_ ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE;
2965 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG Processor,ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE;
2966 STDMETHOD(VirtualToPhysical)(THIS_ ULONG64 Virtual,PULONG64 Physical) PURE;
2967 STDMETHOD(GetVirtualTranslationPhysicalOffsets)(THIS_ ULONG64 Virtual,PULONG64 Offsets,ULONG OffsetsSize,PULONG Levels) PURE;
2968 STDMETHOD(ReadHandleData)(THIS_ ULONG64 Handle,ULONG DataType,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE;
2969 STDMETHOD(FillVirtual)(THIS_ ULONG64 Start,ULONG Size,PVOID Pattern,ULONG PatternSize,PULONG Filled) PURE;
2970 STDMETHOD(FillPhysical)(THIS_ ULONG64 Start,ULONG Size,PVOID Pattern,ULONG PatternSize,PULONG Filled) PURE;
2971 STDMETHOD(QueryVirtual)(THIS_ ULONG64 Offset,PMEMORY_BASIC_INFORMATION64 Info) PURE;
2972 };
2973#ifdef __CRT_UUID_DECL
2974__CRT_UUID_DECL(IDebugDataSpaces2,0x7a5e852f,0x96e9,0x468f,0xac,0x1b,0x0b,0x3a,0xdd,0xc4,0xa0,0x49)
2975#endif
2976
2977#undef INTERFACE
2978#define INTERFACE IDebugDataSpaces3
2979 DECLARE_INTERFACE_(IDebugDataSpaces3,IUnknown) {
2980 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
2981 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
2982 STDMETHOD_(ULONG,Release)(THIS) PURE;
2983 STDMETHOD(ReadVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2984 STDMETHOD(WriteVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2985 STDMETHOD(SearchVirtual)(THIS_ ULONG64 Offset,ULONG64 Length,PVOID Pattern,ULONG PatternSize,ULONG PatternGranularity,PULONG64 MatchOffset) PURE;
2986 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2987 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2988 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE;
2989 STDMETHOD(WritePointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE;
2990 STDMETHOD(ReadPhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2991 STDMETHOD(WritePhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2992 STDMETHOD(ReadControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2993 STDMETHOD(WriteControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2994 STDMETHOD(ReadIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2995 STDMETHOD(WriteIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
2996 STDMETHOD(ReadMsr)(THIS_ ULONG Msr,PULONG64 Value) PURE;
2997 STDMETHOD(WriteMsr)(THIS_ ULONG Msr,ULONG64 Value) PURE;
2998 STDMETHOD(ReadBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
2999 STDMETHOD(WriteBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
3000 STDMETHOD(CheckLowMemory)(THIS) PURE;
3001 STDMETHOD(ReadDebuggerData)(THIS_
3002 ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE;
3003 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG Processor,ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE;
3004 STDMETHOD(VirtualToPhysical)(THIS_ ULONG64 Virtual,PULONG64 Physical) PURE;
3005 STDMETHOD(GetVirtualTranslationPhysicalOffsets)(THIS_ ULONG64 Virtual,PULONG64 Offsets,ULONG OffsetsSize,PULONG Levels) PURE;
3006 STDMETHOD(ReadHandleData)(THIS_ ULONG64 Handle,ULONG DataType,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE;
3007 STDMETHOD(FillVirtual)(THIS_ ULONG64 Start,ULONG Size,PVOID Pattern,ULONG PatternSize,PULONG Filled) PURE;
3008 STDMETHOD(FillPhysical)(THIS_ ULONG64 Start,ULONG Size,PVOID Pattern,ULONG PatternSize,PULONG Filled) PURE;
3009 STDMETHOD(QueryVirtual)(THIS_ ULONG64 Offset,PMEMORY_BASIC_INFORMATION64 Info) PURE;
3010 STDMETHOD(ReadImageNtHeaders)(THIS_ ULONG64 ImageBase,PIMAGE_NT_HEADERS64 Headers) PURE;
3011 STDMETHOD(ReadTagged)(THIS_ LPGUID Tag,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG TotalSize) PURE;
3012 STDMETHOD(StartEnumTagged)(THIS_ PULONG64 Handle) PURE;
3013 STDMETHOD(GetNextTagged)(THIS_ ULONG64 Handle,LPGUID Tag,PULONG Size) PURE;
3014 STDMETHOD(EndEnumTagged)(THIS_ ULONG64 Handle) PURE;
3015 };
3016#ifdef __CRT_UUID_DECL
3017__CRT_UUID_DECL(IDebugDataSpaces3,0x23f79d6c,0x8aaf,0x4f7c,0xa6,0x07,0x99,0x95,0xf5,0x40,0x7e,0x63)
3018#endif
3019
3020#define DEBUG_OFFSINFO_VIRTUAL_SOURCE 0x00000001
3021
3022#define DEBUG_VSOURCE_INVALID 0x00000000
3023#define DEBUG_VSOURCE_DEBUGGEE 0x00000001
3024#define DEBUG_VSOURCE_MAPPED_IMAGE 0x00000002
3025#define DEBUG_VSOURCE_DUMP_WITHOUT_MEMINFO 0x00000003
3026
3027#define DEBUG_VSEARCH_DEFAULT 0x00000000
3028#define DEBUG_VSEARCH_WRITABLE_ONLY 0x00000001
3029
3030#define DEBUG_PHYSICAL_DEFAULT 0x00000000
3031#define DEBUG_PHYSICAL_CACHED 0x00000001
3032#define DEBUG_PHYSICAL_UNCACHED 0x00000002
3033#define DEBUG_PHYSICAL_WRITE_COMBINED 0x00000003
3034
3035#undef INTERFACE
3036#define INTERFACE IDebugDataSpaces4
3037 DECLARE_INTERFACE_(IDebugDataSpaces4, IUnknown) {
3038 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3039 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3040 STDMETHOD_(ULONG, Release)(THIS) PURE;
3041 STDMETHOD(ReadVirtual)(THIS_ ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3042 STDMETHOD(WriteVirtual)(THIS_ ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3043 STDMETHOD(SearchVirtual)(THIS_ ULONG64 Offset, ULONG64 Length, PVOID Pattern, ULONG PatternSize, ULONG PatternGranularity, PULONG64 MatchOffset) PURE;
3044 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3045 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3046 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG Count, ULONG64 Offset, PULONG64 Ptrs) PURE;
3047 STDMETHOD(WritePointersVirtual)(THIS_ ULONG Count, ULONG64 Offset, PULONG64 Ptrs) PURE;
3048 STDMETHOD(ReadPhysical)(THIS_ ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3049 STDMETHOD(WritePhysical)(THIS_ ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3050 STDMETHOD(ReadControl)(THIS_ ULONG Processor, ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3051 STDMETHOD(WriteControl)(THIS_ ULONG Processor, ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3052 STDMETHOD(ReadIo)(THIS_ ULONG InterfaceType, ULONG BusNumber, ULONG AddressSpace, ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3053 STDMETHOD(WriteIo)(THIS_ ULONG InterfaceType, ULONG BusNumber, ULONG AddressSpace, ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3054 STDMETHOD(ReadMsr)(THIS_ ULONG Msr, PULONG64 Value) PURE;
3055 STDMETHOD(WriteMsr)(THIS_ ULONG Msr, ULONG64 Value) PURE;
3056 STDMETHOD(ReadBusData)(THIS_ ULONG BusDataType, ULONG BusNumber, ULONG SlotNumber, ULONG Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3057 STDMETHOD(WriteBusData)(THIS_ ULONG BusDataType, ULONG BusNumber, ULONG SlotNumber, ULONG Offset, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3058 STDMETHOD(CheckLowMemory)(THIS) PURE;
3059 STDMETHOD(ReadDebuggerData)(THIS_ ULONG Index, PVOID Buffer, ULONG BufferSize, PULONG DataSize) PURE;
3060 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG Processor, ULONG Index, PVOID Buffer, ULONG BufferSize, PULONG DataSize) PURE;
3061 STDMETHOD(VirtualToPhysical)(THIS_ ULONG64 Virtual, PULONG64 Physical) PURE;
3062 STDMETHOD(GetVirtualTranslationPhysicalOffsets)(THIS_ ULONG64 Virtual, PULONG64 Offsets, ULONG OffsetsSize, PULONG Levels) PURE;
3063 STDMETHOD(ReadHandleData)(THIS_ ULONG64 Handle, ULONG DataType, PVOID Buffer, ULONG BufferSize, PULONG DataSize) PURE;
3064 STDMETHOD(FillVirtual)(THIS_ ULONG64 Start, ULONG Size, PVOID Pattern, ULONG PatternSize, PULONG Filled) PURE;
3065 STDMETHOD(FillPhysical)(THIS_ ULONG64 Start, ULONG Size, PVOID Pattern, ULONG PatternSize, PULONG Filled) PURE;
3066 STDMETHOD(QueryVirtual)(THIS_ ULONG64 Offset, PMEMORY_BASIC_INFORMATION64 Info) PURE;
3067 STDMETHOD(ReadImageNtHeaders)(THIS_ ULONG64 ImageBase, PIMAGE_NT_HEADERS64 Headers) PURE;
3068 STDMETHOD(ReadTagged)(THIS_ LPGUID Tag, ULONG Offset, PVOID Buffer, ULONG BufferSize, PULONG TotalSize) PURE;
3069 STDMETHOD(StartEnumTagged)(THIS_ PULONG64 Handle) PURE;
3070 STDMETHOD(GetNextTagged)(THIS_ ULONG64 Handle, LPGUID Tag, PULONG Size) PURE;
3071 STDMETHOD(EndEnumTagged)(THIS_ ULONG64 Handle) PURE;
3072 STDMETHOD(GetOffsetInformation)(THIS_ ULONG Space, ULONG Which, ULONG64 Offset, PVOID Buffer, ULONG BufferSize, PULONG InfoSize) PURE;
3073 STDMETHOD(GetNextDifferentlyValidOffsetVirtual)(THIS_ ULONG64 Offset, PULONG64 NextOffset) PURE;
3074 STDMETHOD(GetValidRegionVirtual)(THIS_ ULONG64 Base, ULONG Size, PULONG64 ValidBase, PULONG ValidSize) PURE;
3075 STDMETHOD(SearchVirtual2)(THIS_ ULONG64 Offset, ULONG64 Length, ULONG Flags, PVOID Pattern, ULONG PatternSize, ULONG PatternGranularity, PULONG64 MatchOffset) PURE;
3076 STDMETHOD(ReadMultiByteStringVirtual)(THIS_ ULONG64 Offset, ULONG MaxBytes, PSTR Buffer, ULONG BufferSize, PULONG StringBytes) PURE;
3077 STDMETHOD(ReadMultiByteStringVirtualWide)(THIS_ ULONG64 Offset, ULONG MaxBytes, ULONG CodePage, PWSTR Buffer, ULONG BufferSize, PULONG StringBytes) PURE;
3078 STDMETHOD(ReadUnicodeStringVirtual)(THIS_ ULONG64 Offset, ULONG MaxBytes, ULONG CodePage, PSTR Buffer, ULONG BufferSize, PULONG StringBytes) PURE;
3079 STDMETHOD(ReadUnicodeStringVirtualWide)(THIS_ ULONG64 Offset, ULONG MaxBytes, PWSTR Buffer, ULONG BufferSize, PULONG StringBytes) PURE;
3080 STDMETHOD(ReadPhysical2)(THIS_ ULONG64 Offset, ULONG Flags, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3081 STDMETHOD(WritePhysical2)(THIS_ ULONG64 Offset, ULONG Flags, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3082 };
3083#ifdef __CRT_UUID_DECL
3084__CRT_UUID_DECL(IDebugDataSpaces4,0xd98ada1f,0x29e9,0x4ef5,0xa6,0xc0,0xe5,0x33,0x49,0x88,0x32,0x12)
3085#endif
3086
3087#define DEBUG_EVENT_BREAKPOINT 0x00000001
3088#define DEBUG_EVENT_EXCEPTION 0x00000002
3089#define DEBUG_EVENT_CREATE_THREAD 0x00000004
3090#define DEBUG_EVENT_EXIT_THREAD 0x00000008
3091#define DEBUG_EVENT_CREATE_PROCESS 0x00000010
3092#define DEBUG_EVENT_EXIT_PROCESS 0x00000020
3093#define DEBUG_EVENT_LOAD_MODULE 0x00000040
3094#define DEBUG_EVENT_UNLOAD_MODULE 0x00000080
3095#define DEBUG_EVENT_SYSTEM_ERROR 0x00000100
3096#define DEBUG_EVENT_SESSION_STATUS 0x00000200
3097#define DEBUG_EVENT_CHANGE_DEBUGGEE_STATE 0x00000400
3098#define DEBUG_EVENT_CHANGE_ENGINE_STATE 0x00000800
3099#define DEBUG_EVENT_CHANGE_SYMBOL_STATE 0x00001000
3100
3101#define DEBUG_SESSION_ACTIVE 0x00000000
3102
3103#define DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE 0x00000001
3104#define DEBUG_SESSION_END_SESSION_ACTIVE_DETACH 0x00000002
3105#define DEBUG_SESSION_END_SESSION_PASSIVE 0x00000003
3106#define DEBUG_SESSION_END 0x00000004
3107#define DEBUG_SESSION_REBOOT 0x00000005
3108#define DEBUG_SESSION_HIBERNATE 0x00000006
3109#define DEBUG_SESSION_FAILURE 0x00000007
3110
3111#define DEBUG_CDS_ALL 0xffffffff
3112
3113#define DEBUG_CDS_REGISTERS 0x00000001
3114#define DEBUG_CDS_DATA 0x00000002
3115
3116#define DEBUG_CES_ALL 0xffffffff
3117
3118#define DEBUG_CES_CURRENT_THREAD 0x00000001
3119#define DEBUG_CES_EFFECTIVE_PROCESSOR 0x00000002
3120#define DEBUG_CES_BREAKPOINTS 0x00000004
3121#define DEBUG_CES_CODE_LEVEL 0x00000008
3122#define DEBUG_CES_EXECUTION_STATUS 0x00000010
3123#define DEBUG_CES_ENGINE_OPTIONS 0x00000020
3124#define DEBUG_CES_LOG_FILE 0x00000040
3125#define DEBUG_CES_RADIX 0x00000080
3126#define DEBUG_CES_EVENT_FILTERS 0x00000100
3127#define DEBUG_CES_PROCESS_OPTIONS 0x00000200
3128#define DEBUG_CES_EXTENSIONS 0x00000400
3129#define DEBUG_CES_SYSTEMS 0x00000800
3130#define DEBUG_CES_ASSEMBLY_OPTIONS 0x00001000
3131#define DEBUG_CES_EXPRESSION_SYNTAX 0x00002000
3132#define DEBUG_CES_TEXT_REPLACEMENTS 0x00004000
3133
3134#define DEBUG_CSS_ALL 0xffffffff
3135
3136#define DEBUG_CSS_LOADS 0x00000001
3137#define DEBUG_CSS_UNLOADS 0x00000002
3138#define DEBUG_CSS_SCOPE 0x00000004
3139#define DEBUG_CSS_PATHS 0x00000008
3140#define DEBUG_CSS_SYMBOL_OPTIONS 0x00000010
3141#define DEBUG_CSS_TYPE_OPTIONS 0x00000020
3142
3143#undef INTERFACE
3144#define INTERFACE IDebugEventCallbacks
3145 DECLARE_INTERFACE_(IDebugEventCallbacks,IUnknown) {
3146 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
3147 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3148 STDMETHOD_(ULONG,Release)(THIS) PURE;
3149 STDMETHOD(GetInterestMask)(THIS_ PULONG Mask) PURE;
3150 STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE;
3151 STDMETHOD(Exception)(THIS_ PEXCEPTION_RECORD64 Exception,ULONG FirstChance) PURE;
3152 STDMETHOD(CreateThread)(THIS_ ULONG64 Handle,ULONG64 DataOffset,ULONG64 StartOffset) PURE;
3153 STDMETHOD(ExitThread)(THIS_ ULONG ExitCode) PURE;
3154 STDMETHOD(CreateProcess)(THIS_ ULONG64 ImageFileHandle,ULONG64 Handle,ULONG64 BaseOffset,ULONG ModuleSize,PCSTR ModuleName,PCSTR ImageName,ULONG CheckSum,ULONG TimeDateStamp,ULONG64 InitialThreadHandle,ULONG64 ThreadDataOffset,ULONG64 StartOffset) PURE;
3155 STDMETHOD(ExitProcess)(THIS_ ULONG ExitCode) PURE;
3156 STDMETHOD(LoadModule)(THIS_ ULONG64 ImageFileHandle,ULONG64 BaseOffset,ULONG ModuleSize,PCSTR ModuleName,PCSTR ImageName,ULONG CheckSum,ULONG TimeDateStamp) PURE;
3157 STDMETHOD(UnloadModule)(THIS_ PCSTR ImageBaseName,ULONG64 BaseOffset) PURE;
3158 STDMETHOD(SystemError)(THIS_ ULONG Error,ULONG Level) PURE;
3159 STDMETHOD(SessionStatus)(THIS_ ULONG Status) PURE;
3160 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG Flags,ULONG64 Argument) PURE;
3161 STDMETHOD(ChangeEngineState)(THIS_ ULONG Flags,ULONG64 Argument) PURE;
3162 STDMETHOD(ChangeSymbolState)(THIS_ ULONG Flags,ULONG64 Argument) PURE;
3163 };
3164#ifdef __CRT_UUID_DECL
3165__CRT_UUID_DECL(IDebugEventCallbacks,0x337be28b,0x5036,0x4d72,0xb6,0xbf,0xc4,0x5f,0xbb,0x9f,0x2e,0xaa)
3166#endif
3167
3168#undef INTERFACE
3169#define INTERFACE IDebugEventCallbacksWide
3170 DECLARE_INTERFACE_(IDebugEventCallbacksWide, IUnknown) {
3171 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3172 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3173 STDMETHOD_(ULONG, Release)(THIS) PURE;
3174 STDMETHOD(GetInterestMask)(THIS_ PULONG Mask) PURE;
3175 STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT2 Bp) PURE;
3176 STDMETHOD(Exception)(THIS_ PEXCEPTION_RECORD64 Exception, ULONG FirstChance) PURE;
3177 STDMETHOD(CreateThread)(THIS_ ULONG64 Handle, ULONG64 DataOffset, ULONG64 StartOffset) PURE;
3178 STDMETHOD(ExitThread)(THIS_ ULONG ExitCode) PURE;
3179 STDMETHOD(CreateProcess)(THIS_ ULONG64 ImageFileHandle, ULONG64 Handle, ULONG64 BaseOffset, ULONG ModuleSize, PCWSTR ModuleName, PCWSTR ImageName, ULONG CheckSum, ULONG TimeDateStamp, ULONG64 InitialThreadHandle, ULONG64 ThreadDataOffset, ULONG64 StartOffset) PURE;
3180 STDMETHOD(ExitProcess)(THIS_ ULONG ExitCode) PURE;
3181 STDMETHOD(LoadModule)(THIS_ ULONG64 ImageFileHandle, ULONG64 BaseOffset, ULONG ModuleSize, PCWSTR ModuleName, PCWSTR ImageName, ULONG CheckSum, ULONG TimeDateStamp) PURE;
3182 STDMETHOD(UnloadModule)(THIS_ PCWSTR ImageBaseName, ULONG64 BaseOffset) PURE;
3183 STDMETHOD(SystemError)(THIS_ ULONG Error, ULONG Level) PURE;
3184 STDMETHOD(SessionStatus)(THIS_ ULONG Status) PURE;
3185 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG Flags, ULONG64 Argument) PURE;
3186 STDMETHOD(ChangeEngineState)(THIS_ ULONG Flags, ULONG64 Argument) PURE;
3187 STDMETHOD(ChangeSymbolState)(THIS_ ULONG Flags, ULONG64 Argument) PURE;
3188 };
3189#ifdef __CRT_UUID_DECL
3190__CRT_UUID_DECL(IDebugEventCallbacksWide,0x0690e046,0x9c23,0x45ac,0xa0,0x4f,0x98,0x7a,0xc2,0x9a,0xd0,0xd3)
3191#endif
3192
3193typedef struct _DEBUG_EVENT_CONTEXT {
3194 ULONG Size;
3195 ULONG ProcessEngineId;
3196 ULONG ThreadEngineId;
3197 ULONG FrameEngineId;
3198} DEBUG_EVENT_CONTEXT, *PDEBUG_EVENT_CONTEXT;
3199
3200#undef INTERFACE
3201#define INTERFACE IDebugEventContextCallbacks
3202 DECLARE_INTERFACE_(IDebugEventContextCallbacks, IUnknown) {
3203 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3204 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3205 STDMETHOD_(ULONG, Release)(THIS) PURE;
3206 STDMETHOD(GetInterestMask)(THIS_ PULONG Mask) PURE;
3207 STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT2 Bp, PVOID Context, ULONG ContextSize) PURE;
3208 STDMETHOD(Exception)(THIS_ PEXCEPTION_RECORD64 Exception, ULONG FirstChance, PVOID Context, ULONG ContextSize) PURE;
3209 STDMETHOD(CreateThread)(THIS_ ULONG64 Handle, ULONG64 DataOffset, ULONG64 StartOffset, PVOID Context, ULONG ContextSize) PURE;
3210 STDMETHOD(ExitThread)(THIS_ ULONG ExitCode, PVOID Context, ULONG ContextSize) PURE;
3211 STDMETHOD(CreateProcess)(THIS_ ULONG64 ImageFileHandle, ULONG64 Handle, ULONG64 BaseOffset, ULONG ModuleSize, PCWSTR ModuleName, PCWSTR ImageName, ULONG CheckSum, ULONG TimeDateStamp, ULONG64 InitialThreadHandle, ULONG64 ThreadDataOffset, ULONG64 StartOffset, PVOID Context, ULONG ContextSize) PURE;
3212 STDMETHOD(ExitProcess)(THIS_ ULONG ExitCode, PVOID Context, ULONG ContextSize) PURE;
3213 STDMETHOD(LoadModule)(THIS_ ULONG64 ImageFileHandle, ULONG64 BaseOffset, ULONG ModuleSize, PCWSTR ModuleName, PCWSTR ImageName, ULONG CheckSum, ULONG TimeDateStamp, PVOID Context, ULONG ContextSize) PURE;
3214 STDMETHOD(UnloadModule)(THIS_ PCWSTR ImageBaseName, ULONG64 BaseOffset, PVOID Context, ULONG ContextSize) PURE;
3215 STDMETHOD(SystemError)(THIS_ ULONG Error, ULONG Level, PVOID Context, ULONG ContextSize) PURE;
3216 STDMETHOD(SessionStatus)(THIS_ ULONG Status) PURE;
3217 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG Flags, ULONG64 Argument, PVOID Context, ULONG ContextSize) PURE;
3218 STDMETHOD(ChangeEngineState)(THIS_ ULONG Flags, ULONG64 Argument, PVOID Context, ULONG ContextSize) PURE;
3219 STDMETHOD(ChangeSymbolState)(THIS_ ULONG Flags, ULONG64 Argument) PURE;
3220 };
3221#ifdef __CRT_UUID_DECL
3222__CRT_UUID_DECL(IDebugEventContextCallbacks,0x61a4905b,0x23f9,0x4247,0xb3,0xc5,0x53,0xd0,0x87,0x52,0x9a,0xb7)
3223#endif
3224
3225#undef INTERFACE
3226#define INTERFACE IDebugInputCallbacks
3227 DECLARE_INTERFACE_(IDebugInputCallbacks,IUnknown) {
3228 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
3229 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3230 STDMETHOD_(ULONG,Release)(THIS) PURE;
3231 STDMETHOD(StartInput)(THIS_ ULONG BufferSize) PURE;
3232 STDMETHOD(EndInput)(THIS) PURE;
3233 };
3234#ifdef __CRT_UUID_DECL
3235__CRT_UUID_DECL(IDebugInputCallbacks,0x9f50e42c,0xf136,0x499e,0x9a,0x97,0x73,0x03,0x6c,0x94,0xed,0x2d)
3236#endif
3237
3238#undef INTERFACE
3239#define INTERFACE IDebugOutputCallbacks
3240 DECLARE_INTERFACE_(IDebugOutputCallbacks,IUnknown) {
3241 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
3242 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3243 STDMETHOD_(ULONG,Release)(THIS) PURE;
3244 STDMETHOD(Output)(THIS_ ULONG Mask,PCSTR Text) PURE;
3245 };
3246#ifdef __CRT_UUID_DECL
3247__CRT_UUID_DECL(IDebugOutputCallbacks,0x4bf58045,0xd654,0x4c40,0xb0,0xaf,0x68,0x30,0x90,0xf3,0x56,0xdc)
3248#endif
3249
3250#undef INTERFACE
3251#define INTERFACE IDebugOutputCallbacksWide
3252 DECLARE_INTERFACE_(IDebugOutputCallbacksWide, IUnknown) {
3253 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3254 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3255 STDMETHOD_(ULONG, Release)(THIS) PURE;
3256 STDMETHOD(Output)(THIS_ ULONG Mask, PCWSTR Text) PURE;
3257 };
3258#ifdef __CRT_UUID_DECL
3259__CRT_UUID_DECL(IDebugOutputCallbacksWide,0x4c7fd663,0xc394,0x4e26,0x8e,0xf1,0x34,0xad,0x5e,0xd3,0x76,0x4c)
3260#endif
3261
3262#define DEBUG_REGISTER_SUB_REGISTER 0x00000001
3263
3264#define DEBUG_REGISTERS_DEFAULT 0x00000000
3265#define DEBUG_REGISTERS_INT32 0x00000001
3266#define DEBUG_REGISTERS_INT64 0x00000002
3267#define DEBUG_REGISTERS_FLOAT 0x00000004
3268#define DEBUG_REGISTERS_ALL 0x00000007
3269
3270 typedef struct _DEBUG_REGISTER_DESCRIPTION {
3271 ULONG Type;
3272 ULONG Flags;
3273 ULONG SubregMaster;
3274 ULONG SubregLength;
3275 ULONG64 SubregMask;
3276 ULONG SubregShift;
3277 ULONG Reserved0;
3278 } DEBUG_REGISTER_DESCRIPTION,*PDEBUG_REGISTER_DESCRIPTION;
3279
3280#undef INTERFACE
3281#define INTERFACE IDebugRegisters
3282 DECLARE_INTERFACE_(IDebugRegisters,IUnknown) {
3283 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
3284 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3285 STDMETHOD_(ULONG,Release)(THIS) PURE;
3286 STDMETHOD(GetNumberRegisters)(THIS_ PULONG Number) PURE;
3287 STDMETHOD(GetDescription)(THIS_ ULONG Register,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PDEBUG_REGISTER_DESCRIPTION Desc) PURE;
3288 STDMETHOD(GetIndexByName)(THIS_ PCSTR Name,PULONG Index) PURE;
3289 STDMETHOD(GetValue)(THIS_ ULONG Register,PDEBUG_VALUE Value) PURE;
3290 STDMETHOD(SetValue)(THIS_ ULONG Register,PDEBUG_VALUE Value) PURE;
3291 STDMETHOD(GetValues)(THIS_ ULONG Count,PULONG Indices,ULONG Start,PDEBUG_VALUE Values) PURE;
3292 STDMETHOD(SetValues)(THIS_ ULONG Count,PULONG Indices,ULONG Start,PDEBUG_VALUE Values) PURE;
3293 STDMETHOD(OutputRegisters)(THIS_ ULONG OutputControl,ULONG Flags) PURE;
3294 STDMETHOD(GetInstructionOffset)(THIS_ PULONG64 Offset) PURE;
3295 STDMETHOD(GetStackOffset)(THIS_ PULONG64 Offset) PURE;
3296 STDMETHOD(GetFrameOffset)(THIS_ PULONG64 Offset) PURE;
3297 };
3298#ifdef __CRT_UUID_DECL
3299__CRT_UUID_DECL(IDebugRegisters,0xce289126,0x9e84,0x45a7,0x93,0x7e,0x67,0xbb,0x18,0x69,0x14,0x93)
3300#endif
3301
3302#define DEBUG_REGSRC_DEBUGGEE 0x00000000
3303#define DEBUG_REGSRC_EXPLICIT 0x00000001
3304#define DEBUG_REGSRC_FRAME 0x00000002
3305
3306#undef INTERFACE
3307#define INTERFACE IDebugRegisters2
3308 DECLARE_INTERFACE_(IDebugRegisters2, IUnknown) {
3309 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3310 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3311 STDMETHOD_(ULONG, Release)(THIS) PURE;
3312 STDMETHOD(GetNumberRegisters)(THIS_ PULONG Number) PURE;
3313 STDMETHOD(GetDescription)(THIS_ ULONG Register, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PDEBUG_REGISTER_DESCRIPTION Desc) PURE;
3314 STDMETHOD(GetIndexByName)(THIS_ PCSTR Name, PULONG Index) PURE;
3315 STDMETHOD(GetValue)(THIS_ ULONG Register, PDEBUG_VALUE Value) PURE;
3316 STDMETHOD(SetValue)(THIS_ ULONG Register, PDEBUG_VALUE Value) PURE;
3317 STDMETHOD(GetValues)(THIS_ ULONG Count, PULONG Indices, ULONG Start, PDEBUG_VALUE Values) PURE;
3318 STDMETHOD(SetValues)(THIS_ ULONG Count, PULONG Indices, ULONG Start, PDEBUG_VALUE Values) PURE;
3319 STDMETHOD(OutputRegisters)(THIS_ ULONG OutputControl, ULONG Flags) PURE;
3320 STDMETHOD(GetInstructionOffset)(THIS_ PULONG64 Offset) PURE;
3321 STDMETHOD(GetStackOffset)(THIS_ PULONG64 Offset) PURE;
3322 STDMETHOD(GetFrameOffset)(THIS_ PULONG64 Offset) PURE;
3323 STDMETHOD(GetDescriptionWide)(THIS_ ULONG Register, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PDEBUG_REGISTER_DESCRIPTION Desc) PURE;
3324 STDMETHOD(GetIndexByNameWide)(THIS_ PCWSTR Name, PULONG Index) PURE;
3325 STDMETHOD(GetNumberPseudoRegisters)(THIS_ PULONG Number) PURE;
3326 STDMETHOD(GetPseudoDescription)(THIS_ ULONG Register, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 TypeModule, PULONG TypeId) PURE;
3327 STDMETHOD(GetPseudoDescriptionWide)(THIS_ ULONG Register, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 TypeModule, PULONG TypeId) PURE;
3328 STDMETHOD(GetPseudoIndexByName)(THIS_ PCSTR Name, PULONG Index) PURE;
3329 STDMETHOD(GetPseudoIndexByNameWide)(THIS_ PCWSTR Name, PULONG Index) PURE;
3330 STDMETHOD(GetPseudoValues)(THIS_ ULONG Source, ULONG Count, PULONG Indices, ULONG Start, PDEBUG_VALUE Values) PURE;
3331 STDMETHOD(SetPseudoValues)(THIS_ ULONG Source, ULONG Count, PULONG Indices, ULONG Start, PDEBUG_VALUE Values) PURE;
3332 STDMETHOD(GetValues2)(THIS_ ULONG Source, ULONG Count, PULONG Indices, ULONG Start, PDEBUG_VALUE Values) PURE;
3333 STDMETHOD(SetValues2)(THIS_ ULONG Source, ULONG Count, PULONG Indices, ULONG Start, PDEBUG_VALUE Values) PURE;
3334 STDMETHOD(OutputRegisters2)(THIS_ ULONG OutputControl, ULONG Source, ULONG Flags) PURE;
3335 STDMETHOD(GetInstructionOffset2)(THIS_ ULONG Source, PULONG64 Offset) PURE;
3336 STDMETHOD(GetStackOffset2)(THIS_ ULONG Source, PULONG64 Offset) PURE;
3337 STDMETHOD(GetFrameOffset2)(THIS_ ULONG Source, PULONG64 Offset) PURE;
3338 };
3339#ifdef __CRT_UUID_DECL
3340__CRT_UUID_DECL(IDebugRegisters2,0x1656afa9,0x19c6,0x4e3a,0x97,0xe7,0x5d,0xc9,0x16,0x0c,0xf9,0xc4)
3341#endif
3342
3343#define DEBUG_OUTPUT_SYMBOLS_DEFAULT 0x00000000
3344#define DEBUG_OUTPUT_SYMBOLS_NO_NAMES 0x00000001
3345#define DEBUG_OUTPUT_SYMBOLS_NO_OFFSETS 0x00000002
3346#define DEBUG_OUTPUT_SYMBOLS_NO_VALUES 0x00000004
3347#define DEBUG_OUTPUT_SYMBOLS_NO_TYPES 0x00000010
3348
3349#define DEBUG_OUTPUT_NAME_END "**NAME**"
3350#define DEBUG_OUTPUT_OFFSET_END "**OFF**"
3351#define DEBUG_OUTPUT_VALUE_END "**VALUE**"
3352#define DEBUG_OUTPUT_TYPE_END "**TYPE**"
3353
3354#define DEBUG_SYMBOL_EXPANSION_LEVEL_MASK 0x0000000f
3355#define DEBUG_SYMBOL_EXPANDED 0x00000010
3356#define DEBUG_SYMBOL_READ_ONLY 0x00000020
3357#define DEBUG_SYMBOL_IS_ARRAY 0x00000040
3358#define DEBUG_SYMBOL_IS_FLOAT 0x00000080
3359#define DEBUG_SYMBOL_IS_ARGUMENT 0x00000100
3360#define DEBUG_SYMBOL_IS_LOCAL 0x00000200
3361
3362 typedef struct _DEBUG_SYMBOL_PARAMETERS {
3363 ULONG64 Module;
3364 ULONG TypeId;
3365 ULONG ParentSymbol;
3366 ULONG SubElements;
3367 ULONG Flags;
3368 ULONG64 Reserved;
3369 } DEBUG_SYMBOL_PARAMETERS,*PDEBUG_SYMBOL_PARAMETERS;
3370
3371#undef INTERFACE
3372#define INTERFACE IDebugSymbolGroup
3373 DECLARE_INTERFACE_(IDebugSymbolGroup,IUnknown) {
3374 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
3375 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3376 STDMETHOD_(ULONG,Release)(THIS) PURE;
3377 STDMETHOD(GetNumberSymbols)(THIS_ PULONG Number) PURE;
3378 STDMETHOD(AddSymbol)(THIS_ PCSTR Name,PULONG Index) PURE;
3379 STDMETHOD(RemoveSymbolByName)(THIS_ PCSTR Name) PURE;
3380 STDMETHOD(RemoveSymbolByIndex)(THIS_ ULONG Index) PURE;
3381 STDMETHOD(GetSymbolName)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG NameSize) PURE;
3382 STDMETHOD(GetSymbolParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SYMBOL_PARAMETERS Params) PURE;
3383 STDMETHOD(ExpandSymbol)(THIS_ ULONG Index,WINBOOL Expand) PURE;
3384 STDMETHOD(OutputSymbols)(THIS_ ULONG OutputControl,ULONG Flags,ULONG Start,ULONG Count) PURE;
3385 STDMETHOD(WriteSymbol)(THIS_ ULONG Index,PCSTR Value) PURE;
3386 STDMETHOD(OutputAsType)(THIS_ ULONG Index,PCSTR Type) PURE;
3387 };
3388#ifdef __CRT_UUID_DECL
3389__CRT_UUID_DECL(IDebugSymbolGroup,0xf2528316,0x0f1a,0x4431,0xae,0xed,0x11,0xd0,0x96,0xe1,0xe2,0xab)
3390#endif
3391
3392#define DEBUG_SYMENT_IS_CODE 0x00000001
3393#define DEBUG_SYMENT_IS_DATA 0x00000002
3394#define DEBUG_SYMENT_IS_PARAMETER 0x00000004
3395#define DEBUG_SYMENT_IS_LOCAL 0x00000008
3396#define DEBUG_SYMENT_IS_MANAGED 0x00000010
3397#define DEBUG_SYMENT_IS_SYNTHETIC 0x00000020
3398
3399 typedef struct _DEBUG_SYMBOL_ENTRY {
3400 ULONG64 ModuleBase;
3401 ULONG64 Offset;
3402 ULONG64 Id;
3403 ULONG64 Arg64;
3404 ULONG Size;
3405 ULONG Flags;
3406 ULONG TypeId;
3407 ULONG NameSize;
3408 ULONG Token;
3409 ULONG Tag;
3410 ULONG Arg32;
3411 ULONG Reserved;
3412 } DEBUG_SYMBOL_ENTRY,*PDEBUG_SYMBOL_ENTRY;
3413
3414#undef INTERFACE
3415#define INTERFACE IDebugSymbolGroup2
3416 DECLARE_INTERFACE_(IDebugSymbolGroup2, IUnknown) {
3417 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3418 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3419 STDMETHOD_(ULONG, Release)(THIS) PURE;
3420 STDMETHOD(GetNumberSymbols)(THIS_ PULONG Number) PURE;
3421 STDMETHOD(AddSymbol)(THIS_ PCSTR Name, PULONG Index) PURE;
3422 STDMETHOD(RemoveSymbolByName)(THIS_ PCSTR Name) PURE;
3423 STDMETHOD(RemoveSymbolByIndex)(THIS_ ULONG Index) PURE;
3424 STDMETHOD(GetSymbolName)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3425 STDMETHOD(GetSymbolParameters)(THIS_ ULONG Start, ULONG Count, PDEBUG_SYMBOL_PARAMETERS Params) PURE;
3426 STDMETHOD(ExpandSymbol)(THIS_ ULONG Index, WINBOOL Expand) PURE;
3427 STDMETHOD(OutputSymbols)(THIS_ ULONG OutputControl, ULONG Flags, ULONG Start, ULONG Count) PURE;
3428 STDMETHOD(WriteSymbol)(THIS_ ULONG Index, PCSTR Value) PURE;
3429 STDMETHOD(OutputAsType)(THIS_ ULONG Index, PCSTR Type) PURE;
3430 STDMETHOD(AddSymbolWide)(THIS_ PCWSTR Name, PULONG Index) PURE;
3431 STDMETHOD(RemoveSymbolByNameWide)(THIS_ PCWSTR Name) PURE;
3432 STDMETHOD(GetSymbolNameWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3433 STDMETHOD(WriteSymbolWide)(THIS_ ULONG Index, PCWSTR Value) PURE;
3434 STDMETHOD(OutputAsTypeWide)(THIS_ ULONG Index, PCWSTR Type) PURE;
3435 STDMETHOD(GetSymbolTypeName)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3436 STDMETHOD(GetSymbolTypeNameWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3437 STDMETHOD(GetSymbolSize)(THIS_ ULONG Index, PULONG Size) PURE;
3438 STDMETHOD(GetSymbolOffset)(THIS_ ULONG Index, PULONG64 Offset) PURE;
3439 STDMETHOD(GetSymbolRegister)(THIS_ ULONG Index, PULONG Register) PURE;
3440 STDMETHOD(GetSymbolValueText)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3441 STDMETHOD(GetSymbolValueTextWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3442 STDMETHOD(GetSymbolEntryInformation)(THIS_ ULONG Index, PDEBUG_SYMBOL_ENTRY Entry) PURE;
3443 };
3444#ifdef __CRT_UUID_DECL
3445__CRT_UUID_DECL(IDebugSymbolGroup2,0x6a7ccc5f,0xfb5e,0x4dcc,0xb4,0x1c,0x6c,0x20,0x30,0x7b,0xcc,0xc7)
3446#endif
3447
3448#define DEBUG_MODULE_LOADED 0x00000000
3449#define DEBUG_MODULE_UNLOADED 0x00000001
3450#define DEBUG_MODULE_USER_MODE 0x00000002
3451#define DEBUG_MODULE_SYM_BAD_CHECKSUM 0x00010000
3452
3453#define DEBUG_SYMTYPE_NONE 0
3454#define DEBUG_SYMTYPE_COFF 1
3455#define DEBUG_SYMTYPE_CODEVIEW 2
3456#define DEBUG_SYMTYPE_PDB 3
3457#define DEBUG_SYMTYPE_EXPORT 4
3458#define DEBUG_SYMTYPE_DEFERRED 5
3459#define DEBUG_SYMTYPE_SYM 6
3460#define DEBUG_SYMTYPE_DIA 7
3461
3462 typedef struct _DEBUG_MODULE_PARAMETERS {
3463 ULONG64 Base;
3464 ULONG Size;
3465 ULONG TimeDateStamp;
3466 ULONG Checksum;
3467 ULONG Flags;
3468 ULONG SymbolType;
3469 ULONG ImageNameSize;
3470 ULONG ModuleNameSize;
3471 ULONG LoadedImageNameSize;
3472 ULONG SymbolFileNameSize;
3473 ULONG MappedImageNameSize;
3474 ULONG64 Reserved[2];
3475 } DEBUG_MODULE_PARAMETERS,*PDEBUG_MODULE_PARAMETERS;
3476
3477#define DEBUG_SCOPE_GROUP_ARGUMENTS 0x00000001
3478#define DEBUG_SCOPE_GROUP_LOCALS 0x00000002
3479#define DEBUG_SCOPE_GROUP_ALL 0x00000003
3480
3481#define DEBUG_OUTTYPE_DEFAULT 0x00000000
3482#define DEBUG_OUTTYPE_NO_INDENT 0x00000001
3483#define DEBUG_OUTTYPE_NO_OFFSET 0x00000002
3484#define DEBUG_OUTTYPE_VERBOSE 0x00000004
3485#define DEBUG_OUTTYPE_COMPACT_OUTPUT 0x00000008
3486#define DEBUG_OUTTYPE_RECURSION_LEVEL(Max) (((Max) & 0xf) << 4)
3487#define DEBUG_OUTTYPE_ADDRESS_OF_FIELD 0x00010000
3488#define DEBUG_OUTTYPE_ADDRESS_AT_END 0x00020000
3489#define DEBUG_OUTTYPE_BLOCK_RECURSE 0x00200000
3490
3491#define DEBUG_FIND_SOURCE_DEFAULT 0x00000000
3492#define DEBUG_FIND_SOURCE_FULL_PATH 0x00000001
3493#define DEBUG_FIND_SOURCE_BEST_MATCH 0x00000002
3494
3495#define DEBUG_INVALID_OFFSET ((ULONG64)-1)
3496
3497#undef INTERFACE
3498#define INTERFACE IDebugSymbols
3499 DECLARE_INTERFACE_(IDebugSymbols,IUnknown) {
3500 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
3501 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3502 STDMETHOD_(ULONG,Release)(THIS) PURE;
3503 STDMETHOD(GetSymbolOptions)(THIS_ PULONG Options) PURE;
3504 STDMETHOD(AddSymbolOptions)(THIS_ ULONG Options) PURE;
3505 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG Options) PURE;
3506 STDMETHOD(SetSymbolOptions)(THIS_ ULONG Options) PURE;
3507 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 Offset,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PULONG64 Displacement) PURE;
3508 STDMETHOD(GetOffsetByName)(THIS_ PCSTR Symbol,PULONG64 Offset) PURE;
3509 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 Offset,LONG Delta,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PULONG64 Displacement) PURE;
3510 STDMETHOD(GetLineByOffset)(THIS_ ULONG64 Offset,PULONG Line,PSTR FileBuffer,ULONG FileBufferSize,PULONG FileSize,PULONG64 Displacement) PURE;
3511 STDMETHOD(GetOffsetByLine)(THIS_ ULONG Line,PCSTR File,PULONG64 Offset) PURE;
3512 STDMETHOD(GetNumberModules)(THIS_ PULONG Loaded,PULONG Unloaded) PURE;
3513 STDMETHOD(GetModuleByIndex)(THIS_ ULONG Index,PULONG64 Base) PURE;
3514 STDMETHOD(GetModuleByModuleName)(THIS_ PCSTR Name,ULONG StartIndex,PULONG Index,PULONG64 Base) PURE;
3515 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 Offset,ULONG StartIndex,PULONG Index,PULONG64 Base) PURE;
3516 STDMETHOD(GetModuleNames)(THIS_ ULONG Index,ULONG64 Base,PSTR ImageNameBuffer,ULONG ImageNameBufferSize,PULONG ImageNameSize,PSTR ModuleNameBuffer,ULONG ModuleNameBufferSize,PULONG ModuleNameSize,PSTR LoadedImageNameBuffer,ULONG LoadedImageNameBufferSize,PULONG LoadedImageNameSize) PURE;
3517 STDMETHOD(GetModuleParameters)(THIS_ ULONG Count,PULONG64 Bases,ULONG Start,PDEBUG_MODULE_PARAMETERS Params) PURE;
3518 STDMETHOD(GetSymbolModule)(THIS_ PCSTR Symbol,PULONG64 Base) PURE;
3519 STDMETHOD(GetTypeName)(THIS_ ULONG64 Module,ULONG TypeId,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize) PURE;
3520 STDMETHOD(GetTypeId)(THIS_ ULONG64 Module,PCSTR Name,PULONG TypeId) PURE;
3521 STDMETHOD(GetTypeSize)(THIS_ ULONG64 Module,ULONG TypeId,PULONG Size) PURE;
3522 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 Module,ULONG TypeId,PCSTR Field,PULONG Offset) PURE;
3523 STDMETHOD(GetSymbolTypeId)(THIS_ PCSTR Symbol,PULONG TypeId,PULONG64 Module) PURE;
3524 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 Offset,PULONG TypeId,PULONG64 Module) PURE;
3525 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
3526 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
3527 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG64 Module,ULONG TypeId,ULONG Flags) PURE;
3528 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
3529 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
3530 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG64 Module,ULONG TypeId,ULONG Flags) PURE;
3531 STDMETHOD(GetScope)(THIS_ PULONG64 InstructionOffset,PDEBUG_STACK_FRAME ScopeFrame,PVOID ScopeContext,ULONG ScopeContextSize) PURE;
3532 STDMETHOD(SetScope)(THIS_ ULONG64 InstructionOffset,PDEBUG_STACK_FRAME ScopeFrame,PVOID ScopeContext,ULONG ScopeContextSize) PURE;
3533 STDMETHOD(ResetScope)(THIS) PURE;
3534 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG Flags,PDEBUG_SYMBOL_GROUP Update,PDEBUG_SYMBOL_GROUP *Symbols) PURE;
3535 STDMETHOD(CreateSymbolGroup)(THIS_ PDEBUG_SYMBOL_GROUP *Group) PURE;
3536 STDMETHOD(StartSymbolMatch)(THIS_ PCSTR Pattern,PULONG64 Handle) PURE;
3537 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 Handle,PSTR Buffer,ULONG BufferSize,PULONG MatchSize,PULONG64 Offset) PURE;
3538 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 Handle) PURE;
3539 STDMETHOD(Reload)(THIS_ PCSTR Module) PURE;
3540 STDMETHOD(GetSymbolPath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE;
3541 STDMETHOD(SetSymbolPath)(THIS_ PCSTR Path) PURE;
3542 STDMETHOD(AppendSymbolPath)(THIS_ PCSTR Addition) PURE;
3543 STDMETHOD(GetImagePath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE;
3544 STDMETHOD(SetImagePath)(THIS_ PCSTR Path) PURE;
3545 STDMETHOD(AppendImagePath)(THIS_ PCSTR Addition) PURE;
3546 STDMETHOD(GetSourcePath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE;
3547 STDMETHOD(GetSourcePathElement)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ElementSize) PURE;
3548 STDMETHOD(SetSourcePath)(THIS_ PCSTR Path) PURE;
3549 STDMETHOD(AppendSourcePath)(THIS_ PCSTR Addition) PURE;
3550 STDMETHOD(FindSourceFile)(THIS_ ULONG StartElement,PCSTR File,ULONG Flags,PULONG FoundElement,PSTR Buffer,ULONG BufferSize,PULONG FoundSize) PURE;
3551 STDMETHOD(GetSourceFileLineOffsets)(THIS_ PCSTR File,PULONG64 Buffer,ULONG BufferLines,PULONG FileLines) PURE;
3552 };
3553#ifdef __CRT_UUID_DECL
3554__CRT_UUID_DECL(IDebugSymbols,0x8c31e98c,0x983a,0x48a5,0x90,0x16,0x6f,0xe5,0xd6,0x67,0xa9,0x50)
3555#endif
3556
3557#define DEBUG_MODNAME_IMAGE 0x00000000
3558#define DEBUG_MODNAME_MODULE 0x00000001
3559#define DEBUG_MODNAME_LOADED_IMAGE 0x00000002
3560#define DEBUG_MODNAME_SYMBOL_FILE 0x00000003
3561#define DEBUG_MODNAME_MAPPED_IMAGE 0x00000004
3562
3563#define DEBUG_TYPEOPTS_UNICODE_DISPLAY 0x00000001
3564#define DEBUG_TYPEOPTS_LONGSTATUS_DISPLAY 0x00000002
3565#define DEBUG_TYPEOPTS_FORCERADIX_OUTPUT 0x00000004
3566
3567#undef INTERFACE
3568#define INTERFACE IDebugSymbols2
3569 DECLARE_INTERFACE_(IDebugSymbols2,IUnknown) {
3570 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
3571 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
3572 STDMETHOD_(ULONG,Release)(THIS) PURE;
3573 STDMETHOD(GetSymbolOptions)(THIS_ PULONG Options) PURE;
3574 STDMETHOD(AddSymbolOptions)(THIS_ ULONG Options) PURE;
3575 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG Options) PURE;
3576 STDMETHOD(SetSymbolOptions)(THIS_ ULONG Options) PURE;
3577 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 Offset,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PULONG64 Displacement) PURE;
3578 STDMETHOD(GetOffsetByName)(THIS_ PCSTR Symbol,PULONG64 Offset) PURE;
3579 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 Offset,LONG Delta,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PULONG64 Displacement) PURE;
3580 STDMETHOD(GetLineByOffset)(THIS_ ULONG64 Offset,PULONG Line,PSTR FileBuffer,ULONG FileBufferSize,PULONG FileSize,PULONG64 Displacement) PURE;
3581 STDMETHOD(GetOffsetByLine)(THIS_ ULONG Line,PCSTR File,PULONG64 Offset) PURE;
3582 STDMETHOD(GetNumberModules)(THIS_ PULONG Loaded,PULONG Unloaded) PURE;
3583 STDMETHOD(GetModuleByIndex)(THIS_ ULONG Index,PULONG64 Base) PURE;
3584 STDMETHOD(GetModuleByModuleName)(THIS_ PCSTR Name,ULONG StartIndex,PULONG Index,PULONG64 Base) PURE;
3585 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 Offset,ULONG StartIndex,PULONG Index,PULONG64 Base) PURE;
3586 STDMETHOD(GetModuleNames)(THIS_ ULONG Index,ULONG64 Base,PSTR ImageNameBuffer,ULONG ImageNameBufferSize,PULONG ImageNameSize,PSTR ModuleNameBuffer,ULONG ModuleNameBufferSize,PULONG ModuleNameSize,PSTR LoadedImageNameBuffer,ULONG LoadedImageNameBufferSize,PULONG LoadedImageNameSize) PURE;
3587 STDMETHOD(GetModuleParameters)(THIS_ ULONG Count,PULONG64 Bases,ULONG Start,PDEBUG_MODULE_PARAMETERS Params) PURE;
3588 STDMETHOD(GetSymbolModule)(THIS_ PCSTR Symbol,PULONG64 Base) PURE;
3589 STDMETHOD(GetTypeName)(THIS_ ULONG64 Module,ULONG TypeId,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize) PURE;
3590 STDMETHOD(GetTypeId)(THIS_ ULONG64 Module,PCSTR Name,PULONG TypeId) PURE;
3591 STDMETHOD(GetTypeSize)(THIS_ ULONG64 Module,ULONG TypeId,PULONG Size) PURE;
3592 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 Module,ULONG TypeId,PCSTR Field,PULONG Offset) PURE;
3593 STDMETHOD(GetSymbolTypeId)(THIS_ PCSTR Symbol,PULONG TypeId,PULONG64 Module) PURE;
3594 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 Offset,PULONG TypeId,PULONG64 Module) PURE;
3595 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
3596 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
3597 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG64 Module,ULONG TypeId,ULONG Flags) PURE;
3598 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE;
3599 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE;
3600 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG64 Module,ULONG TypeId,ULONG Flags) PURE;
3601 STDMETHOD(GetScope)(THIS_ PULONG64 InstructionOffset,PDEBUG_STACK_FRAME ScopeFrame,PVOID ScopeContext,ULONG ScopeContextSize) PURE;
3602 STDMETHOD(SetScope)(THIS_ ULONG64 InstructionOffset,PDEBUG_STACK_FRAME ScopeFrame,PVOID ScopeContext,ULONG ScopeContextSize) PURE;
3603 STDMETHOD(ResetScope)(THIS) PURE;
3604 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG Flags,PDEBUG_SYMBOL_GROUP Update,PDEBUG_SYMBOL_GROUP *Symbols) PURE;
3605 STDMETHOD(CreateSymbolGroup)(THIS_ PDEBUG_SYMBOL_GROUP *Group) PURE;
3606 STDMETHOD(StartSymbolMatch)(THIS_ PCSTR Pattern,PULONG64 Handle) PURE;
3607 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 Handle,PSTR Buffer,ULONG BufferSize,PULONG MatchSize,PULONG64 Offset) PURE;
3608 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 Handle) PURE;
3609 STDMETHOD(Reload)(THIS_ PCSTR Module) PURE;
3610 STDMETHOD(GetSymbolPath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE;
3611 STDMETHOD(SetSymbolPath)(THIS_ PCSTR Path) PURE;
3612 STDMETHOD(AppendSymbolPath)(THIS_ PCSTR Addition) PURE;
3613 STDMETHOD(GetImagePath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE;
3614 STDMETHOD(SetImagePath)(THIS_ PCSTR Path) PURE;
3615 STDMETHOD(AppendImagePath)(THIS_ PCSTR Addition) PURE;
3616 STDMETHOD(GetSourcePath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE;
3617 STDMETHOD(GetSourcePathElement)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ElementSize) PURE;
3618 STDMETHOD(SetSourcePath)(THIS_ PCSTR Path) PURE;
3619 STDMETHOD(AppendSourcePath)(THIS_ PCSTR Addition) PURE;
3620 STDMETHOD(FindSourceFile)(THIS_ ULONG StartElement,PCSTR File,ULONG Flags,PULONG FoundElement,PSTR Buffer,ULONG BufferSize,PULONG FoundSize) PURE;
3621 STDMETHOD(GetSourceFileLineOffsets)(THIS_ PCSTR File,PULONG64 Buffer,ULONG BufferLines,PULONG FileLines) PURE;
3622 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG Index,ULONG64 Base,PCSTR Item,PVOID Buffer,ULONG BufferSize,PULONG VerInfoSize) PURE;
3623 STDMETHOD(GetModuleNameString)(THIS_ ULONG Which,ULONG Index,ULONG64 Base,PSTR Buffer,ULONG BufferSize,PULONG NameSize) PURE;
3624 STDMETHOD(GetConstantName)(THIS_ ULONG64 Module,ULONG TypeId,ULONG64 Value,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize) PURE;
3625 STDMETHOD(GetFieldName)(THIS_ ULONG64 Module,ULONG TypeId,ULONG FieldIndex,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize) PURE;
3626 STDMETHOD(GetTypeOptions)(THIS_ PULONG Options) PURE;
3627 STDMETHOD(AddTypeOptions)(THIS_ ULONG Options) PURE;
3628 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG Options) PURE;
3629 STDMETHOD(SetTypeOptions)(THIS_ ULONG Options) PURE;
3630 };
3631#ifdef __CRT_UUID_DECL
3632__CRT_UUID_DECL(IDebugSymbols2,0x3a707211,0xafdd,0x4495,0xad,0x4f,0x56,0xfe,0xcd,0xf8,0x16,0x3f)
3633#endif
3634
3635#define DEBUG_GETMOD_DEFAULT 0x00000000
3636#define DEBUG_GETMOD_NO_LOADED_MODULES 0x00000001
3637#define DEBUG_GETMOD_NO_UNLOADED_MODULES 0x00000002
3638
3639#define DEBUG_ADDSYNTHMOD_DEFAULT 0x00000000
3640#define DEBUG_ADDSYNTHMOD_ZEROBASE 0x00000001
3641
3642#define DEBUG_ADDSYNTHSYM_DEFAULT 0x00000000
3643
3644#define DEBUG_OUTSYM_DEFAULT 0x00000000
3645#define DEBUG_OUTSYM_FORCE_OFFSET 0x00000001
3646#define DEBUG_OUTSYM_SOURCE_LINE 0x00000002
3647#define DEBUG_OUTSYM_ALLOW_DISPLACEMENT 0x00000004
3648
3649#define DEBUG_GETFNENT_DEFAULT 0x00000000
3650#define DEBUG_GETFNENT_RAW_ENTRY_ONLY 0x00000001
3651
3652 typedef struct _DEBUG_MODULE_AND_ID {
3653 ULONG64 ModuleBase;
3654 ULONG64 Id;
3655 } DEBUG_MODULE_AND_ID,*PDEBUG_MODULE_AND_ID;
3656
3657#define DEBUG_SOURCE_IS_STATEMENT 0x00000001
3658
3659#define DEBUG_GSEL_DEFAULT 0x00000000
3660#define DEBUG_GSEL_NO_SYMBOL_LOADS 0x00000001
3661#define DEBUG_GSEL_ALLOW_LOWER 0x00000002
3662#define DEBUG_GSEL_ALLOW_HIGHER 0x00000004
3663#define DEBUG_GSEL_NEAREST_ONLY 0x00000008
3664#define DEBUG_GSEL_INLINE_CALLSITE 0x00000010
3665
3666 typedef struct _DEBUG_SYMBOL_SOURCE_ENTRY {
3667 ULONG64 ModuleBase;
3668 ULONG64 Offset;
3669 ULONG64 FileNameId;
3670 ULONG64 EngineInternal;
3671 ULONG Size;
3672 ULONG Flags;
3673 ULONG FileNameSize;
3674 ULONG StartLine;
3675 ULONG EndLine;
3676 ULONG StartColumn;
3677 ULONG EndColumn;
3678 ULONG Reserved;
3679 } DEBUG_SYMBOL_SOURCE_ENTRY,*PDEBUG_SYMBOL_SOURCE_ENTRY;
3680
3681#undef INTERFACE
3682#define INTERFACE IDebugSymbols3
3683 DECLARE_INTERFACE_(IDebugSymbols3, IUnknown) {
3684 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3685 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3686 STDMETHOD_(ULONG, Release)(THIS) PURE;
3687 STDMETHOD(GetSymbolOptions)(THIS_ PULONG Options) PURE;
3688 STDMETHOD(AddSymbolOptions)(THIS_ ULONG Options) PURE;
3689 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG Options) PURE;
3690 STDMETHOD(SetSymbolOptions)(THIS_ ULONG Options) PURE;
3691 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 Offset, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3692 STDMETHOD(GetOffsetByName)(THIS_ PCSTR Symbol, PULONG64 Offset) PURE;
3693 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 Offset, LONG Delta, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3694 STDMETHOD(GetLineByOffset)(THIS_ ULONG64 Offset, PULONG Line, PSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
3695 STDMETHOD(GetOffsetByLine)(THIS_ ULONG Line, PCSTR File, PULONG64 Offset) PURE;
3696 STDMETHOD(GetNumberModules)(THIS_ PULONG Loaded, PULONG Unloaded) PURE;
3697 STDMETHOD(GetModuleByIndex)(THIS_ ULONG Index, PULONG64 Base) PURE;
3698 STDMETHOD(GetModuleByModuleName)(THIS_ PCSTR Name, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
3699 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 Offset, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
3700 STDMETHOD(GetModuleNames)(THIS_ ULONG Index, ULONG64 Base, PSTR ImageNameBuffer, ULONG ImageNameBufferSize, PULONG ImageNameSize, PSTR ModuleNameBuffer, ULONG ModuleNameBufferSize, PULONG ModuleNameSize, PSTR LoadedImageNameBuffer, ULONG LoadedImageNameBufferSize, PULONG LoadedImageNameSize) PURE;
3701 STDMETHOD(GetModuleParameters)(THIS_ ULONG Count, PULONG64 Bases, ULONG Start, PDEBUG_MODULE_PARAMETERS Params) PURE;
3702 STDMETHOD(GetSymbolModule)(THIS_ PCSTR Symbol, PULONG64 Base) PURE;
3703 STDMETHOD(GetTypeName)(THIS_ ULONG64 Module, ULONG TypeId, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3704 STDMETHOD(GetTypeId)(THIS_ ULONG64 Module, PCSTR Name, PULONG TypeId) PURE;
3705 STDMETHOD(GetTypeSize)(THIS_ ULONG64 Module, ULONG TypeId, PULONG Size) PURE;
3706 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 Module, ULONG TypeId, PCSTR Field, PULONG Offset) PURE;
3707 STDMETHOD(GetSymbolTypeId)(THIS_ PCSTR Symbol, PULONG TypeId, PULONG64 Module) PURE;
3708 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 Offset, PULONG TypeId, PULONG64 Module) PURE;
3709 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3710 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3711 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG64 Module, ULONG TypeId, ULONG Flags) PURE;
3712 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3713 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3714 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG64 Module, ULONG TypeId, ULONG Flags) PURE;
3715 STDMETHOD(GetScope)(THIS_ PULONG64 InstructionOffset, PDEBUG_STACK_FRAME ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
3716 STDMETHOD(SetScope)(THIS_ ULONG64 InstructionOffset, PDEBUG_STACK_FRAME ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
3717 STDMETHOD(ResetScope)(THIS) PURE;
3718 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG Flags, PDEBUG_SYMBOL_GROUP Update, PDEBUG_SYMBOL_GROUP *Symbols) PURE;
3719 STDMETHOD(CreateSymbolGroup)(THIS_ PDEBUG_SYMBOL_GROUP *Group) PURE;
3720 STDMETHOD(StartSymbolMatch)(THIS_ PCSTR Pattern, PULONG64 Handle) PURE;
3721 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 Handle, PSTR Buffer, ULONG BufferSize, PULONG MatchSize, PULONG64 Offset) PURE;
3722 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 Handle) PURE;
3723 STDMETHOD(Reload)(THIS_ PCSTR Module) PURE;
3724 STDMETHOD(GetSymbolPath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3725 STDMETHOD(SetSymbolPath)(THIS_ PCSTR Path) PURE;
3726 STDMETHOD(AppendSymbolPath)(THIS_ PCSTR Addition) PURE;
3727 STDMETHOD(GetImagePath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3728 STDMETHOD(SetImagePath)(THIS_ PCSTR Path) PURE;
3729 STDMETHOD(AppendImagePath)(THIS_ PCSTR Addition) PURE;
3730 STDMETHOD(GetSourcePath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3731 STDMETHOD(GetSourcePathElement)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG ElementSize) PURE;
3732 STDMETHOD(SetSourcePath)(THIS_ PCSTR Path) PURE;
3733 STDMETHOD(AppendSourcePath)(THIS_ PCSTR Addition) PURE;
3734 STDMETHOD(FindSourceFile)(THIS_ ULONG StartElement, PCSTR File, ULONG Flags, PULONG FoundElement, PSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
3735 STDMETHOD(GetSourceFileLineOffsets)(THIS_ PCSTR File, PULONG64 Buffer, ULONG BufferLines, PULONG FileLines) PURE;
3736 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG Index, ULONG64 Base, PCSTR Item, PVOID Buffer, ULONG BufferSize, PULONG VerInfoSize) PURE;
3737 STDMETHOD(GetModuleNameString)(THIS_ ULONG Which, ULONG Index, ULONG64 Base, PSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3738 STDMETHOD(GetConstantName)(THIS_ ULONG64 Module, ULONG TypeId, ULONG64 Value, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3739 STDMETHOD(GetFieldName)(THIS_ ULONG64 Module, ULONG TypeId, ULONG FieldIndex, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3740 STDMETHOD(GetTypeOptions)(THIS_ PULONG Options) PURE;
3741 STDMETHOD(AddTypeOptions)(THIS_ ULONG Options) PURE;
3742 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG Options) PURE;
3743 STDMETHOD(SetTypeOptions)(THIS_ ULONG Options) PURE;
3744 STDMETHOD(GetNameByOffsetWide)(THIS_ ULONG64 Offset, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3745 STDMETHOD(GetOffsetByNameWide)(THIS_ PCWSTR Symbol, PULONG64 Offset) PURE;
3746 STDMETHOD(GetNearNameByOffsetWide)(THIS_ ULONG64 Offset, LONG Delta, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3747 STDMETHOD(GetLineByOffsetWide)(THIS_ ULONG64 Offset, PULONG Line, PWSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
3748 STDMETHOD(GetOffsetByLineWide)(THIS_ ULONG Line, PCWSTR File, PULONG64 Offset) PURE;
3749 STDMETHOD(GetModuleByModuleNameWide)(THIS_ PCWSTR Name, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
3750 STDMETHOD(GetSymbolModuleWide)(THIS_ PCWSTR Symbol, PULONG64 Base) PURE;
3751 STDMETHOD(GetTypeNameWide)(THIS_ ULONG64 Module, ULONG TypeId, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3752 STDMETHOD(GetTypeIdWide)(THIS_ ULONG64 Module, PCWSTR Name, PULONG TypeId) PURE;
3753 STDMETHOD(GetFieldOffsetWide)(THIS_ ULONG64 Module, ULONG TypeId, PCWSTR Field, PULONG Offset) PURE;
3754 STDMETHOD(GetSymbolTypeIdWide)(THIS_ PCWSTR Symbol, PULONG TypeId, PULONG64 Module) PURE;
3755 STDMETHOD(GetScopeSymbolGroup2)(THIS_ ULONG Flags, PDEBUG_SYMBOL_GROUP2 Update, PDEBUG_SYMBOL_GROUP2 *Symbols) PURE;
3756 STDMETHOD(CreateSymbolGroup2)(THIS_ PDEBUG_SYMBOL_GROUP2 *Group) PURE;
3757 STDMETHOD(StartSymbolMatchWide)(THIS_ PCWSTR Pattern, PULONG64 Handle) PURE;
3758 STDMETHOD(GetNextSymbolMatchWide)(THIS_ ULONG64 Handle, PWSTR Buffer, ULONG BufferSize, PULONG MatchSize, PULONG64 Offset) PURE;
3759 STDMETHOD(ReloadWide)(THIS_ PCWSTR Module) PURE;
3760 STDMETHOD(GetSymbolPathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3761 STDMETHOD(SetSymbolPathWide)(THIS_ PCWSTR Path) PURE;
3762 STDMETHOD(AppendSymbolPathWide)(THIS_ PCWSTR Addition) PURE;
3763 STDMETHOD(GetImagePathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3764 STDMETHOD(SetImagePathWide)(THIS_ PCWSTR Path) PURE;
3765 STDMETHOD(AppendImagePathWide)(THIS_ PCWSTR Addition) PURE;
3766 STDMETHOD(GetSourcePathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3767 STDMETHOD(GetSourcePathElementWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG ElementSize) PURE;
3768 STDMETHOD(SetSourcePathWide)(THIS_ PCWSTR Path) PURE;
3769 STDMETHOD(AppendSourcePathWide)(THIS_ PCWSTR Addition) PURE;
3770 STDMETHOD(FindSourceFileWide)(THIS_ ULONG StartElement, PCWSTR File, ULONG Flags, PULONG FoundElement, PWSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
3771 STDMETHOD(GetSourceFileLineOffsetsWide)(THIS_ PCWSTR File, PULONG64 Buffer, ULONG BufferLines, PULONG FileLines) PURE;
3772 STDMETHOD(GetModuleVersionInformationWide)(THIS_ ULONG Index, ULONG64 Base, PCWSTR Item, PVOID Buffer, ULONG BufferSize, PULONG VerInfoSize) PURE;
3773 STDMETHOD(GetModuleNameStringWide)(THIS_ ULONG Which, ULONG Index, ULONG64 Base, PWSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3774 STDMETHOD(GetConstantNameWide)(THIS_ ULONG64 Module, ULONG TypeId, ULONG64 Value, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3775 STDMETHOD(GetFieldNameWide)(THIS_ ULONG64 Module, ULONG TypeId, ULONG FieldIndex, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3776 STDMETHOD(IsManagedModule)(THIS_ ULONG Index, ULONG64 Base) PURE;
3777 STDMETHOD(GetModuleByModuleName2)(THIS_ PCSTR Name, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
3778 STDMETHOD(GetModuleByModuleName2Wide)(THIS_ PCWSTR Name, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
3779 STDMETHOD(GetModuleByOffset2)(THIS_ ULONG64 Offset, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
3780 STDMETHOD(AddSyntheticModule)(THIS_ ULONG64 Base, ULONG Size, PCSTR ImagePath, PCSTR ModuleName, ULONG Flags) PURE;
3781 STDMETHOD(AddSyntheticModuleWide)(THIS_ ULONG64 Base, ULONG Size, PCWSTR ImagePath, PCWSTR ModuleName, ULONG Flags) PURE;
3782 STDMETHOD(RemoveSyntheticModule)(THIS_ ULONG64 Base) PURE;
3783 STDMETHOD(GetCurrentScopeFrameIndex)(THIS_ PULONG Index) PURE;
3784 STDMETHOD(SetScopeFrameByIndex)(THIS_ ULONG Index) PURE;
3785 STDMETHOD(SetScopeFromJitDebugInfo)(THIS_ ULONG OutputControl, ULONG64 InfoOffset) PURE;
3786 STDMETHOD(SetScopeFromStoredEvent)(THIS) PURE;
3787 STDMETHOD(OutputSymbolByOffset)(THIS_ ULONG OutputControl, ULONG Flags, ULONG64 Offset) PURE;
3788 STDMETHOD(GetFunctionEntryByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PVOID Buffer, ULONG BufferSize, PULONG BufferNeeded) PURE;
3789 STDMETHOD(GetFieldTypeAndOffset)(THIS_ ULONG64 Module, ULONG ContainerTypeId, PCSTR Field, PULONG FieldTypeId, PULONG Offset) PURE;
3790 STDMETHOD(GetFieldTypeAndOffsetWide)(THIS_ ULONG64 Module, ULONG ContainerTypeId, PCWSTR Field, PULONG FieldTypeId, PULONG Offset) PURE;
3791 STDMETHOD(AddSyntheticSymbol)(THIS_ ULONG64 Offset, ULONG Size, PCSTR Name, ULONG Flags, PDEBUG_MODULE_AND_ID Id) PURE;
3792 STDMETHOD(AddSyntheticSymbolWide)(THIS_ ULONG64 Offset, ULONG Size, PCWSTR Name, ULONG Flags, PDEBUG_MODULE_AND_ID Id) PURE;
3793 STDMETHOD(RemoveSyntheticSymbol)(THIS_ PDEBUG_MODULE_AND_ID Id) PURE;
3794 STDMETHOD(GetSymbolEntriesByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, PULONG64 Displacements, ULONG IdsCount, PULONG Entries) PURE;
3795 STDMETHOD(GetSymbolEntriesByName)(THIS_ PCSTR Symbol, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, ULONG IdsCount, PULONG Entries) PURE;
3796 STDMETHOD(GetSymbolEntriesByNameWide)(THIS_ PCWSTR Symbol, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, ULONG IdsCount, PULONG Entries) PURE;
3797 STDMETHOD(GetSymbolEntryByToken)(THIS_ ULONG64 ModuleBase, ULONG Token, PDEBUG_MODULE_AND_ID Id) PURE;
3798 STDMETHOD(GetSymbolEntryInformation)(THIS_ PDEBUG_MODULE_AND_ID Id, PDEBUG_SYMBOL_ENTRY Info) PURE;
3799 STDMETHOD(GetSymbolEntryString)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
3800 STDMETHOD(GetSymbolEntryStringWide)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
3801 STDMETHOD(GetSymbolEntryOffsetRegions)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Flags, PDEBUG_OFFSET_REGION Regions, ULONG RegionsCount, PULONG RegionsAvail) PURE;
3802 STDMETHOD(GetSymbolEntryBySymbolEntry)(THIS_ PDEBUG_MODULE_AND_ID FromId, ULONG Flags, PDEBUG_MODULE_AND_ID ToId) PURE;
3803 STDMETHOD(GetSourceEntriesByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
3804 STDMETHOD(GetSourceEntriesByLine)(THIS_ ULONG Line, PCSTR File, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
3805 STDMETHOD(GetSourceEntriesByLineWide)(THIS_ ULONG Line, PCWSTR File, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
3806 STDMETHOD(GetSourceEntryString)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
3807 STDMETHOD(GetSourceEntryStringWide)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
3808 STDMETHOD(GetSourceEntryOffsetRegions)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Flags, PDEBUG_OFFSET_REGION Regions, ULONG RegionsCount, PULONG RegionsAvail) PURE;
3809 STDMETHOD(GetSourceEntryBySourceEntry)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY FromEntry, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY ToEntry) PURE;
3810 };
3811#ifdef __CRT_UUID_DECL
3812__CRT_UUID_DECL(IDebugSymbols3,0xf02fbecc,0x50ac,0x4f36,0x9a,0xd9,0xc9,0x75,0xe8,0xf3,0x2f,0xf8)
3813#endif
3814
3815#undef INTERFACE
3816#define INTERFACE IDebugSymbols4
3817 DECLARE_INTERFACE_(IDebugSymbols4, IUnknown) {
3818 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3819 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3820 STDMETHOD_(ULONG, Release)(THIS) PURE;
3821 STDMETHOD(GetSymbolOptions)(THIS_ PULONG Options) PURE;
3822 STDMETHOD(AddSymbolOptions)(THIS_ ULONG Options) PURE;
3823 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG Options) PURE;
3824 STDMETHOD(SetSymbolOptions)(THIS_ ULONG Options) PURE;
3825 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 Offset, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3826 STDMETHOD(GetOffsetByName)(THIS_ PCSTR Symbol, PULONG64 Offset) PURE;
3827 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 Offset, LONG Delta, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3828 STDMETHOD(GetLineByOffset)(THIS_ ULONG64 Offset, PULONG Line, PSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
3829 STDMETHOD(GetOffsetByLine)(THIS_ ULONG Line, PCSTR File, PULONG64 Offset) PURE;
3830 STDMETHOD(GetNumberModules)(THIS_ PULONG Loaded, PULONG Unloaded) PURE;
3831 STDMETHOD(GetModuleByIndex)(THIS_ ULONG Index, PULONG64 Base) PURE;
3832 STDMETHOD(GetModuleByModuleName)(THIS_ PCSTR Name, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
3833 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 Offset, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
3834 STDMETHOD(GetModuleNames)(THIS_ ULONG Index, ULONG64 Base, PSTR ImageNameBuffer, ULONG ImageNameBufferSize, PULONG ImageNameSize, PSTR ModuleNameBuffer, ULONG ModuleNameBufferSize, PULONG ModuleNameSize, PSTR LoadedImageNameBuffer, ULONG LoadedImageNameBufferSize, PULONG LoadedImageNameSize) PURE;
3835 STDMETHOD(GetModuleParameters)(THIS_ ULONG Count, PULONG64 Bases, ULONG Start, PDEBUG_MODULE_PARAMETERS Params) PURE;
3836 STDMETHOD(GetSymbolModule)(THIS_ PCSTR Symbol, PULONG64 Base) PURE;
3837 STDMETHOD(GetTypeName)(THIS_ ULONG64 Module, ULONG TypeId, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3838 STDMETHOD(GetTypeId)(THIS_ ULONG64 Module, PCSTR Name, PULONG TypeId) PURE;
3839 STDMETHOD(GetTypeSize)(THIS_ ULONG64 Module, ULONG TypeId, PULONG Size) PURE;
3840 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 Module, ULONG TypeId, PCSTR Field, PULONG Offset) PURE;
3841 STDMETHOD(GetSymbolTypeId)(THIS_ PCSTR Symbol, PULONG TypeId, PULONG64 Module) PURE;
3842 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 Offset, PULONG TypeId, PULONG64 Module) PURE;
3843 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3844 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3845 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG64 Module, ULONG TypeId, ULONG Flags) PURE;
3846 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3847 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3848 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG64 Module, ULONG TypeId, ULONG Flags) PURE;
3849 STDMETHOD(GetScope)(THIS_ PULONG64 InstructionOffset, PDEBUG_STACK_FRAME ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
3850 STDMETHOD(SetScope)(THIS_ ULONG64 InstructionOffset, PDEBUG_STACK_FRAME ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
3851 STDMETHOD(ResetScope)(THIS) PURE;
3852 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG Flags, PDEBUG_SYMBOL_GROUP Update, PDEBUG_SYMBOL_GROUP *Symbols) PURE;
3853 STDMETHOD(CreateSymbolGroup)(THIS_ PDEBUG_SYMBOL_GROUP *Group) PURE;
3854 STDMETHOD(StartSymbolMatch)(THIS_ PCSTR Pattern, PULONG64 Handle) PURE;
3855 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 Handle, PSTR Buffer, ULONG BufferSize, PULONG MatchSize, PULONG64 Offset) PURE;
3856 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 Handle) PURE;
3857 STDMETHOD(Reload)(THIS_ PCSTR Module) PURE;
3858 STDMETHOD(GetSymbolPath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3859 STDMETHOD(SetSymbolPath)(THIS_ PCSTR Path) PURE;
3860 STDMETHOD(AppendSymbolPath)(THIS_ PCSTR Addition) PURE;
3861 STDMETHOD(GetImagePath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3862 STDMETHOD(SetImagePath)(THIS_ PCSTR Path) PURE;
3863 STDMETHOD(AppendImagePath)(THIS_ PCSTR Addition) PURE;
3864 STDMETHOD(GetSourcePath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3865 STDMETHOD(GetSourcePathElement)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG ElementSize) PURE;
3866 STDMETHOD(SetSourcePath)(THIS_ PCSTR Path) PURE;
3867 STDMETHOD(AppendSourcePath)(THIS_ PCSTR Addition) PURE;
3868 STDMETHOD(FindSourceFile)(THIS_ ULONG StartElement, PCSTR File, ULONG Flags, PULONG FoundElement, PSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
3869 STDMETHOD(GetSourceFileLineOffsets)(THIS_ PCSTR File, PULONG64 Buffer, ULONG BufferLines, PULONG FileLines) PURE;
3870 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG Index, ULONG64 Base, PCSTR Item, PVOID Buffer, ULONG BufferSize, PULONG VerInfoSize) PURE;
3871 STDMETHOD(GetModuleNameString)(THIS_ ULONG Which, ULONG Index, ULONG64 Base, PSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3872 STDMETHOD(GetConstantName)(THIS_ ULONG64 Module, ULONG TypeId, ULONG64 Value, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3873 STDMETHOD(GetFieldName)(THIS_ ULONG64 Module, ULONG TypeId, ULONG FieldIndex, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3874 STDMETHOD(GetTypeOptions)(THIS_ PULONG Options) PURE;
3875 STDMETHOD(AddTypeOptions)(THIS_ ULONG Options) PURE;
3876 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG Options) PURE;
3877 STDMETHOD(SetTypeOptions)(THIS_ ULONG Options) PURE;
3878 STDMETHOD(GetNameByOffsetWide)(THIS_ ULONG64 Offset, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3879 STDMETHOD(GetOffsetByNameWide)(THIS_ PCWSTR Symbol, PULONG64 Offset) PURE;
3880 STDMETHOD(GetNearNameByOffsetWide)(THIS_ ULONG64 Offset, LONG Delta, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3881 STDMETHOD(GetLineByOffsetWide)(THIS_ ULONG64 Offset, PULONG Line, PWSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
3882 STDMETHOD(GetOffsetByLineWide)(THIS_ ULONG Line, PCWSTR File, PULONG64 Offset) PURE;
3883 STDMETHOD(GetModuleByModuleNameWide)(THIS_ PCWSTR Name, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
3884 STDMETHOD(GetSymbolModuleWide)(THIS_ PCWSTR Symbol, PULONG64 Base) PURE;
3885 STDMETHOD(GetTypeNameWide)(THIS_ ULONG64 Module, ULONG TypeId, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3886 STDMETHOD(GetTypeIdWide)(THIS_ ULONG64 Module, PCWSTR Name, PULONG TypeId) PURE;
3887 STDMETHOD(GetFieldOffsetWide)(THIS_ ULONG64 Module, ULONG TypeId, PCWSTR Field, PULONG Offset) PURE;
3888 STDMETHOD(GetSymbolTypeIdWide)(THIS_ PCWSTR Symbol, PULONG TypeId, PULONG64 Module) PURE;
3889 STDMETHOD(GetScopeSymbolGroup2)(THIS_ ULONG Flags, PDEBUG_SYMBOL_GROUP2 Update, PDEBUG_SYMBOL_GROUP2 *Symbols) PURE;
3890 STDMETHOD(CreateSymbolGroup2)(THIS_ PDEBUG_SYMBOL_GROUP2 *Group) PURE;
3891 STDMETHOD(StartSymbolMatchWide)(THIS_ PCWSTR Pattern, PULONG64 Handle) PURE;
3892 STDMETHOD(GetNextSymbolMatchWide)(THIS_ ULONG64 Handle, PWSTR Buffer, ULONG BufferSize, PULONG MatchSize, PULONG64 Offset) PURE;
3893 STDMETHOD(ReloadWide)(THIS_ PCWSTR Module) PURE;
3894 STDMETHOD(GetSymbolPathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3895 STDMETHOD(SetSymbolPathWide)(THIS_ PCWSTR Path) PURE;
3896 STDMETHOD(AppendSymbolPathWide)(THIS_ PCWSTR Addition) PURE;
3897 STDMETHOD(GetImagePathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3898 STDMETHOD(SetImagePathWide)(THIS_ PCWSTR Path) PURE;
3899 STDMETHOD(AppendImagePathWide)(THIS_ PCWSTR Addition) PURE;
3900 STDMETHOD(GetSourcePathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
3901 STDMETHOD(GetSourcePathElementWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG ElementSize) PURE;
3902 STDMETHOD(SetSourcePathWide)(THIS_ PCWSTR Path) PURE;
3903 STDMETHOD(AppendSourcePathWide)(THIS_ PCWSTR Addition) PURE;
3904 STDMETHOD(FindSourceFileWide)(THIS_ ULONG StartElement, PCWSTR File, ULONG Flags, PULONG FoundElement, PWSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
3905 STDMETHOD(GetSourceFileLineOffsetsWide)(THIS_ PCWSTR File, PULONG64 Buffer, ULONG BufferLines, PULONG FileLines) PURE;
3906 STDMETHOD(GetModuleVersionInformationWide)(THIS_ ULONG Index, ULONG64 Base, PCWSTR Item, PVOID Buffer, ULONG BufferSize, PULONG VerInfoSize) PURE;
3907 STDMETHOD(GetModuleNameStringWide)(THIS_ ULONG Which, ULONG Index, ULONG64 Base, PWSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
3908 STDMETHOD(GetConstantNameWide)(THIS_ ULONG64 Module, ULONG TypeId, ULONG64 Value, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3909 STDMETHOD(GetFieldNameWide)(THIS_ ULONG64 Module, ULONG TypeId, ULONG FieldIndex, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3910 STDMETHOD(IsManagedModule)(THIS_ ULONG Index, ULONG64 Base) PURE;
3911 STDMETHOD(GetModuleByModuleName2)(THIS_ PCSTR Name, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
3912 STDMETHOD(GetModuleByModuleName2Wide)(THIS_ PCWSTR Name, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
3913 STDMETHOD(GetModuleByOffset2)(THIS_ ULONG64 Offset, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
3914 STDMETHOD(AddSyntheticModule)(THIS_ ULONG64 Base, ULONG Size, PCSTR ImagePath, PCSTR ModuleName, ULONG Flags) PURE;
3915 STDMETHOD(AddSyntheticModuleWide)(THIS_ ULONG64 Base, ULONG Size, PCWSTR ImagePath, PCWSTR ModuleName, ULONG Flags) PURE;
3916 STDMETHOD(RemoveSyntheticModule)(THIS_ ULONG64 Base) PURE;
3917 STDMETHOD(GetCurrentScopeFrameIndex)(THIS_ PULONG Index) PURE;
3918 STDMETHOD(SetScopeFrameByIndex)(THIS_ ULONG Index) PURE;
3919 STDMETHOD(SetScopeFromJitDebugInfo)(THIS_ ULONG OutputControl, ULONG64 InfoOffset) PURE;
3920 STDMETHOD(SetScopeFromStoredEvent)(THIS) PURE;
3921 STDMETHOD(OutputSymbolByOffset)(THIS_ ULONG OutputControl, ULONG Flags, ULONG64 Offset) PURE;
3922 STDMETHOD(GetFunctionEntryByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PVOID Buffer, ULONG BufferSize, PULONG BufferNeeded) PURE;
3923 STDMETHOD(GetFieldTypeAndOffset)(THIS_ ULONG64 Module, ULONG ContainerTypeId, PCSTR Field, PULONG FieldTypeId, PULONG Offset) PURE;
3924 STDMETHOD(GetFieldTypeAndOffsetWide)(THIS_ ULONG64 Module, ULONG ContainerTypeId, PCWSTR Field, PULONG FieldTypeId, PULONG Offset) PURE;
3925 STDMETHOD(AddSyntheticSymbol)(THIS_ ULONG64 Offset, ULONG Size, PCSTR Name, ULONG Flags, PDEBUG_MODULE_AND_ID Id) PURE;
3926 STDMETHOD(AddSyntheticSymbolWide)(THIS_ ULONG64 Offset, ULONG Size, PCWSTR Name, ULONG Flags, PDEBUG_MODULE_AND_ID Id) PURE;
3927 STDMETHOD(RemoveSyntheticSymbol)(THIS_ PDEBUG_MODULE_AND_ID Id) PURE;
3928 STDMETHOD(GetSymbolEntriesByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, PULONG64 Displacements, ULONG IdsCount, PULONG Entries) PURE;
3929 STDMETHOD(GetSymbolEntriesByName)(THIS_ PCSTR Symbol, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, ULONG IdsCount, PULONG Entries) PURE;
3930 STDMETHOD(GetSymbolEntriesByNameWide)(THIS_ PCWSTR Symbol, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, ULONG IdsCount, PULONG Entries) PURE;
3931 STDMETHOD(GetSymbolEntryByToken)(THIS_ ULONG64 ModuleBase, ULONG Token, PDEBUG_MODULE_AND_ID Id) PURE;
3932 STDMETHOD(GetSymbolEntryInformation)(THIS_ PDEBUG_MODULE_AND_ID Id, PDEBUG_SYMBOL_ENTRY Info) PURE;
3933 STDMETHOD(GetSymbolEntryString)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
3934 STDMETHOD(GetSymbolEntryStringWide)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
3935 STDMETHOD(GetSymbolEntryOffsetRegions)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Flags, PDEBUG_OFFSET_REGION Regions, ULONG RegionsCount, PULONG RegionsAvail) PURE;
3936 STDMETHOD(GetSymbolEntryBySymbolEntry)(THIS_ PDEBUG_MODULE_AND_ID FromId, ULONG Flags, PDEBUG_MODULE_AND_ID ToId) PURE;
3937 STDMETHOD(GetSourceEntriesByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
3938 STDMETHOD(GetSourceEntriesByLine)(THIS_ ULONG Line, PCSTR File, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
3939 STDMETHOD(GetSourceEntriesByLineWide)(THIS_ ULONG Line, PCWSTR File, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
3940 STDMETHOD(GetSourceEntryString)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
3941 STDMETHOD(GetSourceEntryStringWide)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
3942 STDMETHOD(GetSourceEntryOffsetRegions)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Flags, PDEBUG_OFFSET_REGION Regions, ULONG RegionsCount, PULONG RegionsAvail) PURE;
3943 STDMETHOD(GetSourceEntryBySourceEntry)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY FromEntry, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY ToEntry) PURE;
3944 STDMETHOD(GetScopeEx)(THIS_ PULONG64 InstructionOffset, PDEBUG_STACK_FRAME_EX ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
3945 STDMETHOD(SetScopeEx)(THIS_ ULONG64 InstructionOffset, PDEBUG_STACK_FRAME_EX ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
3946 STDMETHOD(GetNameByInlineContext)(THIS_ ULONG64 Offset, ULONG InlineContext, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3947 STDMETHOD(GetNameByInlineContextWide)(THIS_ ULONG64 Offset, ULONG InlineContext, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3948 STDMETHOD(GetLineByInlineContext)(THIS_ ULONG64 Offset, ULONG InlineContext, PULONG Line, PSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
3949 STDMETHOD(GetLineByInlineContextWide)(THIS_ ULONG64 Offset, ULONG InlineContext, PULONG Line, PWSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
3950 STDMETHOD(OutputSymbolByInlineContext)(THIS_ ULONG OutputControl, ULONG Flags, ULONG64 Offset, ULONG InlineContext) PURE;
3951 };
3952#ifdef __CRT_UUID_DECL
3953__CRT_UUID_DECL(IDebugSymbols4,0xe391bbd8,0x9d8c,0x4418,0x84,0x0b,0xc0,0x06,0x59,0x2a,0x17,0x52)
3954#endif
3955
3956#define DEBUG_FRAME_DEFAULT 0
3957#define DEBUG_FRAME_IGNORE_INLINE 0x00000001
3958
3959#undef INTERFACE
3960#define INTERFACE IDebugSymbols5
3961 DECLARE_INTERFACE_(IDebugSymbols5, IUnknown) {
3962 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
3963 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
3964 STDMETHOD_(ULONG, Release)(THIS) PURE;
3965 STDMETHOD(GetSymbolOptions)(THIS_ PULONG Options) PURE;
3966 STDMETHOD(AddSymbolOptions)(THIS_ ULONG Options) PURE;
3967 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG Options) PURE;
3968 STDMETHOD(SetSymbolOptions)(THIS_ ULONG Options) PURE;
3969 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 Offset, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3970 STDMETHOD(GetOffsetByName)(THIS_ PCSTR Symbol, PULONG64 Offset) PURE;
3971 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 Offset, LONG Delta, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
3972 STDMETHOD(GetLineByOffset)(THIS_ ULONG64 Offset, PULONG Line, PSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
3973 STDMETHOD(GetOffsetByLine)(THIS_ ULONG Line, PCSTR File, PULONG64 Offset) PURE;
3974 STDMETHOD(GetNumberModules)(THIS_ PULONG Loaded, PULONG Unloaded) PURE;
3975 STDMETHOD(GetModuleByIndex)(THIS_ ULONG Index, PULONG64 Base) PURE;
3976 STDMETHOD(GetModuleByModuleName)(THIS_ PCSTR Name, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
3977 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 Offset, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
3978 STDMETHOD(GetModuleNames)(THIS_ ULONG Index, ULONG64 Base, PSTR ImageNameBuffer, ULONG ImageNameBufferSize, PULONG ImageNameSize, PSTR ModuleNameBuffer, ULONG ModuleNameBufferSize, PULONG ModuleNameSize, PSTR LoadedImageNameBuffer, ULONG LoadedImageNameBufferSize, PULONG LoadedImageNameSize) PURE;
3979 STDMETHOD(GetModuleParameters)(THIS_ ULONG Count, PULONG64 Bases, ULONG Start, PDEBUG_MODULE_PARAMETERS Params) PURE;
3980 STDMETHOD(GetSymbolModule)(THIS_ PCSTR Symbol, PULONG64 Base) PURE;
3981 STDMETHOD(GetTypeName)(THIS_ ULONG64 Module, ULONG TypeId, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
3982 STDMETHOD(GetTypeId)(THIS_ ULONG64 Module, PCSTR Name, PULONG TypeId) PURE;
3983 STDMETHOD(GetTypeSize)(THIS_ ULONG64 Module, ULONG TypeId, PULONG Size) PURE;
3984 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 Module, ULONG TypeId, PCSTR Field, PULONG Offset) PURE;
3985 STDMETHOD(GetSymbolTypeId)(THIS_ PCSTR Symbol, PULONG TypeId, PULONG64 Module) PURE;
3986 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 Offset, PULONG TypeId, PULONG64 Module) PURE;
3987 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3988 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3989 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG64 Module, ULONG TypeId, ULONG Flags) PURE;
3990 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesRead) PURE;
3991 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 Offset, ULONG64 Module, ULONG TypeId, PVOID Buffer, ULONG BufferSize, PULONG BytesWritten) PURE;
3992 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG OutputControl, ULONG64 Offset, ULONG64 Module, ULONG TypeId, ULONG Flags) PURE;
3993 STDMETHOD(GetScope)(THIS_ PULONG64 InstructionOffset, PDEBUG_STACK_FRAME ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
3994 STDMETHOD(SetScope)(THIS_ ULONG64 InstructionOffset, PDEBUG_STACK_FRAME ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
3995 STDMETHOD(ResetScope)(THIS) PURE;
3996 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG Flags, PDEBUG_SYMBOL_GROUP Update, PDEBUG_SYMBOL_GROUP *Symbols) PURE;
3997 STDMETHOD(CreateSymbolGroup)(THIS_ PDEBUG_SYMBOL_GROUP *Group) PURE;
3998 STDMETHOD(StartSymbolMatch)(THIS_ PCSTR Pattern, PULONG64 Handle) PURE;
3999 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 Handle, PSTR Buffer, ULONG BufferSize, PULONG MatchSize, PULONG64 Offset) PURE;
4000 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 Handle) PURE;
4001 STDMETHOD(Reload)(THIS_ PCSTR Module) PURE;
4002 STDMETHOD(GetSymbolPath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
4003 STDMETHOD(SetSymbolPath)(THIS_ PCSTR Path) PURE;
4004 STDMETHOD(AppendSymbolPath)(THIS_ PCSTR Addition) PURE;
4005 STDMETHOD(GetImagePath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
4006 STDMETHOD(SetImagePath)(THIS_ PCSTR Path) PURE;
4007 STDMETHOD(AppendImagePath)(THIS_ PCSTR Addition) PURE;
4008 STDMETHOD(GetSourcePath)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
4009 STDMETHOD(GetSourcePathElement)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG ElementSize) PURE;
4010 STDMETHOD(SetSourcePath)(THIS_ PCSTR Path) PURE;
4011 STDMETHOD(AppendSourcePath)(THIS_ PCSTR Addition) PURE;
4012 STDMETHOD(FindSourceFile)(THIS_ ULONG StartElement, PCSTR File, ULONG Flags, PULONG FoundElement, PSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
4013 STDMETHOD(GetSourceFileLineOffsets)(THIS_ PCSTR File, PULONG64 Buffer, ULONG BufferLines, PULONG FileLines) PURE;
4014 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG Index, ULONG64 Base, PCSTR Item, PVOID Buffer, ULONG BufferSize, PULONG VerInfoSize) PURE;
4015 STDMETHOD(GetModuleNameString)(THIS_ ULONG Which, ULONG Index, ULONG64 Base, PSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
4016 STDMETHOD(GetConstantName)(THIS_ ULONG64 Module, ULONG TypeId, ULONG64 Value, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
4017 STDMETHOD(GetFieldName)(THIS_ ULONG64 Module, ULONG TypeId, ULONG FieldIndex, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
4018 STDMETHOD(GetTypeOptions)(THIS_ PULONG Options) PURE;
4019 STDMETHOD(AddTypeOptions)(THIS_ ULONG Options) PURE;
4020 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG Options) PURE;
4021 STDMETHOD(SetTypeOptions)(THIS_ ULONG Options) PURE;
4022 STDMETHOD(GetNameByOffsetWide)(THIS_ ULONG64 Offset, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
4023 STDMETHOD(GetOffsetByNameWide)(THIS_ PCWSTR Symbol, PULONG64 Offset) PURE;
4024 STDMETHOD(GetNearNameByOffsetWide)(THIS_ ULONG64 Offset, LONG Delta, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
4025 STDMETHOD(GetLineByOffsetWide)(THIS_ ULONG64 Offset, PULONG Line, PWSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
4026 STDMETHOD(GetOffsetByLineWide)(THIS_ ULONG Line, PCWSTR File, PULONG64 Offset) PURE;
4027 STDMETHOD(GetModuleByModuleNameWide)(THIS_ PCWSTR Name, ULONG StartIndex, PULONG Index, PULONG64 Base) PURE;
4028 STDMETHOD(GetSymbolModuleWide)(THIS_ PCWSTR Symbol, PULONG64 Base) PURE;
4029 STDMETHOD(GetTypeNameWide)(THIS_ ULONG64 Module, ULONG TypeId, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
4030 STDMETHOD(GetTypeIdWide)(THIS_ ULONG64 Module, PCWSTR Name, PULONG TypeId) PURE;
4031 STDMETHOD(GetFieldOffsetWide)(THIS_ ULONG64 Module, ULONG TypeId, PCWSTR Field, PULONG Offset) PURE;
4032 STDMETHOD(GetSymbolTypeIdWide)(THIS_ PCWSTR Symbol, PULONG TypeId, PULONG64 Module) PURE;
4033 STDMETHOD(GetScopeSymbolGroup2)(THIS_ ULONG Flags, PDEBUG_SYMBOL_GROUP2 Update, PDEBUG_SYMBOL_GROUP2 *Symbols) PURE;
4034 STDMETHOD(CreateSymbolGroup2)(THIS_ PDEBUG_SYMBOL_GROUP2 *Group) PURE;
4035 STDMETHOD(StartSymbolMatchWide)(THIS_ PCWSTR Pattern, PULONG64 Handle) PURE;
4036 STDMETHOD(GetNextSymbolMatchWide)(THIS_ ULONG64 Handle, PWSTR Buffer, ULONG BufferSize, PULONG MatchSize, PULONG64 Offset) PURE;
4037 STDMETHOD(ReloadWide)(THIS_ PCWSTR Module) PURE;
4038 STDMETHOD(GetSymbolPathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
4039 STDMETHOD(SetSymbolPathWide)(THIS_ PCWSTR Path) PURE;
4040 STDMETHOD(AppendSymbolPathWide)(THIS_ PCWSTR Addition) PURE;
4041 STDMETHOD(GetImagePathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
4042 STDMETHOD(SetImagePathWide)(THIS_ PCWSTR Path) PURE;
4043 STDMETHOD(AppendImagePathWide)(THIS_ PCWSTR Addition) PURE;
4044 STDMETHOD(GetSourcePathWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PathSize) PURE;
4045 STDMETHOD(GetSourcePathElementWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG ElementSize) PURE;
4046 STDMETHOD(SetSourcePathWide)(THIS_ PCWSTR Path) PURE;
4047 STDMETHOD(AppendSourcePathWide)(THIS_ PCWSTR Addition) PURE;
4048 STDMETHOD(FindSourceFileWide)(THIS_ ULONG StartElement, PCWSTR File, ULONG Flags, PULONG FoundElement, PWSTR Buffer, ULONG BufferSize, PULONG FoundSize) PURE;
4049 STDMETHOD(GetSourceFileLineOffsetsWide)(THIS_ PCWSTR File, PULONG64 Buffer, ULONG BufferLines, PULONG FileLines) PURE;
4050 STDMETHOD(GetModuleVersionInformationWide)(THIS_ ULONG Index, ULONG64 Base, PCWSTR Item, PVOID Buffer, ULONG BufferSize, PULONG VerInfoSize) PURE;
4051 STDMETHOD(GetModuleNameStringWide)(THIS_ ULONG Which, ULONG Index, ULONG64 Base, PWSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
4052 STDMETHOD(GetConstantNameWide)(THIS_ ULONG64 Module, ULONG TypeId, ULONG64 Value, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
4053 STDMETHOD(GetFieldNameWide)(THIS_ ULONG64 Module, ULONG TypeId, ULONG FieldIndex, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize) PURE;
4054 STDMETHOD(IsManagedModule)(THIS_ ULONG Index, ULONG64 Base) PURE;
4055 STDMETHOD(GetModuleByModuleName2)(THIS_ PCSTR Name, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
4056 STDMETHOD(GetModuleByModuleName2Wide)(THIS_ PCWSTR Name, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
4057 STDMETHOD(GetModuleByOffset2)(THIS_ ULONG64 Offset, ULONG StartIndex, ULONG Flags, PULONG Index, PULONG64 Base) PURE;
4058 STDMETHOD(AddSyntheticModule)(THIS_ ULONG64 Base, ULONG Size, PCSTR ImagePath, PCSTR ModuleName, ULONG Flags) PURE;
4059 STDMETHOD(AddSyntheticModuleWide)(THIS_ ULONG64 Base, ULONG Size, PCWSTR ImagePath, PCWSTR ModuleName, ULONG Flags) PURE;
4060 STDMETHOD(RemoveSyntheticModule)(THIS_ ULONG64 Base) PURE;
4061 STDMETHOD(GetCurrentScopeFrameIndex)(THIS_ PULONG Index) PURE;
4062 STDMETHOD(SetScopeFrameByIndex)(THIS_ ULONG Index) PURE;
4063 STDMETHOD(SetScopeFromJitDebugInfo)(THIS_ ULONG OutputControl, ULONG64 InfoOffset) PURE;
4064 STDMETHOD(SetScopeFromStoredEvent)(THIS) PURE;
4065 STDMETHOD(OutputSymbolByOffset)(THIS_ ULONG OutputControl, ULONG Flags, ULONG64 Offset) PURE;
4066 STDMETHOD(GetFunctionEntryByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PVOID Buffer, ULONG BufferSize, PULONG BufferNeeded) PURE;
4067 STDMETHOD(GetFieldTypeAndOffset)(THIS_ ULONG64 Module, ULONG ContainerTypeId, PCSTR Field, PULONG FieldTypeId, PULONG Offset) PURE;
4068 STDMETHOD(GetFieldTypeAndOffsetWide)(THIS_ ULONG64 Module, ULONG ContainerTypeId, PCWSTR Field, PULONG FieldTypeId, PULONG Offset) PURE;
4069 STDMETHOD(AddSyntheticSymbol)(THIS_ ULONG64 Offset, ULONG Size, PCSTR Name, ULONG Flags, PDEBUG_MODULE_AND_ID Id) PURE;
4070 STDMETHOD(AddSyntheticSymbolWide)(THIS_ ULONG64 Offset, ULONG Size, PCWSTR Name, ULONG Flags, PDEBUG_MODULE_AND_ID Id) PURE;
4071 STDMETHOD(RemoveSyntheticSymbol)(THIS_ PDEBUG_MODULE_AND_ID Id) PURE;
4072 STDMETHOD(GetSymbolEntriesByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, PULONG64 Displacements, ULONG IdsCount, PULONG Entries) PURE;
4073 STDMETHOD(GetSymbolEntriesByName)(THIS_ PCSTR Symbol, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, ULONG IdsCount, PULONG Entries) PURE;
4074 STDMETHOD(GetSymbolEntriesByNameWide)(THIS_ PCWSTR Symbol, ULONG Flags, PDEBUG_MODULE_AND_ID Ids, ULONG IdsCount, PULONG Entries) PURE;
4075 STDMETHOD(GetSymbolEntryByToken)(THIS_ ULONG64 ModuleBase, ULONG Token, PDEBUG_MODULE_AND_ID Id) PURE;
4076 STDMETHOD(GetSymbolEntryInformation)(THIS_ PDEBUG_MODULE_AND_ID Id, PDEBUG_SYMBOL_ENTRY Info) PURE;
4077 STDMETHOD(GetSymbolEntryString)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
4078 STDMETHOD(GetSymbolEntryStringWide)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
4079 STDMETHOD(GetSymbolEntryOffsetRegions)(THIS_ PDEBUG_MODULE_AND_ID Id, ULONG Flags, PDEBUG_OFFSET_REGION Regions, ULONG RegionsCount, PULONG RegionsAvail) PURE;
4080 STDMETHOD(GetSymbolEntryBySymbolEntry)(THIS_ PDEBUG_MODULE_AND_ID FromId, ULONG Flags, PDEBUG_MODULE_AND_ID ToId) PURE;
4081 STDMETHOD(GetSourceEntriesByOffset)(THIS_ ULONG64 Offset, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
4082 STDMETHOD(GetSourceEntriesByLine)(THIS_ ULONG Line, PCSTR File, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
4083 STDMETHOD(GetSourceEntriesByLineWide)(THIS_ ULONG Line, PCWSTR File, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY Entries, ULONG EntriesCount, PULONG EntriesAvail) PURE;
4084 STDMETHOD(GetSourceEntryString)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Which, PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
4085 STDMETHOD(GetSourceEntryStringWide)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Which, PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE;
4086 STDMETHOD(GetSourceEntryOffsetRegions)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY Entry, ULONG Flags, PDEBUG_OFFSET_REGION Regions, ULONG RegionsCount, PULONG RegionsAvail) PURE;
4087 STDMETHOD(GetSourceEntryBySourceEntry)(THIS_ PDEBUG_SYMBOL_SOURCE_ENTRY FromEntry, ULONG Flags, PDEBUG_SYMBOL_SOURCE_ENTRY ToEntry) PURE;
4088 STDMETHOD(GetScopeEx)(THIS_ PULONG64 InstructionOffset, PDEBUG_STACK_FRAME_EX ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
4089 STDMETHOD(SetScopeEx)(THIS_ ULONG64 InstructionOffset, PDEBUG_STACK_FRAME_EX ScopeFrame, PVOID ScopeContext, ULONG ScopeContextSize) PURE;
4090 STDMETHOD(GetNameByInlineContext)(THIS_ ULONG64 Offset, ULONG InlineContext, PSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
4091 STDMETHOD(GetNameByInlineContextWide)(THIS_ ULONG64 Offset, ULONG InlineContext, PWSTR NameBuffer, ULONG NameBufferSize, PULONG NameSize, PULONG64 Displacement) PURE;
4092 STDMETHOD(GetLineByInlineContext)(THIS_ ULONG64 Offset, ULONG InlineContext, PULONG Line, PSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
4093 STDMETHOD(GetLineByInlineContextWide)(THIS_ ULONG64 Offset, ULONG InlineContext, PULONG Line, PWSTR FileBuffer, ULONG FileBufferSize, PULONG FileSize, PULONG64 Displacement) PURE;
4094 STDMETHOD(OutputSymbolByInlineContext)(THIS_ ULONG OutputControl, ULONG Flags, ULONG64 Offset, ULONG InlineContext) PURE;
4095 STDMETHOD(GetCurrentScopeFrameIndexEx)(THIS_ ULONG Flags, PULONG Index) PURE;
4096 STDMETHOD(SetScopeFrameByIndexEx)(THIS_ ULONG Flags, ULONG Index) PURE;
4097 };
4098#ifdef __CRT_UUID_DECL
4099__CRT_UUID_DECL(IDebugSymbols5,0xc65fa83e,0x1e69,0x475e,0x8e,0x0e,0xb5,0xd7,0x9e,0x9c,0xc1,0x7e)
4100#endif
4101
4102#undef INTERFACE
4103#define INTERFACE IDebugSystemObjects
4104 DECLARE_INTERFACE_(IDebugSystemObjects,IUnknown) {
4105 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
4106 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4107 STDMETHOD_(ULONG,Release)(THIS) PURE;
4108 STDMETHOD(GetEventThread)(THIS_ PULONG Id) PURE;
4109 STDMETHOD(GetEventProcess)(THIS_ PULONG Id) PURE;
4110 STDMETHOD(GetCurrentThreadId)(THIS_ PULONG Id) PURE;
4111 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG Id) PURE;
4112 STDMETHOD(GetCurrentProcessId)(THIS_ PULONG Id) PURE;
4113 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG Id) PURE;
4114 STDMETHOD(GetNumberThreads)(THIS_ PULONG Number) PURE;
4115 STDMETHOD(GetTotalNumberThreads)(THIS_ PULONG Total,PULONG LargestProcess) PURE;
4116 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE;
4117 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG Processor,PULONG Id) PURE;
4118 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
4119 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4120 STDMETHOD(GetCurrentThreadTeb)(THIS_ PULONG64 Offset) PURE;
4121 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4122 STDMETHOD(GetCurrentThreadSystemId)(THIS_ PULONG SysId) PURE;
4123 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE;
4124 STDMETHOD(GetCurrentThreadHandle)(THIS_ PULONG64 Handle) PURE;
4125 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE;
4126 STDMETHOD(GetNumberProcesses)(THIS_ PULONG Number) PURE;
4127 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE;
4128 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
4129 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4130 STDMETHOD(GetCurrentProcessPeb)(THIS_ PULONG64 Offset) PURE;
4131 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4132 STDMETHOD(GetCurrentProcessSystemId)(THIS_ PULONG SysId) PURE;
4133 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE;
4134 STDMETHOD(GetCurrentProcessHandle)(THIS_ PULONG64 Handle) PURE;
4135 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE;
4136 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG ExeSize) PURE;
4137 };
4138#ifdef __CRT_UUID_DECL
4139__CRT_UUID_DECL(IDebugSystemObjects,0x6b86fe2c,0x2c4f,0x4f0c,0x9d,0xa2,0x17,0x43,0x11,0xac,0xc3,0x27)
4140#endif
4141
4142#undef INTERFACE
4143#define INTERFACE IDebugSystemObjects2
4144 DECLARE_INTERFACE_(IDebugSystemObjects2,IUnknown) {
4145 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
4146 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4147 STDMETHOD_(ULONG,Release)(THIS) PURE;
4148 STDMETHOD(GetEventThread)(THIS_ PULONG Id) PURE;
4149 STDMETHOD(GetEventProcess)(THIS_ PULONG Id) PURE;
4150 STDMETHOD(GetCurrentThreadId)(THIS_ PULONG Id) PURE;
4151 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG Id) PURE;
4152 STDMETHOD(GetCurrentProcessId)(THIS_ PULONG Id) PURE;
4153 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG Id) PURE;
4154 STDMETHOD(GetNumberThreads)(THIS_ PULONG Number) PURE;
4155 STDMETHOD(GetTotalNumberThreads)(THIS_ PULONG Total,PULONG LargestProcess) PURE;
4156 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE;
4157 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG Processor,PULONG Id) PURE;
4158 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
4159 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4160 STDMETHOD(GetCurrentThreadTeb)(THIS_ PULONG64 Offset) PURE;
4161 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4162 STDMETHOD(GetCurrentThreadSystemId)(THIS_ PULONG SysId) PURE;
4163 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE;
4164 STDMETHOD(GetCurrentThreadHandle)(THIS_ PULONG64 Handle) PURE;
4165 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE;
4166 STDMETHOD(GetNumberProcesses)(THIS_ PULONG Number) PURE;
4167 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE;
4168 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
4169 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4170 STDMETHOD(GetCurrentProcessPeb)(THIS_ PULONG64 Offset) PURE;
4171 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4172 STDMETHOD(GetCurrentProcessSystemId)(THIS_ PULONG SysId) PURE;
4173 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE;
4174 STDMETHOD(GetCurrentProcessHandle)(THIS_ PULONG64 Handle) PURE;
4175 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE;
4176 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG ExeSize) PURE;
4177 STDMETHOD(GetCurrentProcessUpTime)(THIS_ PULONG UpTime) PURE;
4178 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
4179 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 Offset) PURE;
4180 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
4181 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 Offset) PURE;
4182 };
4183#ifdef __CRT_UUID_DECL
4184__CRT_UUID_DECL(IDebugSystemObjects2,0x0ae9f5ff,0x1852,0x4679,0xb0,0x55,0x49,0x4b,0xee,0x64,0x07,0xee)
4185#endif
4186
4187#undef INTERFACE
4188#define INTERFACE IDebugSystemObjects3
4189 DECLARE_INTERFACE_(IDebugSystemObjects3,IUnknown) {
4190 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE;
4191 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
4192 STDMETHOD_(ULONG,Release)(THIS) PURE;
4193 STDMETHOD(GetEventThread)(THIS_ PULONG Id) PURE;
4194 STDMETHOD(GetEventProcess)(THIS_ PULONG Id) PURE;
4195 STDMETHOD(GetCurrentThreadId)(THIS_ PULONG Id) PURE;
4196 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG Id) PURE;
4197 STDMETHOD(GetCurrentProcessId)(THIS_ PULONG Id) PURE;
4198 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG Id) PURE;
4199 STDMETHOD(GetNumberThreads)(THIS_ PULONG Number) PURE;
4200 STDMETHOD(GetTotalNumberThreads)(THIS_ PULONG Total,PULONG LargestProcess) PURE;
4201 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE;
4202 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG Processor,PULONG Id) PURE;
4203 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
4204 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4205 STDMETHOD(GetCurrentThreadTeb)(THIS_ PULONG64 Offset) PURE;
4206 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4207 STDMETHOD(GetCurrentThreadSystemId)(THIS_ PULONG SysId) PURE;
4208 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE;
4209 STDMETHOD(GetCurrentThreadHandle)(THIS_ PULONG64 Handle) PURE;
4210 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE;
4211 STDMETHOD(GetNumberProcesses)(THIS_ PULONG Number) PURE;
4212 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE;
4213 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
4214 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4215 STDMETHOD(GetCurrentProcessPeb)(THIS_ PULONG64 Offset) PURE;
4216 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 Offset,PULONG Id) PURE;
4217 STDMETHOD(GetCurrentProcessSystemId)(THIS_ PULONG SysId) PURE;
4218 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE;
4219 STDMETHOD(GetCurrentProcessHandle)(THIS_ PULONG64 Handle) PURE;
4220 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE;
4221 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG ExeSize) PURE;
4222 STDMETHOD(GetCurrentProcessUpTime)(THIS_ PULONG UpTime) PURE;
4223 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
4224 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 Offset) PURE;
4225 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
4226 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 Offset) PURE;
4227 STDMETHOD(GetEventSystem)(THIS_ PULONG Id) PURE;
4228 STDMETHOD(GetCurrentSystemId)(THIS_ PULONG Id) PURE;
4229 STDMETHOD(SetCurrentSystemId)(THIS_ ULONG Id) PURE;
4230 STDMETHOD(GetNumberSystems)(THIS_ PULONG Number) PURE;
4231 STDMETHOD(GetSystemIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids) PURE;
4232 STDMETHOD(GetTotalNumberThreadsAndProcesses)(THIS_ PULONG TotalThreads,PULONG TotalProcesses,PULONG LargestProcessThreads,PULONG LargestSystemThreads,PULONG LargestSystemProcesses) PURE;
4233 STDMETHOD(GetCurrentSystemServer)(THIS_ PULONG64 Server) PURE;
4234 STDMETHOD(GetSystemByServer)(THIS_ ULONG64 Server,PULONG Id) PURE;
4235 STDMETHOD(GetCurrentSystemServerName)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG NameSize) PURE;
4236 };
4237#ifdef __CRT_UUID_DECL
4238__CRT_UUID_DECL(IDebugSystemObjects3,0xe9676e2f,0xe286,0x4ea3,0xb0,0xf9,0xdf,0xe5,0xd9,0xfc,0x33,0x0e)
4239#endif
4240
4241#undef INTERFACE
4242#define INTERFACE IDebugSystemObjects4
4243 DECLARE_INTERFACE_(IDebugSystemObjects4, IUnknown) {
4244 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
4245 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
4246 STDMETHOD_(ULONG, Release)(THIS) PURE;
4247 STDMETHOD(GetEventThread)(THIS_ PULONG Id) PURE;
4248 STDMETHOD(GetEventProcess)(THIS_ PULONG Id) PURE;
4249 STDMETHOD(GetCurrentThreadId)(THIS_ PULONG Id) PURE;
4250 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG Id) PURE;
4251 STDMETHOD(GetCurrentProcessId)(THIS_ PULONG Id) PURE;
4252 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG Id) PURE;
4253 STDMETHOD(GetNumberThreads)(THIS_ PULONG Number) PURE;
4254 STDMETHOD(GetTotalNumberThreads)(THIS_ PULONG Total, PULONG LargestProcess) PURE;
4255 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG Start, ULONG Count, PULONG Ids, PULONG SysIds) PURE;
4256 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG Processor, PULONG Id) PURE;
4257 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
4258 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 Offset, PULONG Id) PURE;
4259 STDMETHOD(GetCurrentThreadTeb)(THIS_ PULONG64 Offset) PURE;
4260 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 Offset, PULONG Id) PURE;
4261 STDMETHOD(GetCurrentThreadSystemId)(THIS_ PULONG SysId) PURE;
4262 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG SysId, PULONG Id) PURE;
4263 STDMETHOD(GetCurrentThreadHandle)(THIS_ PULONG64 Handle) PURE;
4264 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 Handle, PULONG Id) PURE;
4265 STDMETHOD(GetNumberProcesses)(THIS_ PULONG Number) PURE;
4266 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG Start, ULONG Count, PULONG Ids, PULONG SysIds) PURE;
4267 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
4268 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 Offset, PULONG Id) PURE;
4269 STDMETHOD(GetCurrentProcessPeb)(THIS_ PULONG64 Offset) PURE;
4270 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 Offset, PULONG Id) PURE;
4271 STDMETHOD(GetCurrentProcessSystemId)(THIS_ PULONG SysId) PURE;
4272 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG SysId, PULONG Id) PURE;
4273 STDMETHOD(GetCurrentProcessHandle)(THIS_ PULONG64 Handle) PURE;
4274 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 Handle, PULONG Id) PURE;
4275 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG ExeSize) PURE;
4276 STDMETHOD(GetCurrentProcessUpTime)(THIS_ PULONG UpTime) PURE;
4277 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
4278 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 Offset) PURE;
4279 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
4280 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 Offset) PURE;
4281 STDMETHOD(GetEventSystem)(THIS_ PULONG Id) PURE;
4282 STDMETHOD(GetCurrentSystemId)(THIS_ PULONG Id) PURE;
4283 STDMETHOD(SetCurrentSystemId)(THIS_ ULONG Id) PURE;
4284 STDMETHOD(GetNumberSystems)(THIS_ PULONG Number) PURE;
4285 STDMETHOD(GetSystemIdsByIndex)(THIS_ ULONG Start, ULONG Count, PULONG Ids) PURE;
4286 STDMETHOD(GetTotalNumberThreadsAndProcesses)(THIS_ PULONG TotalThreads, PULONG TotalProcesses, PULONG LargestProcessThreads, PULONG LargestSystemThreads, PULONG LargestSystemProcesses) PURE;
4287 STDMETHOD(GetCurrentSystemServer)(THIS_ PULONG64 Server) PURE;
4288 STDMETHOD(GetSystemByServer)(THIS_ ULONG64 Server, PULONG Id) PURE;
4289 STDMETHOD(GetCurrentSystemServerName)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
4290 STDMETHOD(GetCurrentProcessExecutableNameWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG ExeSize) PURE;
4291 STDMETHOD(GetCurrentSystemServerNameWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG NameSize) PURE;
4292 };
4293#ifdef __CRT_UUID_DECL
4294__CRT_UUID_DECL(IDebugSystemObjects4,0x489468e6,0x7d0f,0x4af5,0x87,0xab,0x25,0x20,0x74,0x54,0xd5,0x53)
4295#endif
4296
4297#define DEBUG_COMMAND_EXCEPTION_ID 0xdbe00dbe
4298
4299#define DEBUG_CMDEX_INVALID 0x00000000
4300#define DEBUG_CMDEX_ADD_EVENT_STRING 0x00000001
4301#define DEBUG_CMDEX_RESET_EVENT_STRINGS 0x00000002
4302
4303#if !defined(DEBUG_NO_IMPLEMENTATION) && !defined(__CRT__NO_INLINE)
4304 __CRT_INLINE void DebugCommandException(ULONG Command,ULONG ArgSize,PVOID Arg) {
4305 ULONG_PTR ExArgs[4];
4306 ExArgs[0] = DEBUG_COMMAND_EXCEPTION_ID;
4307 ExArgs[1] = Command;
4308 ExArgs[2] = ArgSize;
4309 ExArgs[3] = (ULONG_PTR)Arg;
4310 RaiseException(DBG_COMMAND_EXCEPTION,0,4,ExArgs);
4311 }
4312#endif
4313
4314 typedef HRESULT (CALLBACK *PDEBUG_EXTENSION_INITIALIZE)(PULONG Version,PULONG Flags);
4315 typedef void (CALLBACK *PDEBUG_EXTENSION_UNINITIALIZE)(void);
4316
4317#define DEBUG_NOTIFY_SESSION_ACTIVE 0x00000000
4318#define DEBUG_NOTIFY_SESSION_INACTIVE 0x00000001
4319#define DEBUG_NOTIFY_SESSION_ACCESSIBLE 0x00000002
4320#define DEBUG_NOTIFY_SESSION_INACCESSIBLE 0x00000003
4321
4322 typedef void (CALLBACK *PDEBUG_EXTENSION_NOTIFY)(ULONG Notify,ULONG64 Argument);
4323 typedef HRESULT (CALLBACK *PDEBUG_EXTENSION_CALL)(PDEBUG_CLIENT Client,PCSTR Args);
4324
4325#define DEBUG_EXTENSION_CONTINUE_SEARCH HRESULT_FROM_NT(0xC0000271)
4326#define DEBUG_EXTENSION_VERSION(Major,Minor) ((((Major) & 0xffff) << 16) | ((Minor) & 0xffff))
4327
4328#ifdef __cplusplus
4329};
4330
4331#ifndef DEBUG_NO_IMPLEMENTATION
4332class DebugBaseEventCallbacks : public IDebugEventCallbacks {
4333public:
4334 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) {
4335 *Interface = NULL;
4336 if(IsEqualIID(InterfaceId,IID_IUnknown) || IsEqualIID(InterfaceId,IID_IDebugEventCallbacks)) {
4337 *Interface = (IDebugEventCallbacks *)this;
4338 AddRef();
4339 return S_OK;
4340 } else return E_NOINTERFACE;
4341 }
4342 STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) { return DEBUG_STATUS_NO_CHANGE; }
4343 STDMETHOD(Exception)(THIS_ PEXCEPTION_RECORD64 Exception,ULONG FirstChance) { return DEBUG_STATUS_NO_CHANGE; }
4344 STDMETHOD(CreateThread)(THIS_ ULONG64 Handle,ULONG64 DataOffset,ULONG64 StartOffset) { return DEBUG_STATUS_NO_CHANGE; }
4345 STDMETHOD(ExitThread)(THIS_ ULONG ExitCode) { return DEBUG_STATUS_NO_CHANGE; }
4346 STDMETHOD(CreateProcess)(THIS_ ULONG64 ImageFileHandle,ULONG64 Handle,ULONG64 BaseOffset,ULONG ModuleSize,PCSTR ModuleName,PCSTR ImageName,ULONG CheckSum,ULONG TimeDateStamp,ULONG64 InitialThreadHandle,ULONG64 ThreadDataOffset,ULONG64 StartOffset) { return DEBUG_STATUS_NO_CHANGE; }
4347 STDMETHOD(ExitProcess)(THIS_ ULONG ExitCode) { return DEBUG_STATUS_NO_CHANGE; }
4348 STDMETHOD(LoadModule)(THIS_ ULONG64 ImageFileHandle,ULONG64 BaseOffset,ULONG ModuleSize,PCSTR ModuleName,PCSTR ImageName,ULONG CheckSum,ULONG TimeDateStamp) { return DEBUG_STATUS_NO_CHANGE; }
4349 STDMETHOD(UnloadModule)(THIS_ PCSTR ImageBaseName,ULONG64 BaseOffset) { return DEBUG_STATUS_NO_CHANGE; }
4350 STDMETHOD(SystemError)(THIS_ ULONG Error,ULONG Level) { return DEBUG_STATUS_NO_CHANGE; }
4351 STDMETHOD(SessionStatus)(THIS_ ULONG Status) { return DEBUG_STATUS_NO_CHANGE; }
4352 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG Flags,ULONG64 Argument) { return S_OK; }
4353 STDMETHOD(ChangeEngineState)(THIS_ ULONG Flags,ULONG64 Argument) { return S_OK; }
4354 STDMETHOD(ChangeSymbolState)(THIS_ ULONG Flags,ULONG64 Argument) { return S_OK; }
4355};
4356#endif
4357#endif
4358#endif