ReactOS 0.4.15-dev-7842-g558ab78
dbgeng.h
Go to the documentation of this file.
1/*
2 * Copyright 2019 Nikolay Sivov for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#include "objbase.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25DEFINE_GUID(IID_IDebugInputCallbacks, 0x9f50e42c, 0xf136, 0x499e, 0x9a, 0x97, 0x73, 0x03, 0x6c, 0x94, 0xed, 0x2d);
26DEFINE_GUID(IID_IDebugOutputCallbacks, 0x4bf58045, 0xd654, 0x4c40, 0xb0, 0xaf, 0x68, 0x30, 0x90, 0xf3, 0x56, 0xdc);
27DEFINE_GUID(IID_IDebugOutputCallbacksWide,0x4c7fd663, 0xc394, 0x4e26, 0x8e, 0xf1, 0x34, 0xad, 0x5e, 0xd3, 0x76, 0x4c);
28DEFINE_GUID(IID_IDebugEventCallbacks, 0x337be28b, 0x5036, 0x4d72, 0xb6, 0xbf, 0xc4, 0x5f, 0xbb, 0x9f, 0x2e, 0xaa);
29DEFINE_GUID(IID_IDebugEventCallbacksWide, 0x0690e046, 0x9c23, 0x45ac, 0xa0, 0x4f, 0x98, 0x7a, 0xc2, 0x9a, 0xd0, 0xd3);
30DEFINE_GUID(IID_IDebugEventContextCallbacks, 0x61a4905b, 0x23f9, 0x4247, 0xb3, 0xc5, 0x53, 0xd0, 0x87, 0x52, 0x9a, 0xb7);
31DEFINE_GUID(IID_IDebugBreakpoint, 0x5bd9d474, 0x5975, 0x423a, 0xb8, 0x8b, 0x65, 0xa8, 0xe7, 0x11, 0x0e, 0x65);
32DEFINE_GUID(IID_IDebugBreakpoint2, 0x1b278d20, 0x79f2, 0x426e, 0xa3, 0xf9, 0xc1, 0xdd, 0xf3, 0x75, 0xd4, 0x8e);
33DEFINE_GUID(IID_IDebugClient, 0x27fe5639, 0x8407, 0x4f47, 0x83, 0x64, 0xee, 0x11, 0x8f, 0xb0, 0x8a, 0xc8);
34DEFINE_GUID(IID_IDebugClient2, 0xedbed635, 0x372e, 0x4dab, 0xbb, 0xfe, 0xed, 0x0d, 0x2f, 0x63, 0xbe, 0x81);
35DEFINE_GUID(IID_IDebugClient3, 0xdd492d7f, 0x71b8, 0x4ad6, 0xa8, 0xdc, 0x1c, 0x88, 0x74, 0x79, 0xff, 0x91);
36DEFINE_GUID(IID_IDebugClient4, 0xca83c3de, 0x5089, 0x4cf8, 0x93, 0xc8, 0xd8, 0x92, 0x38, 0x7f, 0x2a, 0x5e);
37DEFINE_GUID(IID_IDebugClient5, 0xe3acb9d7, 0x7ec2, 0x4f0c, 0xa0, 0xda, 0xe8, 0x1e, 0x0c, 0xbb, 0xe6, 0x28);
38DEFINE_GUID(IID_IDebugClient6, 0xfd28b4c5, 0xc498, 0x4686, 0xa2, 0x8e, 0x62, 0xca, 0xd2, 0x15, 0x4e, 0xb3);
39DEFINE_GUID(IID_IDebugClient7, 0x13586be3, 0x542e, 0x481e, 0xb1, 0xf2, 0x84, 0x97, 0xba, 0x74, 0xf9, 0xa9);
40DEFINE_GUID(IID_IDebugDataSpaces, 0x88f7dfab, 0x3ea7, 0x4c3a, 0xae, 0xfb, 0xc4, 0xe8, 0x10, 0x61, 0x73, 0xaa);
41DEFINE_GUID(IID_IDebugDataSpaces2, 0x7a5e852f, 0x96e9, 0x468f, 0xac, 0x1b, 0x0b, 0x3a, 0xdd, 0xc4, 0xa0, 0x49);
42DEFINE_GUID(IID_IDebugSymbols, 0x8c31e98c, 0x983a, 0x48a5, 0x90, 0x16, 0x6f, 0xe5, 0xd6, 0x67, 0xa9, 0x50);
43DEFINE_GUID(IID_IDebugSymbols2, 0x3a707211, 0xafdd, 0x4495, 0xad, 0x4f, 0x56, 0xfe, 0xcd, 0xf8, 0x16, 0x3f);
44DEFINE_GUID(IID_IDebugSymbols3, 0xf02fbecc, 0x50ac, 0x4f36, 0x9a, 0xd9, 0xc9, 0x75, 0xe8, 0xf3, 0x2f, 0xf8);
45DEFINE_GUID(IID_IDebugControl, 0x5182e668, 0x105e, 0x416e, 0xad, 0x92, 0x24, 0xef, 0x80, 0x04, 0x24, 0xba);
46DEFINE_GUID(IID_IDebugControl2, 0xd4366723, 0x44df, 0x4bed, 0x8c, 0x7e, 0x4c, 0x05, 0x42, 0x4f, 0x45, 0x88);
47DEFINE_GUID(IID_IDebugAdvanced, 0xf2df5f53, 0x071f, 0x47bd, 0x9d, 0xe6, 0x57, 0x34, 0xc3, 0xfe, 0xd6, 0x89);
48DEFINE_GUID(IID_IDebugSystemObjects, 0x6b86fe2c, 0x2c4f, 0x4f0c, 0x9d, 0xa2, 0x17, 0x43, 0x11, 0xac, 0xc3, 0x27);
49DEFINE_GUID(IID_IDebugSystemObjects2, 0x0ae9f5ff, 0x1852, 0x4679, 0xb0, 0x55, 0x49, 0x4b, 0xee, 0x64, 0x07, 0xee);
50DEFINE_GUID(IID_IDebugSystemObjects3, 0xe9676e2f, 0xe286, 0x4ea3, 0xb0, 0xf9, 0xdf, 0xe5, 0xd9, 0xfc, 0x33, 0x0e);
51
52/* Engine options */
53#define DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION 0x00000001
54#define DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS 0x00000002
55#define DEBUG_ENGOPT_ALLOW_NETWORK_PATHS 0x00000004
56#define DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS 0x00000008
57#define DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS 0x00000010
58#define DEBUG_ENGOPT_INITIAL_BREAK 0x00000020
59#define DEBUG_ENGOPT_INITIAL_MODULE_BREAK 0x00000040
60#define DEBUG_ENGOPT_FINAL_BREAK 0x00000080
61#define DEBUG_ENGOPT_NO_EXECUTE_REPEAT 0x00000100
62#define DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION 0x00000200
63#define DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS 0x00000400
64#define DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS 0x00000800
65#define DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS 0x00001000
66#define DEBUG_ENGOPT_KD_QUIET_MODE 0x00002000
67#define DEBUG_ENGOPT_DISABLE_MANAGED_SUPPORT 0x00004000
68#define DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD 0x00008000
69#define DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS 0x00010000
70#define DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING 0x00020000
71#define DEBUG_ENGOPT_PREFER_DML 0x00040000
72#define DEBUG_ENGOPT_DISABLESQM 0x00080000
73#define DEBUG_ENGOPT_DISABLE_STEPLINES_OPTIONS 0x00200000
74#define DEBUG_ENGOPT_DEBUGGING_SENSITIVE_DATA 0x00400000
75#define DEBUG_ENGOPT_ALL 0x004fffff
76#define DEBUG_ENGOPT_NETWORK_PATHS (DEBUG_ENGOPT_ALLOW_NETWORK_PATHS | DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS)
77
78/* AttachProcess() flags */
79#define DEBUG_ATTACH_DEFAULT 0x00000000
80#define DEBUG_ATTACH_NONINVASIVE 0x00000001
81#define DEBUG_ATTACH_EXISTING 0x00000002
82#define DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND 0x00000004
83#define DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK 0x00000008
84#define DEBUG_ATTACH_INVASIVE_RESUME_PROCESS 0x00000010
85#define DEBUG_ATTACH_NONINVASIVE_ALLOW_PARTIAL 0x00000020
86
87/* EndSession() flags */
88#define DEBUG_END_PASSIVE 0x00000000
89#define DEBUG_END_ACTIVE_TERMINATE 0x00000001
90#define DEBUG_END_ACTIVE_DETACH 0x00000002
91#define DEBUG_END_REENTRANT 0x00000003
92#define DEBUG_END_DISCONNECT 0x00000004
93
94/* ChangeEngineState() flags */
95#define DEBUG_CES_CURRENT_THREAD 0x00000001
96#define DEBUG_CES_EFFECTIVE_PROCESSOR 0x00000002
97#define DEBUG_CES_BREAKPOINTS 0x00000004
98#define DEBUG_CES_CODE_LEVEL 0x00000008
99#define DEBUG_CES_EXECUTION_STATUS 0x00000010
100#define DEBUG_CES_ENGINE_OPTIONS 0x00000020
101#define DEBUG_CES_LOG_FILE 0x00000040
102#define DEBUG_CES_RADIX 0x00000080
103#define DEBUG_CES_EVENT_FILTERS 0x00000100
104#define DEBUG_CES_PROCESS_OPTIONS 0x00000200
105#define DEBUG_CES_EXTENSIONS 0x00000400
106#define DEBUG_CES_SYSTEMS 0x00000800
107#define DEBUG_CES_ASSEMBLY_OPTIONS 0x00001000
108#define DEBUG_CES_EXPRESSION_SYNTAX 0x00002000
109#define DEBUG_CES_TEXT_REPLACEMENTS 0x00004000
110#define DEBUG_CES_ALL 0xffffffff
111
112#define DEBUG_STATUS_NO_CHANGE 0
113#define DEBUG_STATUS_GO 1
114#define DEBUG_STATUS_GO_HANDLED 2
115#define DEBUG_STATUS_GO_NOT_HANDLED 3
116#define DEBUG_STATUS_STEP_OVER 4
117#define DEBUG_STATUS_STEP_INTO 5
118#define DEBUG_STATUS_BREAK 6
119#define DEBUG_STATUS_NO_DEBUGGEE 7
120#define DEBUG_STATUS_STEP_BRANCH 8
121#define DEBUG_STATUS_IGNORE_EVENT 9
122#define DEBUG_STATUS_RESTART_REQUESTED 10
123#define DEBUG_STATUS_REVERSE_GO 11
124#define DEBUG_STATUS_REVERSE_STEP_BRANCH 12
125#define DEBUG_STATUS_REVERSE_STEP_OVER 13
126#define DEBUG_STATUS_REVERSE_STEP_INTO 14
127#define DEBUG_STATUS_OUT_OF_SYNC 15
128#define DEBUG_STATUS_WAIT_INPUT 16
129#define DEBUG_STATUS_TIMEOUT 17
130#define DEBUG_STATUS_MASK 0x1f
131
132/* ChangeSymbolState() flags */
133#define DEBUG_CSS_LOADS 0x00000001
134#define DEBUG_CSS_UNLOADS 0x00000002
135#define DEBUG_CSS_SCOPE 0x00000004
136#define DEBUG_CSS_PATHS 0x00000008
137#define DEBUG_CSS_SYMBOL_OPTIONS 0x00000010
138#define DEBUG_CSS_TYPE_OPTIONS 0x00000020
139#define DEBUG_CSS_COLLAPSE_CHILDREN 0x00000040
140#define DEBUG_CSS_ALL 0xffffffff
141
142/* SessionStatus() flags */
143#define DEBUG_SESSION_ACTIVE 0x00000000
144#define DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE 0x00000001
145#define DEBUG_SESSION_END_SESSION_ACTIVE_DETACH 0x00000002
146#define DEBUG_SESSION_END_SESSION_PASSIVE 0x00000003
147#define DEBUG_SESSION_END 0x00000004
148#define DEBUG_SESSION_REBOOT 0x00000005
149#define DEBUG_SESSION_HIBERNATE 0x00000006
150#define DEBUG_SESSION_FAILURE 0x00000007
151
152/* ChangeDebuggeeState() flags */
153#define DEBUG_CDS_REGISTERS 0x00000001
154#define DEBUG_CDS_DATA 0x00000002
155#define DEBUG_CDS_REFRESH 0x00000004
156#define DEBUG_CDS_ALL 0xffffffff
157
158#define DEBUG_CDS_REFRESH_EVALUATE 1
159#define DEBUG_CDS_REFRESH_EXECUTE 2
160#define DEBUG_CDS_REFRESH_EXECUTECOMMANDFILE 3
161#define DEBUG_CDS_REFRESH_ADDBREAKPOINT 4
162#define DEBUG_CDS_REFRESH_REMOVEBREAKPOINT 5
163#define DEBUG_CDS_REFRESH_WRITEVIRTUAL 6
164#define DEBUG_CDS_REFRESH_WRITEVIRTUALUNCACHED 7
165#define DEBUG_CDS_REFRESH_WRITEPHYSICAL 8
166#define DEBUG_CDS_REFRESH_WRITEPHYSICAL2 9
167#define DEBUG_CDS_REFRESH_SETVALUE 10
168#define DEBUG_CDS_REFRESH_SETVALUE2 11
169#define DEBUG_CDS_REFRESH_SETSCOPE 12
170#define DEBUG_CDS_REFRESH_SETSCOPEFRAMEBYINDEX 13
171#define DEBUG_CDS_REFRESH_SETSCOPEFROMJITDEBUGINFO 14
172#define DEBUG_CDS_REFRESH_SETSCOPEFROMSTOREDEVENT 15
173#define DEBUG_CDS_REFRESH_INLINESTEP 16
174#define DEBUG_CDS_REFRESH_INLINESTEP_PSEUDO 17
175
176/* GetModuleNameString() indices */
177#define DEBUG_MODNAME_IMAGE 0
178#define DEBUG_MODNAME_MODULE 1
179#define DEBUG_MODNAME_LOADED_IMAGE 2
180#define DEBUG_MODNAME_SYMBOL_FILE 3
181#define DEBUG_MODNAME_MAPPED_IMAGE 4
182
183#define DEBUG_CLASS_UNINITIALIZED 0
184#define DEBUG_CLASS_KERNEL 1
185#define DEBUG_CLASS_USER_WINDOWS 2
186#define DEBUG_CLASS_IMAGE_FILE 3
187
188#define DEBUG_DUMP_SMALL 1024
189#define DEBUG_DUMP_DEFAULT 1025
190#define DEBUG_DUMP_FULL 1026
191#define DEBUG_DUMP_IMAGE_FILE 1027
192#define DEBUG_DUMP_TRACE_LOG 1028
193#define DEBUG_DUMP_WINDOWS_CE 1029
194#define DEBUG_DUMP_ACTIVE 1030
195
196#define DEBUG_USER_WINDOWS_PROCESS 0
197#define DEBUG_USER_WINDOWS_PROCESS_SERVER 1
198#define DEBUG_USER_WINDOWS_IDNA 2
199#define DEBUG_USER_WINDOWS_REPT 3
200#define DEBUG_USER_WINDOWS_SMALL_DUMP DEBUG_DUMP_SMALL
201#define DEBUG_USER_WINDOWS_DUMP DEBUG_DUMP_DEFAULT
202#define DEBUG_USER_WINDOWS_DUMP_WINDOWS_CE DEBUG_DUMP_WINDOWS_CE
203
204#define DEBUG_INVALID_OFFSET ((ULONG64)-1)
205#define DEBUG_ANY_ID 0xffffffff
206
207#ifndef __IDebugClient_FWD_DEFINED__
208#define __IDebugClient_FWD_DEFINED__
209typedef interface IDebugClient IDebugClient;
210#ifdef __cplusplus
211interface IDebugClient;
212#endif /* __cplusplus */
213#endif
214
215
217{
231
233{
241
242typedef struct _DEBUG_STACK_FRAME
243{
254
255typedef struct _DEBUG_VALUE
256{
257 union
258 {
262 struct
263 {
266 };
267 float F32;
268 double F64;
276 float VF32[4];
277 double VF64[2];
278 struct
279 {
283 struct
284 {
289 };
293
295{
309
310typedef struct _WINDBG_EXTENSION_APIS32 *PWINDBG_EXTENSION_APIS32;
311typedef struct _WINDBG_EXTENSION_APIS64 *PWINDBG_EXTENSION_APIS64;
312typedef struct _MEMORY_BASIC_INFORMATION64 *PMEMORY_BASIC_INFORMATION64;
313
315{
322
324{
332
334{
338
340{
344
346{
360
362{
376
377#define INTERFACE IDebugBreakpoint
378DECLARE_INTERFACE_(IDebugBreakpoint, IUnknown)
379{
380 /* IUnknown */
384 /* IDebugBreakpoint */
385 STDMETHOD(GetId)(THIS_ PULONG id) PURE;
387 STDMETHOD(GetAdder)(THIS_ IDebugClient **adder) PURE;
388 STDMETHOD(GetFlags)(THIS_ PULONG flags) PURE;
389 STDMETHOD(AddFlags)(THIS_ ULONG flags) PURE;
390 STDMETHOD(RemoveFlags)(THIS_ ULONG flags) PURE;
391 STDMETHOD(SetFlags)(THIS_ ULONG flags) PURE;
392 STDMETHOD(GetOffset)(THIS_ PULONG64 offset) PURE;
393 STDMETHOD(SetOffset)(THIS_ ULONG64 offset) PURE;
394 STDMETHOD(GetDataParameters)(THIS_ PULONG size, PULONG access) PURE;
395 STDMETHOD(SetDataParameters)(THIS_ ULONG size, ULONG access) PURE;
396 STDMETHOD(GetPassCount)(THIS_ PULONG count) PURE;
397 STDMETHOD(SetPassCount)(THIS_ ULONG count) PURE;
398 STDMETHOD(GetCurrentPassCount)(THIS_ PULONG count) PURE;
399 STDMETHOD(GetMatchThreadId)(THIS_ PULONG id) PURE;
400 STDMETHOD(SetMatchThreadId)(THIS_ ULONG thread) PURE;
401 STDMETHOD(GetCommand)(THIS_ PSTR buffer, ULONG buf_size, PULONG command) PURE;
402 STDMETHOD(SetCommand)(THIS_ PCSTR command) PURE;
403 STDMETHOD(GetOffsetExpression)(THIS_ PSTR buffer, ULONG buf_size, PULONG expression) PURE;
404 STDMETHOD(SetOffsetExpression)(THIS_ PCSTR expression) PURE;
406};
407#undef INTERFACE
408
409#define INTERFACE IDebugBreakpoint2
410DECLARE_INTERFACE_(IDebugBreakpoint2, IUnknown)
411{
412 /* IUnknown */
416 /* IDebugBreakpoint */
417 STDMETHOD(GetId)(THIS_ PULONG id) PURE;
419 STDMETHOD(GetAdder)(THIS_ IDebugClient **adder) PURE;
420 STDMETHOD(GetFlags)(THIS_ PULONG flags) PURE;
421 STDMETHOD(AddFlags)(THIS_ ULONG flags) PURE;
422 STDMETHOD(RemoveFlags)(THIS_ ULONG flags) PURE;
423 STDMETHOD(SetFlags)(THIS_ ULONG flags) PURE;
424 STDMETHOD(GetOffset)(THIS_ PULONG64 offset) PURE;
425 STDMETHOD(SetOffset)(THIS_ ULONG64 offset) PURE;
426 STDMETHOD(GetDataParameters)(THIS_ PULONG size, PULONG access) PURE;
427 STDMETHOD(SetDataParameters)(THIS_ ULONG size, ULONG access) PURE;
428 STDMETHOD(GetPassCount)(THIS_ PULONG count) PURE;
429 STDMETHOD(SetPassCount)(THIS_ ULONG count) PURE;
430 STDMETHOD(GetCurrentPassCount)(THIS_ PULONG count) PURE;
431 STDMETHOD(GetMatchThreadId)(THIS_ PULONG id) PURE;
432 STDMETHOD(SetMatchThreadId)(THIS_ ULONG thread) PURE;
433 STDMETHOD(GetCommand)(THIS_ PSTR buffer, ULONG buf_size, PULONG command) PURE;
434 STDMETHOD(SetCommand)(THIS_ PCSTR command) PURE;
435 STDMETHOD(GetOffsetExpression)(THIS_ PSTR buffer, ULONG buf_size, PULONG expression) PURE;
436 STDMETHOD(SetOffsetExpression)(THIS_ PCSTR expression) PURE;
438 /* IDebugBreakpoint2. */
439 STDMETHOD(GetCommandWide)(THIS_ PWSTR buffer, ULONG buf_size, PULONG command) PURE;
440 STDMETHOD(SetCommandWide)(THIS_ PCWSTR command) PURE;
441 STDMETHOD(GetOffsetExpressionWide)(THIS_ PWSTR buffer, ULONG buf_size, PULONG expression) PURE;
442 STDMETHOD(SetOffsetExpressionWide)(THIS_ PCWSTR expression) PURE;
443};
444#undef INTERFACE
445
446
447#define INTERFACE IDebugSymbolGroup
448DECLARE_INTERFACE_(IDebugSymbolGroup, IUnknown)
449{
450 /* IUnknown */
454 /* IDebugSymbolGroup */
455 STDMETHOD(GetNumberSymbols)(THIS_ PULONG number) PURE;
457 STDMETHOD(RemoveSymbolByName)(THIS_ PCSTR name) PURE;
458 STDMETHOD(RemoveSymbolByIndex)(THIS_ ULONG index) PURE;
459 STDMETHOD(GetSymbolName)(THIS_ ULONG index, PSTR buffer, ULONG buf_size, PULONG name_size) PURE;
461 STDMETHOD(ExpandSymbol)(THIS_ ULONG index, BOOL expand) PURE;
462 STDMETHOD(OutputSymbols)(THIS_ ULONG control, ULONG flags, ULONG start, ULONG count) PURE;
463 STDMETHOD(WriteSymbol)(THIS_ ULONG index, PCSTR value) PURE;
464 STDMETHOD(OutputAsType)(THIS_ ULONG index, PCSTR type) PURE;
465};
466#undef INTERFACE
467
468#define INTERFACE IDebugSymbolGroup2
469DECLARE_INTERFACE_(IDebugSymbolGroup2, IUnknown)
470{
471 /* IUnknown */
475 /* IDebugSymbolGroup */
476 STDMETHOD(GetNumberSymbols)(THIS_ PULONG number) PURE;
478 STDMETHOD(RemoveSymbolByName)(THIS_ PCSTR name) PURE;
479 STDMETHOD(RemoveSymbolByIndex)(THIS_ ULONG index) PURE;
480 STDMETHOD(GetSymbolName)(THIS_ ULONG index, PSTR buffer, ULONG buf_size, PULONG name_size) PURE;
482 STDMETHOD(ExpandSymbol)(THIS_ ULONG index, BOOL expand) PURE;
483 STDMETHOD(OutputSymbols)(THIS_ ULONG control, ULONG flags, ULONG start, ULONG count) PURE;
484 STDMETHOD(WriteSymbol)(THIS_ ULONG index, PCSTR value) PURE;
485 STDMETHOD(OutputAsType)(THIS_ ULONG index, PCSTR type) PURE;
486 /* IDebugSymbolGroup2 */
487 STDMETHOD(AddSymbolWide)(THIS_ PCWSTR name, PULONG index) PURE;
488 STDMETHOD(RemoveSymbolByNameWide)(THIS_ PCWSTR name) PURE;
489 STDMETHOD(GetSymbolNameWide)(THIS_ ULONG index, PWSTR buffer, ULONG buf_size, PULONG size) PURE;
490 STDMETHOD(WriteSymbolWide)(THIS_ ULONG index, PCWSTR value) PURE;
491 STDMETHOD(OutputAsTypeWide)(THIS_ ULONG index, PCWSTR type) PURE;
492 STDMETHOD(GetSymbolTypeName)(THIS_ ULONG index, PSTR buffer, ULONG buf_size, PULONG size) PURE;
493 STDMETHOD(GetSymbolTypeNameWide)(THIS_ ULONG index, PWSTR buffer, ULONG buf_size, PULONG size) PURE;
494 STDMETHOD(GetSymbolSize)(THIS_ ULONG index, PULONG size) PURE;
495 STDMETHOD(GetSymbolOffset)(THIS_ ULONG index, PULONG64 offset) PURE;
496 STDMETHOD(GetSymbolRegister)(THIS_ ULONG index, PULONG reg) PURE;
497 STDMETHOD(GetSymbolValueText)(THIS_ ULONG index, PSTR buffer, ULONG buf_size, PULONG size) PURE;
498 STDMETHOD(GetSymbolValueTextWide)(THIS_ ULONG index, PWSTR buffer, ULONG buf_size, PULONG size) PURE;
499 STDMETHOD(GetSymbolEntryInformation)(THIS_ ULONG index, PDEBUG_SYMBOL_ENTRY entry) PURE;
500};
501#undef INTERFACE
502
503typedef IDebugBreakpoint *PDEBUG_BREAKPOINT;
504typedef IDebugSymbolGroup2 *PDEBUG_SYMBOL_GROUP2;
505
506#define INTERFACE IDebugInputCallbacks
507DECLARE_INTERFACE_(IDebugInputCallbacks, IUnknown)
508{
509 /* IUnknown */
513 /* IDebugInputCallbacks */
514 STDMETHOD(StartInput)(THIS_ ULONG buffer_size) PURE;
515 STDMETHOD(EndInput)(THIS) PURE;
516};
517#undef INTERFACE
518
519#define INTERFACE IDebugOutputCallbacks
520DECLARE_INTERFACE_(IDebugOutputCallbacks, IUnknown)
521{
522 /* IUnknown */
526 /* IDebugOutputCallbacks */
527 STDMETHOD(Output)(THIS_ ULONG mask, const char *text) PURE;
528};
529#undef INTERFACE
530
531#define INTERFACE IDebugOutputCallbacksWide
532DECLARE_INTERFACE_(IDebugOutputCallbacksWide, IUnknown)
533{
534 /* IUnknown */
538 /* IDebugOutputCallbacksWide */
540};
541#undef INTERFACE
542
543#ifdef WINE_NO_UNICODE_MACROS
544#undef CreateProcess
545#endif
546
547#define INTERFACE IDebugEventCallbacks
548DECLARE_INTERFACE_(IDebugEventCallbacks, IUnknown)
549{
550 /* IUnknown */
554 /* IDebugEventCallbacks */
555 STDMETHOD(GetInterestMask)(THIS_ ULONG *mask) PURE;
557 STDMETHOD(Exception)(THIS_ EXCEPTION_RECORD64 *exception, ULONG first_chance) PURE;
558 STDMETHOD(CreateThread)(THIS_ ULONG64 handle, ULONG64 data_offset, ULONG64 start_offset) PURE;
560 STDMETHOD(CreateProcess)(THIS_ ULONG64 image_handle, ULONG64 handle, ULONG64 base_offset, ULONG module_size,
561 const char *module_name, const char *image_name, ULONG checksum, ULONG timedatestamp,
562 ULONG64 initial_thread_handle, ULONG64 thread_data_offset, ULONG64 start_offset) PURE;
564 STDMETHOD(LoadModule)(THIS_ ULONG64 image_handle, ULONG64 base_offset, ULONG module_size, const char *module_name,
565 const char *image_name, ULONG checksum, ULONG timedatestamp) PURE;
566 STDMETHOD(UnloadModule)(THIS_ const char *image_basename, ULONG64 base_offset) PURE;
568 STDMETHOD(SessionStatus)(THIS_ ULONG status) PURE;
569 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG flags, ULONG64 argument) PURE;
570 STDMETHOD(ChangeEngineState)(THIS_ ULONG flags, ULONG64 argument) PURE;
571 STDMETHOD(ChangeSymbolState)(THIS_ ULONG flags, ULONG64 argument) PURE;
572};
573#undef INTERFACE
574
575#define INTERFACE IDebugEventCallbacksWide
576DECLARE_INTERFACE_(IDebugEventCallbacksWide, IUnknown)
577{
578 /* IUnknown */
582
583 /* IDebugEventCallbacksWide */
584 STDMETHOD(GetInterestMask)(THIS_ ULONG *mask) PURE;
586 STDMETHOD(Exception)(THIS_ EXCEPTION_RECORD64 *exception, ULONG first_chance) PURE;
587 STDMETHOD(CreateThread)(THIS_ ULONG64 handle, ULONG64 data_offset, ULONG64 start_offset) PURE;
589 STDMETHOD(CreateProcess)(THIS_ ULONG64 image_handle, ULONG64 handle, ULONG64 base_offset, ULONG module_size,
590 const WCHAR *module_name, const WCHAR *image_name, ULONG checksum, ULONG timedatestamp,
591 ULONG64 initial_thread_handle, ULONG64 thread_data_offset, ULONG64 start_offset) PURE;
593 STDMETHOD(LoadModule)(THIS_ ULONG64 image_handle, ULONG64 base_offset, ULONG module_size, const WCHAR *module_name,
594 const WCHAR *image_name, ULONG checksum, ULONG timedatestamp) PURE;
595 STDMETHOD(UnloadModule)(THIS_ const WCHAR *image_basename, ULONG64 base_offset) PURE;
597 STDMETHOD(SessionStatus)(THIS_ ULONG status) PURE;
598 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG flags, ULONG64 argument) PURE;
599 STDMETHOD(ChangeEngineState)(THIS_ ULONG flags, ULONG64 argument) PURE;
600 STDMETHOD(ChangeSymbolState)(THIS_ ULONG flags, ULONG64 argument) PURE;
601};
602#undef INTERFACE
603
604#define INTERFACE IDebugEventContextCallbacks
605DECLARE_INTERFACE_(IDebugEventContextCallbacks, IUnknown)
606{
607 /* IUnknown */
611
612 /* IDebugEventContextCallbacks */
613 STDMETHOD(GetInterestMask)(THIS_ ULONG *mask) PURE;
614 STDMETHOD(Breakpoint)(THIS_ IDebugBreakpoint2 *bp, void *context, ULONG size) PURE;
615 STDMETHOD(Exception)(THIS_ EXCEPTION_RECORD64 *exception, ULONG firstchance, void *context, ULONG size) PURE;
616 STDMETHOD(CreateThread)(THIS_ ULONG64 handle, ULONG64 data_offset, ULONG64 start_offset, void *context, ULONG size) PURE;
618
619 STDMETHOD(CreateProcess)(THIS_ ULONG64 image_handle, ULONG64 handle, ULONG64 baseoffset, ULONG module_size,
620 const WCHAR *module_name, const WCHAR image_name, ULONG checksum, ULONG timestamp, ULONG64 initial,
621 ULONG64 thread_offset, ULONG64 start_offset, void *context, ULONG size) PURE;
623 STDMETHOD(LoadModule)(THIS_ ULONG64 image_handle, ULONG64 baseoffset, ULONG module_size, const WCHAR *module_name,
624 const WCHAR *image_name, ULONG checksum, ULONG timestamp, void *context, ULONG size) PURE;
625 STDMETHOD(UnloadModule)(THIS_ const WCHAR *image_name, ULONG64 offset, void *context, ULONG size) PURE;
627 STDMETHOD(SessionStatus)(THIS_ ULONG status) PURE;
628 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG flags, ULONG64 argument, void *context, ULONG size) PURE;
629 STDMETHOD(ChangeEngineState)(THIS_ ULONG flags, ULONG64 argument, void *context, ULONG size) PURE;
630 STDMETHOD(ChangeSymbolState)(THIS_ ULONG flags, ULONG64 argument) PURE;
631};
632#undef INTERFACE
633
634#define INTERFACE IDebugClient
636{
637 /* IUnknown */
641 /* IDebugClient */
642 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
643 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
644 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
645 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
646 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
647 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
648 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
649 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
651 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
652 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
653 ULONG *actual_description_size) PURE;
656 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
657 ULONG pid, ULONG attach_flags) PURE;
658 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
659 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
660 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
661 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
662 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
663 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
664 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
665 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
666 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
667 STDMETHOD(TerminateProcesses)(THIS) PURE;
668 STDMETHOD(DetachProcesses)(THIS) PURE;
669 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
670 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
671 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
672 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
673 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
674 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
675 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
676 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
677 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
678 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
679 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
680 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
681 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
682 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
683 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
684 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
685 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
686 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
687 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
688 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
689 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
690 STDMETHOD(FlushCallbacks)(THIS) PURE;
691};
692#undef INTERFACE
693
694#define INTERFACE IDebugClient2
696{
697 /* IUnknown */
701 /* IDebugClient */
702 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
703 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
704 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
705 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
706 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
707 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
708 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
709 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
711 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
712 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
713 ULONG *actual_description_size) PURE;
716 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
717 ULONG pid, ULONG attach_flags) PURE;
718 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
719 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
720 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
721 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
722 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
723 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
724 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
725 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
726 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
727 STDMETHOD(TerminateProcesses)(THIS) PURE;
728 STDMETHOD(DetachProcesses)(THIS) PURE;
729 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
730 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
731 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
732 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
733 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
734 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
735 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
736 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
737 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
738 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
739 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
740 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
741 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
742 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
743 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
744 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
745 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
746 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
747 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
748 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
749 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
750 STDMETHOD(FlushCallbacks)(THIS) PURE;
751 /* IDebugClient2 */
752 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
753 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
754 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
755 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
756 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
757 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
758 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
759 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
760};
761#undef INTERFACE
762
763#define INTERFACE IDebugClient3
765{
766 /* IUnknown */
770 /* IDebugClient */
771 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
772 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
773 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
774 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
775 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
776 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
777 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
778 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
780 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
781 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
782 ULONG *actual_description_size) PURE;
785 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
786 ULONG pid, ULONG attach_flags) PURE;
787 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
788 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
789 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
790 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
791 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
792 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
793 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
794 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
795 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
796 STDMETHOD(TerminateProcesses)(THIS) PURE;
797 STDMETHOD(DetachProcesses)(THIS) PURE;
798 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
799 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
800 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
801 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
802 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
803 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
804 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
805 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
806 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
807 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
808 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
809 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
810 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
811 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
812 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
813 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
814 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
815 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
816 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
817 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
818 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
819 STDMETHOD(FlushCallbacks)(THIS) PURE;
820 /* IDebugClient2 */
821 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
822 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
823 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
824 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
825 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
826 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
827 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
828 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
829 /* IDebugClient3 */
830 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
831 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
832 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
833 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
834 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
835 ULONG processid,ULONG attachflags) PURE;
836};
837#undef INTERFACE
838
839#define INTERFACE IDebugClient4
841{
842 /* IUnknown */
846 /* IDebugClient */
847 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
848 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
849 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
850 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
851 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
852 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
853 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
854 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
856 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
857 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
858 ULONG *actual_description_size) PURE;
861 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
862 ULONG pid, ULONG attach_flags) PURE;
863 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
864 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
865 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
866 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
867 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
868 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
869 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
870 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
871 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
872 STDMETHOD(TerminateProcesses)(THIS) PURE;
873 STDMETHOD(DetachProcesses)(THIS) PURE;
874 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
875 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
876 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
877 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
878 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
879 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
880 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
881 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
882 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
883 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
884 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
885 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
886 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
887 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
888 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
889 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
890 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
891 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
892 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
893 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
894 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
895 STDMETHOD(FlushCallbacks)(THIS) PURE;
896 /* IDebugClient2 */
897 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
898 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
899 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
900 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
901 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
902 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
903 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
904 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
905 /* IDebugClient3 */
906 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
907 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
908 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
909 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
910 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
911 ULONG processid,ULONG attachflags) PURE;
912 /* IDebugClient4 */
913 STDMETHOD(OpenDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle) PURE;
914 STDMETHOD(WriteDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle, ULONG qualifier, ULONG Flags, const WCHAR *comment) PURE;
915 STDMETHOD(AddDumpInformationFileWide)(THIS_ const WCHAR *filename,ULONG64 handle, ULONG type) PURE;
916 STDMETHOD(GetNumberDumpFiles)(THIS_ ULONG *count) PURE;
917 STDMETHOD(GetDumpFile)(THIS_ ULONG index, char *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle, ULONG *type) PURE;
918 STDMETHOD(GetDumpFileWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle,ULONG *type) PURE;
919};
920#undef INTERFACE
921
922#define INTERFACE IDebugClient5
924{
925 /* IUnknown */
929 /* IDebugClient */
930 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
931 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
932 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
933 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
934 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
935 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
936 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
937 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
939 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
940 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
941 ULONG *actual_description_size) PURE;
944 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
945 ULONG pid, ULONG attach_flags) PURE;
946 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
947 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
948 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
949 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
950 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
951 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
952 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
953 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
954 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
955 STDMETHOD(TerminateProcesses)(THIS) PURE;
956 STDMETHOD(DetachProcesses)(THIS) PURE;
957 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
958 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
959 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
960 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
961 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
962 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
963 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
964 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
965 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
966 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
967 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
968 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
969 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
970 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
971 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
972 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
973 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
974 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
975 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
976 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
977 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
978 STDMETHOD(FlushCallbacks)(THIS) PURE;
979 /* IDebugClient2 */
980 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
981 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
982 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
983 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
984 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
985 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
986 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
987 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
988 /* IDebugClient3 */
989 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
990 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
991 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
992 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
993 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
994 ULONG processid,ULONG attachflags) PURE;
995 /* IDebugClient4 */
996 STDMETHOD(OpenDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle) PURE;
997 STDMETHOD(WriteDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle, ULONG qualifier, ULONG Flags, const WCHAR *comment) PURE;
998 STDMETHOD(AddDumpInformationFileWide)(THIS_ const WCHAR *filename,ULONG64 handle, ULONG type) PURE;
999 STDMETHOD(GetNumberDumpFiles)(THIS_ ULONG *count) PURE;
1000 STDMETHOD(GetDumpFile)(THIS_ ULONG index, char *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle, ULONG *type) PURE;
1001 STDMETHOD(GetDumpFileWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle,ULONG *type) PURE;
1002 /* IDebugClient5 */
1003 STDMETHOD(AttachKernelWide)(THIS_ ULONG flags, const WCHAR *options) PURE;
1004 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1005 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ const WCHAR *options) PURE;
1006 STDMETHOD(StartProcessServerWide)(THIS_ ULONG flags, const WCHAR *options, void *reserved) PURE;
1007 STDMETHOD(ConnectProcessServerWide)(THIS_ const WCHAR *options, ULONG64 *server) PURE;
1008 STDMETHOD(StartServerWide)(THIS_ const WCHAR *options) PURE;
1009 STDMETHOD(OutputServersWide)(THIS_ ULONG control, const WCHAR *machine, ULONG flags) PURE;
1010 STDMETHOD(GetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide **callbacks) PURE;
1011 STDMETHOD(SetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide *callbacks) PURE;
1012 STDMETHOD(GetOutputLinePrefixWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1013 STDMETHOD(SetOutputLinePrefixWide)(THIS_ const WCHAR *prefix) PURE;
1014 STDMETHOD(GetIdentityWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *identity) PURE;
1015 STDMETHOD(OutputIdentityWide)(THIS_ ULONG control, ULONG flags, const WCHAR *format) PURE;
1016 STDMETHOD(GetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide **callbacks) PURE;
1017 STDMETHOD(SetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide *callbacks) PURE;
1018 STDMETHOD(CreateProcess2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1019 const char *initial, const char *environment) PURE;
1020 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 server, WCHAR *command, void *options, ULONG size,
1021 const WCHAR *initial, const WCHAR *environment) PURE;
1022 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1023 const char *initial, const char *environment, ULONG processid, ULONG flags) PURE;
1024 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 server, WCHAR *command, void *buffer, ULONG buf_size,
1025 const WCHAR *initial, const WCHAR *environment, ULONG processid, ULONG flags) PURE;
1026 STDMETHOD(PushOutputLinePrefix)(THIS_ const char *prefix, ULONG64 *handle) PURE;
1027 STDMETHOD(PushOutputLinePrefixWide)(THIS_ const WCHAR *prefix, ULONG64 *handle) PURE;
1028 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 handle) PURE;
1029 STDMETHOD(GetNumberInputCallbacks)(THIS_ ULONG *count) PURE;
1030 STDMETHOD(GetNumberOutputCallbacks)(THIS_ ULONG *count) PURE;
1031 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG flags, ULONG *count) PURE;
1032 STDMETHOD(GetQuitLockString)(THIS_ char *buffer, ULONG buf_size, ULONG *size) PURE;
1033 STDMETHOD(SetQuitLockString)(THIS_ char *string) PURE;
1034 STDMETHOD(GetQuitLockStringWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1035 STDMETHOD(SetQuitLockStringWide)(THIS_ const WCHAR *string) PURE;
1036};
1037#undef INTERFACE
1038
1039#define INTERFACE IDebugClient6
1041{
1042 /* IUnknown */
1046 /* IDebugClient */
1047 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
1048 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
1049 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
1050 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
1051 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
1052 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
1053 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
1054 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
1055 ULONG flags, ULONG *id) PURE;
1056 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
1057 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
1058 ULONG *actual_description_size) PURE;
1059 STDMETHOD(AttachProcess)(THIS_ ULONG64 server, ULONG pid, ULONG flags) PURE;
1061 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
1062 ULONG pid, ULONG attach_flags) PURE;
1063 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
1064 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
1065 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
1066 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
1067 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
1068 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
1069 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
1070 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
1071 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
1072 STDMETHOD(TerminateProcesses)(THIS) PURE;
1073 STDMETHOD(DetachProcesses)(THIS) PURE;
1074 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
1075 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
1076 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
1077 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
1078 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
1079 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
1080 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
1081 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
1082 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
1083 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
1084 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
1085 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
1086 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
1087 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
1088 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
1089 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
1090 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
1091 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
1092 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
1093 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
1094 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
1095 STDMETHOD(FlushCallbacks)(THIS) PURE;
1096 /* IDebugClient2 */
1097 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
1098 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
1099 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
1100 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
1101 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
1102 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
1103 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
1104 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
1105 /* IDebugClient3 */
1106 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
1107 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
1108 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
1109 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
1110 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
1111 ULONG processid,ULONG attachflags) PURE;
1112 /* IDebugClient4 */
1113 STDMETHOD(OpenDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle) PURE;
1114 STDMETHOD(WriteDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle, ULONG qualifier, ULONG Flags, const WCHAR *comment) PURE;
1115 STDMETHOD(AddDumpInformationFileWide)(THIS_ const WCHAR *filename,ULONG64 handle, ULONG type) PURE;
1116 STDMETHOD(GetNumberDumpFiles)(THIS_ ULONG *count) PURE;
1117 STDMETHOD(GetDumpFile)(THIS_ ULONG index, char *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle, ULONG *type) PURE;
1118 STDMETHOD(GetDumpFileWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle,ULONG *type) PURE;
1119 /* IDebugClient5 */
1120 STDMETHOD(AttachKernelWide)(THIS_ ULONG flags, const WCHAR *options) PURE;
1121 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1122 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ const WCHAR *options) PURE;
1123 STDMETHOD(StartProcessServerWide)(THIS_ ULONG flags, const WCHAR *options, void *reserved) PURE;
1124 STDMETHOD(ConnectProcessServerWide)(THIS_ const WCHAR *options, ULONG64 *server) PURE;
1125 STDMETHOD(StartServerWide)(THIS_ const WCHAR *options) PURE;
1126 STDMETHOD(OutputServersWide)(THIS_ ULONG control, const WCHAR *machine, ULONG flags) PURE;
1127 STDMETHOD(GetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide **callbacks) PURE;
1128 STDMETHOD(SetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide *callbacks) PURE;
1129 STDMETHOD(GetOutputLinePrefixWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1130 STDMETHOD(SetOutputLinePrefixWide)(THIS_ const WCHAR *prefix) PURE;
1131 STDMETHOD(GetIdentityWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *identity) PURE;
1132 STDMETHOD(OutputIdentityWide)(THIS_ ULONG control, ULONG flags, const WCHAR *format) PURE;
1133 STDMETHOD(GetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide **callbacks) PURE;
1134 STDMETHOD(SetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide *callbacks) PURE;
1135 STDMETHOD(CreateProcess2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1136 const char *initial, const char *environment) PURE;
1137 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 server, WCHAR *command, void *options, ULONG size,
1138 const WCHAR *initial, const WCHAR *environment) PURE;
1139 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1140 const char *initial, const char *environment, ULONG processid, ULONG flags) PURE;
1141 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 server, WCHAR *command, void *buffer, ULONG buf_size,
1142 const WCHAR *initial, const WCHAR *environment, ULONG processid, ULONG flags) PURE;
1143 STDMETHOD(PushOutputLinePrefix)(THIS_ const char *prefix, ULONG64 *handle) PURE;
1144 STDMETHOD(PushOutputLinePrefixWide)(THIS_ const WCHAR *prefix, ULONG64 *handle) PURE;
1145 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 handle) PURE;
1146 STDMETHOD(GetNumberInputCallbacks)(THIS_ ULONG *count) PURE;
1147 STDMETHOD(GetNumberOutputCallbacks)(THIS_ ULONG *count) PURE;
1148 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG flags, ULONG *count) PURE;
1149 STDMETHOD(GetQuitLockString)(THIS_ char *buffer, ULONG buf_size, ULONG *size) PURE;
1150 STDMETHOD(SetQuitLockString)(THIS_ char *string) PURE;
1151 STDMETHOD(GetQuitLockStringWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1152 STDMETHOD(SetQuitLockStringWide)(THIS_ const WCHAR *string) PURE;
1153 /* IDebugClient6 */
1154 STDMETHOD(SetEventContextCallbacks)(THIS_ IDebugEventContextCallbacks *callbacks) PURE;
1155};
1156#undef INTERFACE
1157
1158#define INTERFACE IDebugClient7
1160{
1161 /* IUnknown */
1165 /* IDebugClient */
1166 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
1167 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
1168 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
1169 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
1170 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
1171 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
1172 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
1173 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
1174 ULONG flags, ULONG *id) PURE;
1175 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
1176 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
1177 ULONG *actual_description_size) PURE;
1178 STDMETHOD(AttachProcess)(THIS_ ULONG64 server, ULONG pid, ULONG flags) PURE;
1180 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
1181 ULONG pid, ULONG attach_flags) PURE;
1182 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
1183 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
1184 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
1185 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
1186 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
1187 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
1188 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
1189 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
1190 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
1191 STDMETHOD(TerminateProcesses)(THIS) PURE;
1192 STDMETHOD(DetachProcesses)(THIS) PURE;
1193 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
1194 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
1195 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
1196 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
1197 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
1198 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
1199 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
1200 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
1201 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
1202 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
1203 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
1204 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
1205 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
1206 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
1207 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
1208 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
1209 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
1210 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
1211 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
1212 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
1213 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
1214 STDMETHOD(FlushCallbacks)(THIS) PURE;
1215 /* IDebugClient2 */
1216 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
1217 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
1218 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
1219 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
1220 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
1221 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
1222 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
1223 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
1224 /* IDebugClient3 */
1225 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
1226 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
1227 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
1228 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
1229 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
1230 ULONG processid,ULONG attachflags) PURE;
1231 /* IDebugClient4 */
1232 STDMETHOD(OpenDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle) PURE;
1233 STDMETHOD(WriteDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle, ULONG qualifier, ULONG Flags, const WCHAR *comment) PURE;
1234 STDMETHOD(AddDumpInformationFileWide)(THIS_ const WCHAR *filename,ULONG64 handle, ULONG type) PURE;
1235 STDMETHOD(GetNumberDumpFiles)(THIS_ ULONG *count) PURE;
1236 STDMETHOD(GetDumpFile)(THIS_ ULONG index, char *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle, ULONG *type) PURE;
1237 STDMETHOD(GetDumpFileWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle,ULONG *type) PURE;
1238 /* IDebugClient5 */
1239 STDMETHOD(AttachKernelWide)(THIS_ ULONG flags, const WCHAR *options) PURE;
1240 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1241 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ const WCHAR *options) PURE;
1242 STDMETHOD(StartProcessServerWide)(THIS_ ULONG flags, const WCHAR *options, void *reserved) PURE;
1243 STDMETHOD(ConnectProcessServerWide)(THIS_ const WCHAR *options, ULONG64 *server) PURE;
1244 STDMETHOD(StartServerWide)(THIS_ const WCHAR *options) PURE;
1245 STDMETHOD(OutputServersWide)(THIS_ ULONG control, const WCHAR *machine, ULONG flags) PURE;
1246 STDMETHOD(GetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide **callbacks) PURE;
1247 STDMETHOD(SetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide *callbacks) PURE;
1248 STDMETHOD(GetOutputLinePrefixWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1249 STDMETHOD(SetOutputLinePrefixWide)(THIS_ const WCHAR *prefix) PURE;
1250 STDMETHOD(GetIdentityWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *identity) PURE;
1251 STDMETHOD(OutputIdentityWide)(THIS_ ULONG control, ULONG flags, const WCHAR *format) PURE;
1252 STDMETHOD(GetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide **callbacks) PURE;
1253 STDMETHOD(SetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide *callbacks) PURE;
1254 STDMETHOD(CreateProcess2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1255 const char *initial, const char *environment) PURE;
1256 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 server, WCHAR *command, void *options, ULONG size,
1257 const WCHAR *initial, const WCHAR *environment) PURE;
1258 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1259 const char *initial, const char *environment, ULONG processid, ULONG flags) PURE;
1260 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 server, WCHAR *command, void *buffer, ULONG buf_size,
1261 const WCHAR *initial, const WCHAR *environment, ULONG processid, ULONG flags) PURE;
1262 STDMETHOD(PushOutputLinePrefix)(THIS_ const char *prefix, ULONG64 *handle) PURE;
1263 STDMETHOD(PushOutputLinePrefixWide)(THIS_ const WCHAR *prefix, ULONG64 *handle) PURE;
1264 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 handle) PURE;
1265 STDMETHOD(GetNumberInputCallbacks)(THIS_ ULONG *count) PURE;
1266 STDMETHOD(GetNumberOutputCallbacks)(THIS_ ULONG *count) PURE;
1267 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG flags, ULONG *count) PURE;
1268 STDMETHOD(GetQuitLockString)(THIS_ char *buffer, ULONG buf_size, ULONG *size) PURE;
1269 STDMETHOD(SetQuitLockString)(THIS_ char *string) PURE;
1270 STDMETHOD(GetQuitLockStringWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1271 STDMETHOD(SetQuitLockStringWide)(THIS_ const WCHAR *string) PURE;
1272 /* IDebugClient6 */
1273 STDMETHOD(SetEventContextCallbacks)(THIS_ IDebugEventContextCallbacks *callbacks) PURE;
1274 /* IDebugClient7 */
1275 STDMETHOD(SetClientContext)(THIS_ void *context, ULONG size) PURE;
1276};
1277#undef INTERFACE
1278
1279#define INTERFACE IDebugDataSpaces
1281{
1282 /* IUnknown */
1286 /* IDebugDataSpaces */
1287 STDMETHOD(ReadVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1288 STDMETHOD(WriteVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1289 STDMETHOD(SearchVirtual)(THIS_ ULONG64 offset, ULONG64 length, void *pattern, ULONG pattern_size,
1290 ULONG pattern_granularity, ULONG64 *ret_offset) PURE;
1291 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1292 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1293 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
1294 STDMETHOD(WritePointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
1295 STDMETHOD(ReadPhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1296 STDMETHOD(WritePhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1297 STDMETHOD(ReadControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
1298 ULONG *read_len) PURE;
1299 STDMETHOD(WriteControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
1300 ULONG *written) PURE;
1301 STDMETHOD(ReadIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
1302 ULONG buffer_size, ULONG *read_len) PURE;
1303 STDMETHOD(WriteIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
1304 ULONG buffer_size, ULONG *written) PURE;
1305 STDMETHOD(ReadMsr)(THIS_ ULONG msr, ULONG64 *value) PURE;
1306 STDMETHOD(WriteMsr)(THIS_ ULONG msr, ULONG64 value) PURE;
1307 STDMETHOD(ReadBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
1308 ULONG buffer_size, ULONG *read_len) PURE;
1309 STDMETHOD(WriteBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
1310 ULONG buffer_size, ULONG *written) PURE;
1311 STDMETHOD(CheckLowMemory)(THIS) PURE;
1312 STDMETHOD(ReadDebuggerData)(THIS_ ULONG index, void *buffer, ULONG buffer_size, ULONG *data_size) PURE;
1313 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG processor, ULONG index, void *buffer, ULONG buffer_size,
1314 ULONG *data_size) PURE;
1315};
1316#undef INTERFACE
1317
1318#define INTERFACE IDebugDataSpaces2
1319DECLARE_INTERFACE_(IDebugDataSpaces2, IUnknown)
1320{
1321 /* IUnknown */
1325 /* IDebugDataSpaces */
1326 STDMETHOD(ReadVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1327 STDMETHOD(WriteVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1328 STDMETHOD(SearchVirtual)(THIS_ ULONG64 offset, ULONG64 length, void *pattern, ULONG pattern_size,
1329 ULONG pattern_granularity, ULONG64 *ret_offset) PURE;
1330 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1331 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1332 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
1333 STDMETHOD(WritePointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
1334 STDMETHOD(ReadPhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1335 STDMETHOD(WritePhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1336 STDMETHOD(ReadControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
1337 ULONG *read_len) PURE;
1338 STDMETHOD(WriteControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
1339 ULONG *written) PURE;
1340 STDMETHOD(ReadIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
1341 ULONG buffer_size, ULONG *read_len) PURE;
1342 STDMETHOD(WriteIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
1343 ULONG buffer_size, ULONG *written) PURE;
1344 STDMETHOD(ReadMsr)(THIS_ ULONG msr, ULONG64 *value) PURE;
1345 STDMETHOD(WriteMsr)(THIS_ ULONG msr, ULONG64 value) PURE;
1346 STDMETHOD(ReadBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
1347 ULONG buffer_size, ULONG *read_len) PURE;
1348 STDMETHOD(WriteBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
1349 ULONG buffer_size, ULONG *written) PURE;
1350 STDMETHOD(CheckLowMemory)(THIS) PURE;
1351 STDMETHOD(ReadDebuggerData)(THIS_ ULONG index, void *buffer, ULONG buffer_size, ULONG *data_size) PURE;
1352 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG processor, ULONG index, void *buffer, ULONG buffer_size,
1353 ULONG *data_size) PURE;
1354 /* IDebugDataSpaces2 */
1355 STDMETHOD(VirtualToPhysical)(THIS_ ULONG64 virt, ULONG64 *physical) PURE;
1356 STDMETHOD(GetVirtualTranslationPhysicalOffsets)(THIS_ ULONG64 virt, ULONG64 *offsets, ULONG offsets_size,
1357 ULONG *levels) PURE;
1358 STDMETHOD(ReadHandleData)(THIS_ ULONG64 handle, ULONG datatype, void *buffer, ULONG buffer_size,
1359 ULONG *data_size) PURE;
1360 STDMETHOD(FillVirtual)(THIS_ ULONG64 start, ULONG size, void *pattern, ULONG pattern_size, ULONG *filled) PURE;
1361 STDMETHOD(FillPhysical)(THIS_ ULONG64 start, ULONG size, void *pattern, ULONG pattern_size, ULONG *filled) PURE;
1363};
1364#undef INTERFACE
1365
1366#define INTERFACE IDebugSymbols
1368{
1369 /* IUnknown */
1373 /* IDebugSymbols */
1374 STDMETHOD(GetSymbolOptions)(THIS_ ULONG *options) PURE;
1375 STDMETHOD(AddSymbolOptions)(THIS_ ULONG options) PURE;
1376 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG options) PURE;
1377 STDMETHOD(SetSymbolOptions)(THIS_ ULONG options) PURE;
1378 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 offset, char *buffer, ULONG buffer_size, ULONG *name_size,
1379 ULONG64 *displacement) PURE;
1380 STDMETHOD(GetOffsetByName)(THIS_ const char *symbol, ULONG64 *offset) PURE;
1381 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 offset, LONG delta, char *buffer, ULONG buffer_size,ULONG *name_size,
1382 ULONG64 *displacement) PURE;
1384 ULONG64 *displacement) PURE;
1385 STDMETHOD(GetOffsetByLine)(THIS_ ULONG line, const char *file, ULONG64 *offset) PURE;
1386 STDMETHOD(GetNumberModules)(THIS_ ULONG *loaded, ULONG *unloaded) PURE;
1387 STDMETHOD(GetModuleByIndex)(THIS_ ULONG index, ULONG64 *base) PURE;
1388 STDMETHOD(GetModuleByModuleName)(THIS_ const char *name, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1389 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 offset, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1390 STDMETHOD(GetModuleNames)(THIS_ ULONG index, ULONG64 base, char *image_name, ULONG image_name_buffer_size,
1391 ULONG *image_name_size, char *module_name, ULONG module_name_buffer_size, ULONG *module_name_size,
1392 char *loaded_image_name, ULONG loaded_image_name_buffer_size, ULONG *loaded_image_size) PURE;
1393 STDMETHOD(GetModuleParameters)(THIS_ ULONG count, ULONG64 *bases, ULONG start,
1394 DEBUG_MODULE_PARAMETERS *parameters) PURE;
1395 STDMETHOD(GetSymbolModule)(THIS_ const char *symbol, ULONG64 *base) PURE;
1397 STDMETHOD(GetTypeId)(THIS_ ULONG64 module, const char *name, ULONG *type_id) PURE;
1399 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 base, ULONG type_id, const char *field, ULONG *offset) PURE;
1400 STDMETHOD(GetSymbolTypeId)(THIS_ const char *symbol, ULONG *type_id, ULONG64 *base) PURE;
1401 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 offset, ULONG *type_id, ULONG64 *base) PURE;
1402 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1403 ULONG buffer_size, ULONG *read_len) PURE;
1404 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1405 ULONG buffer_size, ULONG *written) PURE;
1406 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1407 ULONG flags) PURE;
1408 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1409 ULONG buffer_size, ULONG *read_len) PURE;
1410 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1411 ULONG buffer_size, ULONG *written) PURE;
1412 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1413 ULONG flags) PURE;
1414 STDMETHOD(GetScope)(THIS_ ULONG64 *instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1415 ULONG scope_context_size) PURE;
1416 STDMETHOD(SetScope)(THIS_ ULONG64 instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1417 ULONG scope_context_size) PURE;
1418 STDMETHOD(ResetScope)(THIS) PURE;
1419 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG flags, IDebugSymbolGroup *update, IDebugSymbolGroup **symbols) PURE;
1420 STDMETHOD(CreateSymbolGroup)(THIS_ IDebugSymbolGroup **group) PURE;
1421 STDMETHOD(StartSymbolMatch)(THIS_ const char *pattern, ULONG64 *handle) PURE;
1422 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 handle, char *buffer, ULONG buffer_size, ULONG *match_size,
1424 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 handle) PURE;
1425 STDMETHOD(Reload)(THIS_ const char *path) PURE;
1426 STDMETHOD(GetSymbolPath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1427 STDMETHOD(SetSymbolPath)(THIS_ const char *path) PURE;
1428 STDMETHOD(AppendSymbolPath)(THIS_ const char *path) PURE;
1429 STDMETHOD(GetImagePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1430 STDMETHOD(SetImagePath)(THIS_ const char *path) PURE;
1431 STDMETHOD(AppendImagePath)(THIS_ const char *path) PURE;
1432 STDMETHOD(GetSourcePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1433 STDMETHOD(GetSourcePathElement)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *element_size) PURE;
1434 STDMETHOD(SetSourcePath)(THIS_ const char *path) PURE;
1435 STDMETHOD(AppendSourcePath)(THIS_ const char *path) PURE;
1436 STDMETHOD(FindSourceFile)(THIS_ ULONG start, const char *file, ULONG flags, ULONG *found_element, char *buffer,
1437 ULONG buffer_size, ULONG *found_size) PURE;
1438 STDMETHOD(GetSourceFileLineOffsets)(THIS_ const char *file, ULONG64 *buffer, ULONG buffer_lines,
1439 ULONG *file_lines) PURE;
1440};
1441#undef INTERFACE
1442
1443#define INTERFACE IDebugSymbols2
1445{
1446 /* IUnknown */
1450 /* IDebugSymbols */
1451 STDMETHOD(GetSymbolOptions)(THIS_ ULONG *options) PURE;
1452 STDMETHOD(AddSymbolOptions)(THIS_ ULONG options) PURE;
1453 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG options) PURE;
1454 STDMETHOD(SetSymbolOptions)(THIS_ ULONG options) PURE;
1455 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 offset, char *buffer, ULONG buffer_size, ULONG *name_size,
1456 ULONG64 *displacement) PURE;
1457 STDMETHOD(GetOffsetByName)(THIS_ const char *symbol, ULONG64 *offset) PURE;
1458 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 offset, LONG delta, char *buffer, ULONG buffer_size,ULONG *name_size,
1459 ULONG64 *displacement) PURE;
1461 ULONG64 *displacement) PURE;
1462 STDMETHOD(GetOffsetByLine)(THIS_ ULONG line, const char *file, ULONG64 *offset) PURE;
1463 STDMETHOD(GetNumberModules)(THIS_ ULONG *loaded, ULONG *unloaded) PURE;
1464 STDMETHOD(GetModuleByIndex)(THIS_ ULONG index, ULONG64 *base) PURE;
1465 STDMETHOD(GetModuleByModuleName)(THIS_ const char *name, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1466 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 offset, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1467 STDMETHOD(GetModuleNames)(THIS_ ULONG index, ULONG64 base, char *image_name, ULONG image_name_buffer_size,
1468 ULONG *image_name_size, char *module_name, ULONG module_name_buffer_size, ULONG *module_name_size,
1469 char *loaded_image_name, ULONG loaded_image_name_buffer_size, ULONG *loaded_image_size) PURE;
1470 STDMETHOD(GetModuleParameters)(THIS_ ULONG count, ULONG64 *bases, ULONG start,
1471 DEBUG_MODULE_PARAMETERS *parameters) PURE;
1472 STDMETHOD(GetSymbolModule)(THIS_ const char *symbol, ULONG64 *base) PURE;
1474 STDMETHOD(GetTypeId)(THIS_ ULONG64 module, const char *name, ULONG *type_id) PURE;
1476 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 base, ULONG type_id, const char *field, ULONG *offset) PURE;
1477 STDMETHOD(GetSymbolTypeId)(THIS_ const char *symbol, ULONG *type_id, ULONG64 *base) PURE;
1478 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 offset, ULONG *type_id, ULONG64 *base) PURE;
1479 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1480 ULONG buffer_size, ULONG *read_len) PURE;
1481 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1482 ULONG buffer_size, ULONG *written) PURE;
1483 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1484 ULONG flags) PURE;
1485 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1486 ULONG buffer_size, ULONG *read_len) PURE;
1487 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1488 ULONG buffer_size, ULONG *written) PURE;
1489 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1490 ULONG flags) PURE;
1491 STDMETHOD(GetScope)(THIS_ ULONG64 *instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1492 ULONG scope_context_size) PURE;
1493 STDMETHOD(SetScope)(THIS_ ULONG64 instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1494 ULONG scope_context_size) PURE;
1495 STDMETHOD(ResetScope)(THIS) PURE;
1496 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG flags, IDebugSymbolGroup *update, IDebugSymbolGroup **symbols) PURE;
1497 STDMETHOD(CreateSymbolGroup)(THIS_ IDebugSymbolGroup **group) PURE;
1498 STDMETHOD(StartSymbolMatch)(THIS_ const char *pattern, ULONG64 *handle) PURE;
1499 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 handle, char *buffer, ULONG buffer_size, ULONG *match_size,
1501 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 handle) PURE;
1502 STDMETHOD(Reload)(THIS_ const char *path) PURE;
1503 STDMETHOD(GetSymbolPath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1504 STDMETHOD(SetSymbolPath)(THIS_ const char *path) PURE;
1505 STDMETHOD(AppendSymbolPath)(THIS_ const char *path) PURE;
1506 STDMETHOD(GetImagePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1507 STDMETHOD(SetImagePath)(THIS_ const char *path) PURE;
1508 STDMETHOD(AppendImagePath)(THIS_ const char *path) PURE;
1509 STDMETHOD(GetSourcePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1510 STDMETHOD(GetSourcePathElement)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *element_size) PURE;
1511 STDMETHOD(SetSourcePath)(THIS_ const char *path) PURE;
1512 STDMETHOD(AppendSourcePath)(THIS_ const char *path) PURE;
1513 STDMETHOD(FindSourceFile)(THIS_ ULONG start, const char *file, ULONG flags, ULONG *found_element, char *buffer,
1514 ULONG buffer_size, ULONG *found_size) PURE;
1515 STDMETHOD(GetSourceFileLineOffsets)(THIS_ const char *file, ULONG64 *buffer, ULONG buffer_lines,
1516 ULONG *file_lines) PURE;
1517 /* IDebugSymbols2 */
1518 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG index, ULONG64 base, const char *item, void *buffer,
1519 ULONG buffer_size, ULONG *info_size) PURE;
1520 STDMETHOD(GetModuleNameString)(THIS_ ULONG which, ULONG index, ULONG64 base, char *buffer, ULONG buffer_size,
1521 ULONG *name_size) PURE;
1523 ULONG *name_size) PURE;
1524 STDMETHOD(GetFieldName)(THIS_ ULONG64 module, ULONG type_id, ULONG field_index, char *buffer, ULONG buffer_size,
1525 ULONG *name_size) PURE;
1526 STDMETHOD(GetTypeOptions)(THIS_ ULONG *options) PURE;
1527 STDMETHOD(AddTypeOptions)(THIS_ ULONG options) PURE;
1528 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG options) PURE;
1529 STDMETHOD(SetTypeOptions)(THIS_ ULONG options) PURE;
1530};
1531#undef INTERFACE
1532
1533#define INTERFACE IDebugSymbols3
1535{
1536 /* IUnknown */
1540 /* IDebugSymbols */
1541 STDMETHOD(GetSymbolOptions)(THIS_ ULONG *options) PURE;
1542 STDMETHOD(AddSymbolOptions)(THIS_ ULONG options) PURE;
1543 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG options) PURE;
1544 STDMETHOD(SetSymbolOptions)(THIS_ ULONG options) PURE;
1545 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 offset, char *buffer, ULONG buffer_size, ULONG *name_size,
1546 ULONG64 *displacement) PURE;
1547 STDMETHOD(GetOffsetByName)(THIS_ const char *symbol, ULONG64 *offset) PURE;
1548 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 offset, LONG delta, char *buffer, ULONG buffer_size,ULONG *name_size,
1549 ULONG64 *displacement) PURE;
1551 ULONG64 *displacement) PURE;
1552 STDMETHOD(GetOffsetByLine)(THIS_ ULONG line, const char *file, ULONG64 *offset) PURE;
1553 STDMETHOD(GetNumberModules)(THIS_ ULONG *loaded, ULONG *unloaded) PURE;
1554 STDMETHOD(GetModuleByIndex)(THIS_ ULONG index, ULONG64 *base) PURE;
1555 STDMETHOD(GetModuleByModuleName)(THIS_ const char *name, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1556 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 offset, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1557 STDMETHOD(GetModuleNames)(THIS_ ULONG index, ULONG64 base, char *image_name, ULONG image_name_buffer_size,
1558 ULONG *image_name_size, char *module_name, ULONG module_name_buffer_size, ULONG *module_name_size,
1559 char *loaded_image_name, ULONG loaded_image_name_buffer_size, ULONG *loaded_image_size) PURE;
1560 STDMETHOD(GetModuleParameters)(THIS_ ULONG count, ULONG64 *bases, ULONG start,
1561 DEBUG_MODULE_PARAMETERS *parameters) PURE;
1562 STDMETHOD(GetSymbolModule)(THIS_ const char *symbol, ULONG64 *base) PURE;
1564 STDMETHOD(GetTypeId)(THIS_ ULONG64 module, const char *name, ULONG *type_id) PURE;
1566 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 base, ULONG type_id, const char *field, ULONG *offset) PURE;
1567 STDMETHOD(GetSymbolTypeId)(THIS_ const char *symbol, ULONG *type_id, ULONG64 *base) PURE;
1568 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 offset, ULONG *type_id, ULONG64 *base) PURE;
1569 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1570 ULONG buffer_size, ULONG *read_len) PURE;
1571 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1572 ULONG buffer_size, ULONG *written) PURE;
1573 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1574 ULONG flags) PURE;
1575 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1576 ULONG buffer_size, ULONG *read_len) PURE;
1577 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1578 ULONG buffer_size, ULONG *written) PURE;
1579 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1580 ULONG flags) PURE;
1581 STDMETHOD(GetScope)(THIS_ ULONG64 *instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1582 ULONG scope_context_size) PURE;
1583 STDMETHOD(SetScope)(THIS_ ULONG64 instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1584 ULONG scope_context_size) PURE;
1585 STDMETHOD(ResetScope)(THIS) PURE;
1586 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG flags, IDebugSymbolGroup *update, IDebugSymbolGroup **symbols) PURE;
1587 STDMETHOD(CreateSymbolGroup)(THIS_ IDebugSymbolGroup **group) PURE;
1588 STDMETHOD(StartSymbolMatch)(THIS_ const char *pattern, ULONG64 *handle) PURE;
1589 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 handle, char *buffer, ULONG buffer_size, ULONG *match_size,
1591 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 handle) PURE;
1592 STDMETHOD(Reload)(THIS_ const char *path) PURE;
1593 STDMETHOD(GetSymbolPath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1594 STDMETHOD(SetSymbolPath)(THIS_ const char *path) PURE;
1595 STDMETHOD(AppendSymbolPath)(THIS_ const char *path) PURE;
1596 STDMETHOD(GetImagePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1597 STDMETHOD(SetImagePath)(THIS_ const char *path) PURE;
1598 STDMETHOD(AppendImagePath)(THIS_ const char *path) PURE;
1599 STDMETHOD(GetSourcePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1600 STDMETHOD(GetSourcePathElement)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *element_size) PURE;
1601 STDMETHOD(SetSourcePath)(THIS_ const char *path) PURE;
1602 STDMETHOD(AppendSourcePath)(THIS_ const char *path) PURE;
1603 STDMETHOD(FindSourceFile)(THIS_ ULONG start, const char *file, ULONG flags, ULONG *found_element, char *buffer,
1604 ULONG buffer_size, ULONG *found_size) PURE;
1605 STDMETHOD(GetSourceFileLineOffsets)(THIS_ const char *file, ULONG64 *buffer, ULONG buffer_lines,
1606 ULONG *file_lines) PURE;
1607 /* IDebugSymbols2 */
1608 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG index, ULONG64 base, const char *item, void *buffer,
1609 ULONG buffer_size, ULONG *info_size) PURE;
1610 STDMETHOD(GetModuleNameString)(THIS_ ULONG which, ULONG index, ULONG64 base, char *buffer, ULONG buffer_size,
1611 ULONG *name_size) PURE;
1613 ULONG *name_size) PURE;
1614 STDMETHOD(GetFieldName)(THIS_ ULONG64 module, ULONG type_id, ULONG field_index, char *buffer, ULONG buffer_size,
1615 ULONG *name_size) PURE;
1616 STDMETHOD(GetTypeOptions)(THIS_ ULONG *options) PURE;
1617 STDMETHOD(AddTypeOptions)(THIS_ ULONG options) PURE;
1618 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG options) PURE;
1619 STDMETHOD(SetTypeOptions)(THIS_ ULONG options) PURE;
1620 /* IDebugSymbols3 */
1621 STDMETHOD(GetNameByOffsetWide)(THIS_ ULONG64 offset, WCHAR *buffer, ULONG buffer_size, ULONG *name_size,
1622 ULONG64 *displacement) PURE;
1623 STDMETHOD(GetOffsetByNameWide)(THIS_ const WCHAR *symbol, ULONG64 *offset) PURE;
1624 STDMETHOD(GetNearNameByOffsetWide)(THIS_ ULONG64 offset, LONG delta, WCHAR *buffer, ULONG buffer_size,
1625 ULONG *name_size, ULONG64 *displacement) PURE;
1626 STDMETHOD(GetLineByOffsetWide)(THIS_ ULONG64 offset, ULONG *line, WCHAR *buffer, ULONG buffer_size,
1627 ULONG *file_size, ULONG64 *displacement) PURE;
1628 STDMETHOD(GetOffsetByLineWide)(THIS_ ULONG line, const WCHAR *file, ULONG64 *offset) PURE;
1629 STDMETHOD(GetModuleByModuleNameWide)(THIS_ const WCHAR *name, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1630 STDMETHOD(GetSymbolModuleWide)(THIS_ const WCHAR *symbol, ULONG64 *base) PURE;
1632 ULONG *name_size) PURE;
1633 STDMETHOD(GetTypeIdWide)(THIS_ ULONG64 module, const WCHAR *name, ULONG *type_id) PURE;
1634 STDMETHOD(GetFieldOffsetWide)(THIS_ ULONG64 module, ULONG type_id, const WCHAR *field, ULONG *offset) PURE;
1635 STDMETHOD(GetSymbolTypeIdWide)(THIS_ const WCHAR *symbol, ULONG *type_id, ULONG64 *module) PURE;
1636 STDMETHOD(GetScopeSymbolGroup2)(THIS_ ULONG flags, PDEBUG_SYMBOL_GROUP2 update,
1637 PDEBUG_SYMBOL_GROUP2 *symbols) PURE;
1638 STDMETHOD(CreateSymbolGroup2)(THIS_ PDEBUG_SYMBOL_GROUP2 *group) PURE;
1639 STDMETHOD(StartSymbolMatchWide)(THIS_ const WCHAR *pattern, ULONG64 *handle) PURE;
1640 STDMETHOD(GetNextSymbolMatchWide)(THIS_ ULONG64 handle, WCHAR *buffer, ULONG buffer_size, ULONG *match_size,
1642 STDMETHOD(ReloadWide)(THIS_ const WCHAR *module) PURE;
1643 STDMETHOD(GetSymbolPathWide)(THIS_ WCHAR *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1644 STDMETHOD(SetSymbolPathWide)(THIS_ const WCHAR *path) PURE;
1645 STDMETHOD(AppendSymbolPathWide)(THIS_ const WCHAR *addition) PURE;
1646 STDMETHOD(GetImagePathWide)(THIS_ WCHAR *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1647 STDMETHOD(SetImagePathWide)(THIS_ const WCHAR *path) PURE;
1648 STDMETHOD(AppendImagePathWide)(THIS_ const WCHAR *addition) PURE;
1649 STDMETHOD(GetSourcePathWide)(THIS_ WCHAR *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1650 STDMETHOD(GetSourcePathElementWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buffer_size, ULONG *element_size) PURE;
1651 STDMETHOD(SetSourcePathWide)(THIS_ const WCHAR *path) PURE;
1652 STDMETHOD(AppendSourcePathWide)(THIS_ const WCHAR *addition) PURE;
1653 STDMETHOD(FindSourceFileWide)(THIS_ ULONG start_element, const WCHAR *file, ULONG flags, ULONG *found_element,
1654 WCHAR *buffer, ULONG buffer_size, ULONG *found_size) PURE;
1655 STDMETHOD(GetSourceFileLineOffsetsWide)(THIS_ const WCHAR *file, ULONG64 *buffer, ULONG buffer_lines,
1656 ULONG *file_lines) PURE;
1657 STDMETHOD(GetModuleVersionInformationWide)(THIS_ ULONG index, ULONG64 base, const WCHAR *item, void *buffer,
1658 ULONG buffer_size, ULONG *version_info_size) PURE;
1659 STDMETHOD(GetModuleNameStringWide)(THIS_ ULONG which, ULONG index, ULONG64 base, WCHAR *buffer, ULONG buffer_size,
1660 ULONG *name_size) PURE;
1662 ULONG buffer_size, ULONG *name_size) PURE;
1663 STDMETHOD(GetFieldNameWide)(THIS_ ULONG64 module, ULONG type_id, ULONG field_index, WCHAR *buffer,
1664 ULONG buffer_size, ULONG *name_size) PURE;
1665 STDMETHOD(IsManagedModule)(THIS_ ULONG index, ULONG64 base) PURE;
1666 STDMETHOD(GetModuleByModuleName2)(THIS_ const char *name, ULONG start_index, ULONG flags, ULONG *index,
1667 ULONG64 *base) PURE;
1668 STDMETHOD(GetModuleByModuleName2Wide)(THIS_ const WCHAR *name, ULONG start_index, ULONG flags, ULONG *index,
1669 ULONG64 *base) PURE;
1670 STDMETHOD(GetModuleByOffset2)(THIS_ ULONG64 offset, ULONG start_index, ULONG flags, ULONG *index,
1671 ULONG64 *base) PURE;
1672 STDMETHOD(AddSyntheticModule)(THIS_ ULONG64 base, ULONG size, const char *image_path, const char *module_name,
1673 ULONG flags) PURE;
1674 STDMETHOD(AddSyntheticModuleWide)(THIS_ ULONG64 base, ULONG size, const WCHAR *image_path,
1675 const WCHAR *module_name, ULONG flags) PURE;
1676 STDMETHOD(RemoveSyntheticModule)(THIS_ ULONG64 base) PURE;
1677 STDMETHOD(GetCurrentScopeFrameIndex)(THIS_ ULONG *index) PURE;
1678 STDMETHOD(SetScopeFrameByIndex)(THIS_ ULONG index) PURE;
1679 STDMETHOD(SetScopeFromJitDebugInfo)(THIS_ ULONG output_control, ULONG64 info_offset) PURE;
1680 STDMETHOD(SetScopeFromStoredEvent)(THIS) PURE;
1681 STDMETHOD(OutputSymbolByOffset)(THIS_ ULONG output_control, ULONG flags, ULONG64 offset) PURE;
1682 STDMETHOD(GetFunctionEntryByOffset)(THIS_ ULONG64 offset, ULONG flags, void *buffer, ULONG buffer_size,
1683 ULONG *needed_size) PURE;
1684 STDMETHOD(GetFieldTypeAndOffset)(THIS_ ULONG64 module, ULONG container_type_id, const char *field,
1685 ULONG *field_type_id, ULONG *offset) PURE;
1686 STDMETHOD(GetFieldTypeAndOffsetWide)(THIS_ ULONG64 module, ULONG container_type_id, const WCHAR *field,
1687 ULONG *field_type_id, ULONG *offset) PURE;
1688 STDMETHOD(AddSyntheticSymbol)(THIS_ ULONG64 offset, ULONG size, const char *name, ULONG flags,
1690 STDMETHOD(AddSyntheticSymbolWide)(THIS_ ULONG64 offset, ULONG size, const WCHAR *name, ULONG flags,
1692 STDMETHOD(RemoveSyntheticSymbol)(THIS_ DEBUG_MODULE_AND_ID *id) PURE;
1693 STDMETHOD(GetSymbolEntriesByOffset)(THIS_ ULONG64 offset, ULONG flags, DEBUG_MODULE_AND_ID *ids,
1694 LONG64 *displacements, ULONG count, ULONG *entries) PURE;
1695 STDMETHOD(GetSymbolEntriesByName)(THIS_ const char *symbol, ULONG flags, DEBUG_MODULE_AND_ID *ids, ULONG count,
1696 ULONG *entries) PURE;
1697 STDMETHOD(GetSymbolEntriesByNameWide)(THIS_ const WCHAR *symbol, ULONG flags, DEBUG_MODULE_AND_ID *ids,
1698 ULONG count, ULONG *entries) PURE;
1699 STDMETHOD(GetSymbolEntryByToken)(THIS_ ULONG64 base, ULONG token, DEBUG_MODULE_AND_ID *id) PURE;
1700 STDMETHOD(GetSymbolEntryInformation)(THIS_ DEBUG_MODULE_AND_ID *id, DEBUG_SYMBOL_ENTRY *info) PURE;
1701 STDMETHOD(GetSymbolEntryString)(THIS_ DEBUG_MODULE_AND_ID *id, ULONG which, char *buffer, ULONG buffer_size,
1702 ULONG *string_size) PURE;
1704 ULONG *string_size) PURE;
1705 STDMETHOD(GetSymbolEntryOffsetRegions)(THIS_ DEBUG_MODULE_AND_ID *id, ULONG flags, DEBUG_OFFSET_REGION *regions,
1706 ULONG regions_count, ULONG *regions_avail) PURE;
1707 STDMETHOD(GetSymbolEntryBySymbolEntry)(THIS_ DEBUG_MODULE_AND_ID *from_id, ULONG flags,
1708 DEBUG_MODULE_AND_ID *to_id) PURE;
1709 STDMETHOD(GetSourceEntriesByOffset)(THIS_ ULONG64 offset, ULONG flags, DEBUG_SYMBOL_SOURCE_ENTRY *entries,
1710 ULONG count, ULONG *entries_avail) PURE;
1711 STDMETHOD(GetSourceEntriesByLine)(THIS_ ULONG line, const char *file, ULONG flags,
1712 DEBUG_SYMBOL_SOURCE_ENTRY *entries, ULONG count, ULONG *entries_avail) PURE;
1713 STDMETHOD(GetSourceEntriesByLineWide)(THIS_ ULONG line, const WCHAR *file, ULONG flags,
1714 DEBUG_SYMBOL_SOURCE_ENTRY *entries, ULONG count, ULONG *entries_avail) PURE;
1715 STDMETHOD(GetSourceEntryString)(THIS_ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG which, char *buffer,
1716 ULONG buffer_size, ULONG *string_size) PURE;
1717 STDMETHOD(GetSourceEntryStringWide)(THIS_ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG which, WCHAR *buffer,
1718 ULONG buffer_size, ULONG *string_size) PURE;
1719 STDMETHOD(GetSourceEntryOffsetRegions)(THIS_ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG flags,
1720 DEBUG_OFFSET_REGION *regions, ULONG count, ULONG *regions_avail) PURE;
1721 STDMETHOD(GetSourceEntryBySourceEntry)(THIS_ DEBUG_SYMBOL_SOURCE_ENTRY *from_entry, ULONG flags,
1723};
1724#undef INTERFACE
1725
1726#define INTERFACE IDebugControl
1728{
1729 /* IUnknown */
1733 /* IDebugControl */
1734 STDMETHOD(GetInterrupt)(THIS) PURE;
1735 STDMETHOD(SetInterrupt)(THIS_ ULONG flags) PURE;
1736 STDMETHOD(GetInterruptTimeout)(THIS_ ULONG *timeout) PURE;
1737 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG timeout) PURE;
1740 STDMETHOD(CloseLogFile)(THIS) PURE;
1741 STDMETHOD(GetLogMask)(THIS_ ULONG *mask) PURE;
1742 STDMETHOD(SetLogMask)(THIS_ ULONG mask) PURE;
1743 STDMETHOD(Input)(THIS_ char *buffer, ULONG buffer_size, ULONG *input_size) PURE;
1744 STDMETHOD(ReturnInput)(THIS_ const char *buffer) PURE;
1745 STDMETHODV(Output)(THIS_ ULONG mask, const char *format, ...) PURE;
1746 STDMETHOD(OutputVaList)(THIS_ ULONG mask, const char *format, __ms_va_list args) PURE;
1747 STDMETHODV(ControlledOutput)(THIS_ ULONG output_control, ULONG mask, const char *format, ...) PURE;
1748 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG output_control, ULONG mask, const char *format,
1750 STDMETHODV(OutputPrompt)(THIS_ ULONG output_control, const char *format, ...) PURE;
1751 STDMETHOD(OutputPromptVaList)(THIS_ ULONG output_control, const char *format, __ms_va_list args) PURE;
1752 STDMETHOD(GetPromptText)(THIS_ char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
1753 STDMETHOD(OutputCurrentState)(THIS_ ULONG output_control, ULONG flags) PURE;
1754 STDMETHOD(OutputVersionInformation)(THIS_ ULONG output_control) PURE;
1755 STDMETHOD(GetNotifyEventHandle)(THIS_ ULONG64 *handle) PURE;
1756 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 handle) PURE;
1757 STDMETHOD(Assemble)(THIS_ ULONG64 offset, const char *code, ULONG64 *end_offset) PURE;
1758 STDMETHOD(Disassemble)(THIS_ ULONG64 offset, ULONG flags, char *buffer, ULONG buffer_size, ULONG *disassm_size,
1759 ULONG64 *end_offset) PURE;
1760 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ ULONG64 *offset) PURE;
1761 STDMETHOD(OutputDisassembly)(THIS_ ULONG output_control, ULONG64 offset, ULONG flags, ULONG64 *end_offset) PURE;
1762 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG output_control, ULONG prev_lines, ULONG total_lines, ULONG64 offset,
1763 ULONG flags, ULONG *offset_line, ULONG64 *start_offset, ULONG64 *end_offset, ULONG64 *line_offsets) PURE;
1764 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 offset, LONG delta, ULONG64 *instr_offset) PURE;
1765 STDMETHOD(GetStackTrace)(THIS_ ULONG64 frame_offset, ULONG64 stack_offset, ULONG64 instr_offset,
1766 DEBUG_STACK_FRAME *frames, ULONG frames_size, ULONG *frames_filled) PURE;
1767 STDMETHOD(GetReturnOffset)(THIS_ ULONG64 *offset) PURE;
1768 STDMETHOD(OutputStackTrace)(THIS_ ULONG output_control, DEBUG_STACK_FRAME *frames, ULONG frames_size,
1769 ULONG flags) PURE;
1770 STDMETHOD(GetDebuggeeType)(THIS_ ULONG *_class, ULONG *qualifier) PURE;
1771 STDMETHOD(GetActualProcessorType)(THIS_ ULONG *type) PURE;
1772 STDMETHOD(GetExecutingProcessorType)(THIS_ ULONG *type) PURE;
1773 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ ULONG *count) PURE;
1774 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
1775 STDMETHOD(GetNumberProcessors)(THIS_ ULONG *count) PURE;
1776 STDMETHOD(GetSystemVersion)(THIS_ ULONG *platform_id, ULONG *major, ULONG *minor, char *sp_string,
1777 ULONG sp_string_size, ULONG *sp_string_used, ULONG *sp_number, char *build_string, ULONG build_string_size,
1778 ULONG *build_string_used) PURE;
1779 STDMETHOD(GetPageSize)(THIS_ ULONG *size) PURE;
1780 STDMETHOD(IsPointer64Bit)(THIS) PURE;
1781 STDMETHOD(ReadBugCheckData)(THIS_ ULONG *code, ULONG64 *arg1, ULONG64 *arg2, ULONG64 *arg3, ULONG64 *arg4) PURE;
1782 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ ULONG *count) PURE;
1783 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
1784 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG type, char *full_name, ULONG full_name_buffer_size,
1785 ULONG *full_name_size, char *abbrev_name, ULONG abbrev_name_buffer_size, ULONG *abbrev_name_size) PURE;
1786 STDMETHOD(GetEffectiveProcessorType)(THIS_ ULONG *type) PURE;
1787 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG type) PURE;
1788 STDMETHOD(GetExecutionStatus)(THIS_ ULONG *status) PURE;
1789 STDMETHOD(SetExecutionStatus)(THIS_ ULONG status) PURE;
1790 STDMETHOD(GetCodeLevel)(THIS_ ULONG *level) PURE;
1791 STDMETHOD(SetCodeLevel)(THIS_ ULONG level) PURE;
1792 STDMETHOD(GetEngineOptions)(THIS_ ULONG *options) PURE;
1793 STDMETHOD(AddEngineOptions)(THIS_ ULONG options) PURE;
1794 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG options) PURE;
1795 STDMETHOD(SetEngineOptions)(THIS_ ULONG options) PURE;
1796 STDMETHOD(GetSystemErrorControl)(THIS_ ULONG *output_level, ULONG *break_level) PURE;
1797 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG output_level, ULONG break_level) PURE;
1798 STDMETHOD(GetTextMacro)(THIS_ ULONG slot, char *buffer, ULONG buffer_size, ULONG *macro_size) PURE;
1799 STDMETHOD(SetTextMacro)(THIS_ ULONG slot, const char *macro) PURE;
1800 STDMETHOD(GetRadix)(THIS_ ULONG *radix) PURE;
1801 STDMETHOD(SetRadix)(THIS_ ULONG radix) PURE;
1802 STDMETHOD(Evaluate)(THIS_ const char *expression, ULONG desired_type, DEBUG_VALUE *value,
1803 ULONG *remainder_index) PURE;
1805 STDMETHOD(CoerceValues)(THIS_ ULONG count, DEBUG_VALUE *input, ULONG *output_types, DEBUG_VALUE *output) PURE;
1806 STDMETHOD(Execute)(THIS_ ULONG output_control, const char *command, ULONG flags) PURE;
1807 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG output_control, const char *command_file, ULONG flags) PURE;
1808 STDMETHOD(GetNumberBreakpoints)(THIS_ ULONG *count) PURE;
1809 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG index, IDebugBreakpoint **bp) PURE;
1810 STDMETHOD(GetBreakpointById)(THIS_ ULONG id, IDebugBreakpoint **bp) PURE;
1811 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG count, ULONG *ids, ULONG start,
1812 DEBUG_BREAKPOINT_PARAMETERS *parameters) PURE;
1813 STDMETHOD(AddBreakpoint)(THIS_ ULONG type, ULONG desired_id, IDebugBreakpoint **bp) PURE;
1814 STDMETHOD(RemoveBreakpoint)(THIS_ IDebugBreakpoint *bp) PURE;
1815 STDMETHOD(AddExtension)(THIS_ const char *path, ULONG flags, ULONG64 *handle) PURE;
1816 STDMETHOD(RemoveExtension)(THIS_ ULONG64 handle) PURE;
1817 STDMETHOD(GetExtensionByPath)(THIS_ const char *path, ULONG64 *handle) PURE;
1818 STDMETHOD(CallExtension)(THIS_ ULONG64 handle, const char *function, const char *args) PURE;
1819 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 handle, const char *name, void *function) PURE;
1820 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 api) PURE;
1821 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 api) PURE;
1822 STDMETHOD(GetNumberEventFilters)(THIS_ ULONG *specific_events, ULONG *specific_exceptions,
1823 ULONG *arbitrary_exceptions) PURE;
1824 STDMETHOD(GetEventFilterText)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
1825 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *command_size) PURE;
1826 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG index, const char *command) PURE;
1827 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
1829 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
1831 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
1832 ULONG *argument_size) PURE;
1833 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG index, const char *argument) PURE;
1834 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG count, ULONG *codes, ULONG start,
1836 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG count, DEBUG_EXCEPTION_FILTER_PARAMETERS *parameters) PURE;
1837 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
1838 ULONG *command_size) PURE;
1839 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG index, const char *command) PURE;
1840 STDMETHOD(WaitForEvent)(THIS_ ULONG flags, ULONG timeout) PURE;
1841 STDMETHOD(GetLastEventInformation)(THIS_ ULONG *type, ULONG *pid, ULONG *tid, void *extra_info,
1842 ULONG extra_info_size, ULONG *extra_info_used, char *description, ULONG desc_size, ULONG *desc_used) PURE;
1843};
1844#undef INTERFACE
1845
1846#define INTERFACE IDebugControl2
1848{
1849 /* IUnknown */
1853 /* IDebugControl */
1854 STDMETHOD(GetInterrupt)(THIS) PURE;
1855 STDMETHOD(SetInterrupt)(THIS_ ULONG flags) PURE;
1856 STDMETHOD(GetInterruptTimeout)(THIS_ ULONG *timeout) PURE;
1857 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG timeout) PURE;
1860 STDMETHOD(CloseLogFile)(THIS) PURE;
1861 STDMETHOD(GetLogMask)(THIS_ ULONG *mask) PURE;
1862 STDMETHOD(SetLogMask)(THIS_ ULONG mask) PURE;
1863 STDMETHOD(Input)(THIS_ char *buffer, ULONG buffer_size, ULONG *input_size) PURE;
1864 STDMETHOD(ReturnInput)(THIS_ const char *buffer) PURE;
1865 STDMETHODV(Output)(THIS_ ULONG mask, const char *format, ...) PURE;
1866 STDMETHOD(OutputVaList)(THIS_ ULONG mask, const char *format, __ms_va_list args) PURE;
1867 STDMETHODV(ControlledOutput)(THIS_ ULONG output_control, ULONG mask, const char *format, ...) PURE;
1868 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG output_control, ULONG mask, const char *format,
1870 STDMETHODV(OutputPrompt)(THIS_ ULONG output_control, const char *format, ...) PURE;
1871 STDMETHOD(OutputPromptVaList)(THIS_ ULONG output_control, const char *format, __ms_va_list args) PURE;
1872 STDMETHOD(GetPromptText)(THIS_ char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
1873 STDMETHOD(OutputCurrentState)(THIS_ ULONG output_control, ULONG flags) PURE;
1874 STDMETHOD(OutputVersionInformation)(THIS_ ULONG output_control) PURE;
1875 STDMETHOD(GetNotifyEventHandle)(THIS_ ULONG64 *handle) PURE;
1876 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 handle) PURE;
1877 STDMETHOD(Assemble)(THIS_ ULONG64 offset, const char *code, ULONG64 *end_offset) PURE;
1878 STDMETHOD(Disassemble)(THIS_ ULONG64 offset, ULONG flags, char *buffer, ULONG buffer_size, ULONG *disassm_size,
1879 ULONG64 *end_offset) PURE;
1880 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ ULONG64 *offset) PURE;
1881 STDMETHOD(OutputDisassembly)(THIS_ ULONG output_control, ULONG64 offset, ULONG flags, ULONG64 *end_offset) PURE;
1882 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG output_control, ULONG prev_lines, ULONG total_lines, ULONG64 offset,
1883 ULONG flags, ULONG *offset_line, ULONG64 *start_offset, ULONG64 *end_offset, ULONG64 *line_offsets) PURE;
1884 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 offset, LONG delta, ULONG64 *instr_offset) PURE;
1885 STDMETHOD(GetStackTrace)(THIS_ ULONG64 frame_offset, ULONG64 stack_offset, ULONG64 instr_offset,
1886 DEBUG_STACK_FRAME *frames, ULONG frames_size, ULONG *frames_filled) PURE;
1887 STDMETHOD(GetReturnOffset)(THIS_ ULONG64 *offset) PURE;
1888 STDMETHOD(OutputStackTrace)(THIS_ ULONG output_control, DEBUG_STACK_FRAME *frames, ULONG frames_size,
1889 ULONG flags) PURE;
1890 STDMETHOD(GetDebuggeeType)(THIS_ ULONG *_class, ULONG *qualifier) PURE;
1891 STDMETHOD(GetActualProcessorType)(THIS_ ULONG *type) PURE;
1892 STDMETHOD(GetExecutingProcessorType)(THIS_ ULONG *type) PURE;
1893 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ ULONG *count) PURE;
1894 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
1895 STDMETHOD(GetNumberProcessors)(THIS_ ULONG *count) PURE;
1896 STDMETHOD(GetSystemVersion)(THIS_ ULONG *platform_id, ULONG *major, ULONG *minor, char *sp_string,
1897 ULONG sp_string_size, ULONG *sp_string_used, ULONG *sp_number, char *build_string, ULONG build_string_size,
1898 ULONG *build_string_used) PURE;
1899 STDMETHOD(GetPageSize)(THIS_ ULONG *size) PURE;
1900 STDMETHOD(IsPointer64Bit)(THIS) PURE;
1901 STDMETHOD(ReadBugCheckData)(THIS_ ULONG *code, ULONG64 *arg1, ULONG64 *arg2, ULONG64 *arg3, ULONG64 *arg4) PURE;
1902 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ ULONG *count) PURE;
1903 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
1904 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG type, char *full_name, ULONG full_name_buffer_size,
1905 ULONG *full_name_size, char *abbrev_name, ULONG abbrev_name_buffer_size, ULONG *abbrev_name_size) PURE;
1906 STDMETHOD(GetEffectiveProcessorType)(THIS_ ULONG *type) PURE;
1907 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG type) PURE;
1908 STDMETHOD(GetExecutionStatus)(THIS_ ULONG *status) PURE;
1909 STDMETHOD(SetExecutionStatus)(THIS_ ULONG status) PURE;
1910 STDMETHOD(GetCodeLevel)(THIS_ ULONG *level) PURE;
1911 STDMETHOD(SetCodeLevel)(THIS_ ULONG level) PURE;
1912 STDMETHOD(GetEngineOptions)(THIS_ ULONG *options) PURE;
1913 STDMETHOD(AddEngineOptions)(THIS_ ULONG options) PURE;
1914 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG options) PURE;
1915 STDMETHOD(SetEngineOptions)(THIS_ ULONG options) PURE;
1916 STDMETHOD(GetSystemErrorControl)(THIS_ ULONG *output_level, ULONG *break_level) PURE;
1917 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG output_level, ULONG break_level) PURE;
1918 STDMETHOD(GetTextMacro)(THIS_ ULONG slot, char *buffer, ULONG buffer_size, ULONG *macro_size) PURE;
1919 STDMETHOD(SetTextMacro)(THIS_ ULONG slot, const char *macro) PURE;
1920 STDMETHOD(GetRadix)(THIS_ ULONG *radix) PURE;
1921 STDMETHOD(SetRadix)(THIS_ ULONG radix) PURE;
1922 STDMETHOD(Evaluate)(THIS_ const char *expression, ULONG desired_type, DEBUG_VALUE *value,
1923 ULONG *remainder_index) PURE;
1925 STDMETHOD(CoerceValues)(THIS_ ULONG count, DEBUG_VALUE *input, ULONG *output_types, DEBUG_VALUE *output) PURE;
1926 STDMETHOD(Execute)(THIS_ ULONG output_control, const char *command, ULONG flags) PURE;
1927 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG output_control, const char *command_file, ULONG flags) PURE;
1928 STDMETHOD(GetNumberBreakpoints)(THIS_ ULONG *count) PURE;
1929 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG index, IDebugBreakpoint **bp) PURE;
1930 STDMETHOD(GetBreakpointById)(THIS_ ULONG id, IDebugBreakpoint **bp) PURE;
1931 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG count, ULONG *ids, ULONG start,
1932 DEBUG_BREAKPOINT_PARAMETERS *parameters) PURE;
1933 STDMETHOD(AddBreakpoint)(THIS_ ULONG type, ULONG desired_id, IDebugBreakpoint **bp) PURE;
1934 STDMETHOD(RemoveBreakpoint)(THIS_ IDebugBreakpoint *bp) PURE;
1935 STDMETHOD(AddExtension)(THIS_ const char *path, ULONG flags, ULONG64 *handle) PURE;
1936 STDMETHOD(RemoveExtension)(THIS_ ULONG64 handle) PURE;
1937 STDMETHOD(GetExtensionByPath)(THIS_ const char *path, ULONG64 *handle) PURE;
1938 STDMETHOD(CallExtension)(THIS_ ULONG64 handle, const char *function, const char *args) PURE;
1939 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 handle, const char *name, void *function) PURE;
1940 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 api) PURE;
1941 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 api) PURE;
1942 STDMETHOD(GetNumberEventFilters)(THIS_ ULONG *specific_events, ULONG *specific_exceptions,
1943 ULONG *arbitrary_exceptions) PURE;
1944 STDMETHOD(GetEventFilterText)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
1945 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *command_size) PURE;
1946 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG index, const char *command) PURE;
1947 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
1949 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
1951 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
1952 ULONG *argument_size) PURE;
1953 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG index, const char *argument) PURE;
1954 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG count, ULONG *codes, ULONG start,
1956 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG count, DEBUG_EXCEPTION_FILTER_PARAMETERS *parameters) PURE;
1957 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
1958 ULONG *command_size) PURE;
1959 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG index, const char *command) PURE;
1960 STDMETHOD(WaitForEvent)(THIS_ ULONG flags, ULONG timeout) PURE;
1961 STDMETHOD(GetLastEventInformation)(THIS_ ULONG *type, ULONG *pid, ULONG *tid, void *extra_info,
1962 ULONG extra_info_size, ULONG *extra_info_used, char *description, ULONG desc_size, ULONG *desc_used) PURE;
1963 /* IDebugControl2 */
1964 STDMETHOD(GetCurrentTimeDate)(THIS_ ULONG timedate) PURE;
1965 STDMETHOD(GetCurrentSystemUpTime)(THIS_ ULONG uptime) PURE;
1966 STDMETHOD(GetDumpFormatFlags)(THIS_ ULONG *flags) PURE;
1967 STDMETHOD(GetNumberTextPlacements)(THIS_ ULONG *count) PURE;
1968 STDMETHOD(GetNumberTextReplacement)(THIS_ const char *src_text, ULONG index, char *src_buffer,
1969 ULONG src_buffer_size, ULONG *src_size, char *dst_buffer, ULONG dst_buffer_size, ULONG *dst_size) PURE;
1970 STDMETHOD(SetTextReplacement)(THIS_ const char *src_text, const char *dst_text) PURE;
1971 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
1972 STDMETHOD(OutputTextReplacements)(THIS_ ULONG output_control, ULONG flags) PURE;
1973};
1974#undef INTERFACE
1975
1976#define INTERFACE IDebugAdvanced
1978{
1979 /* IUnknown */
1983 /* IDebugAdvanced */
1984 STDMETHOD(GetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
1985 STDMETHOD(SetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
1986};
1987#undef INTERFACE
1988
1989#define INTERFACE IDebugSystemObjects
1990DECLARE_INTERFACE_(IDebugSystemObjects, IUnknown)
1991{
1992 /* IUnknown */
1996 /* IDebugSystemObjects */
1997 STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
1998 STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
2000 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
2001 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
2002 STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
2003 STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
2004 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2005 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
2006 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2007 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2008 STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
2009 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2010 STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
2011 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2012 STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
2013 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2014 STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
2015 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2016 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2017 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2018 STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
2019 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2020 STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
2021 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2022 STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
2023 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2024 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
2025};
2026#undef INTERFACE
2027
2028#define INTERFACE IDebugSystemObjects2
2029DECLARE_INTERFACE_(IDebugSystemObjects2, IUnknown)
2030{
2031 /* IUnknown */
2035 /* IDebugSystemObjects */
2036 STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
2037 STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
2039 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
2040 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
2041 STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
2042 STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
2043 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2044 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
2045 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2046 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2047 STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
2048 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2049 STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
2050 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2051 STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
2052 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2053 STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
2054 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2055 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2056 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2057 STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
2058 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2059 STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
2060 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2061 STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
2062 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2063 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
2064 /* IDebugSystemObjects2 */
2065 STDMETHOD(GetCurrentProcessUpTime)(THIS_ ULONG *uptime) PURE;
2066 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2067 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 offset) PURE;
2068 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2069 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 offset) PURE;
2070};
2071#undef INTERFACE
2072
2073#define INTERFACE IDebugSystemObjects3
2074DECLARE_INTERFACE_(IDebugSystemObjects3, IUnknown)
2075{
2076 /* IUnknown */
2080 /* IDebugSystemObjects */
2081 STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
2082 STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
2084 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
2085 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
2086 STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
2087 STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
2088 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2089 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
2090 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2091 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2092 STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
2093 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2094 STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
2095 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2096 STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
2097 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2098 STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
2099 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2100 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2101 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2102 STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
2103 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2104 STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
2105 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2106 STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
2107 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2108 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
2109 /* IDebugSystemObjects2 */
2110 STDMETHOD(GetCurrentProcessUpTime)(THIS_ ULONG *uptime) PURE;
2111 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2112 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 offset) PURE;
2113 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2114 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 offset) PURE;
2115 /* IDebugSystemObjects3 */
2116 STDMETHOD(GetEventSystem)(THIS_ ULONG *id) PURE;
2117 STDMETHOD(GetCurrentSystemId)(THIS_ ULONG *id) PURE;
2118 STDMETHOD(SetCurrentSystemId)(THIS_ ULONG id) PURE;
2119 STDMETHOD(GetNumberSystems)(THIS_ ULONG *number) PURE;
2120 STDMETHOD(GetSystemIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids) PURE;
2121 STDMETHOD(GetTotalNumberThreadsAndProcesses)(THIS_ ULONG *total_threads, ULONG *total_processes,
2122 ULONG *largest_process_threads, ULONG *largest_system_threads, ULONG *largest_system_processes) PURE;
2123 STDMETHOD(GetCurrentSystemServer)(THIS_ ULONG64 *server) PURE;
2124 STDMETHOD(GetSystemByServer)(THIS_ ULONG64 server, ULONG *id) PURE;
2125 STDMETHOD(GetCurrentSystemServerName)(THIS_ char *buffer, ULONG buffer_size, ULONG *name_size) PURE;
2126};
2127#undef INTERFACE
2128
2130
2131#ifdef __cplusplus
2132}
2133#endif
#define index(s, c)
Definition: various.h:29
static BOOL OpenLogFile()
Definition: log.c:48
static INT Execute(LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd)
Definition: cmd.c:347
static BOOL expand(LPINT ac, LPTSTR **arg, LPCTSTR pattern)
Definition: misc.c:214
static HANDLE thread
Definition: service.c:33
#define DECLARE_INTERFACE_(i, b)
Definition: basetyps.h:78
#define PURE
Definition: basetyps.h:64
#define THIS_
Definition: basetyps.h:65
#define THIS
Definition: basetyps.h:66
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
#define STDMETHOD(m)
Definition: basetyps.h:62
_In_ BOOLEAN Release
Definition: cdrom.h:920
static LPCWSTR LPCWSTR module_name
Definition: db.cpp:170
interface IDebugClient IDebugClient
Definition: dbgeng.h:209
struct _DEBUG_SYMBOL_SOURCE_ENTRY * PDEBUG_SYMBOL_SOURCE_ENTRY
struct _DEBUG_BREAKPOINT_PARAMETERS * PDEBUG_BREAKPOINT_PARAMETERS
struct _DEBUG_MODULE_AND_ID * PDEBUG_MODULE_AND_ID
struct _DEBUG_VALUE DEBUG_VALUE
IDebugBreakpoint * PDEBUG_BREAKPOINT
Definition: dbgeng.h:503
struct _DEBUG_BREAKPOINT_PARAMETERS DEBUG_BREAKPOINT_PARAMETERS
struct _DEBUG_SYMBOL_ENTRY DEBUG_SYMBOL_ENTRY
struct _DEBUG_MODULE_AND_ID DEBUG_MODULE_AND_ID
struct _MEMORY_BASIC_INFORMATION64 * PMEMORY_BASIC_INFORMATION64
Definition: dbgeng.h:312
struct _DEBUG_SYMBOL_PARAMETERS * PDEBUG_SYMBOL_PARAMETERS
HRESULT WINAPI DebugCreate(REFIID riid, void **out)
Definition: dbgeng.c:4042
struct _DEBUG_OFFSET_REGION DEBUG_OFFSET_REGION
struct _WINDBG_EXTENSION_APIS32 * PWINDBG_EXTENSION_APIS32
Definition: dbgeng.h:310
struct _DEBUG_SYMBOL_SOURCE_ENTRY DEBUG_SYMBOL_SOURCE_ENTRY
struct _DEBUG_MODULE_PARAMETERS * PDEBUG_MODULE_PARAMETERS
struct _DEBUG_VALUE * PDEBUG_VALUE
struct _DEBUG_EXCEPTION_FILTER_PARAMETERS DEBUG_EXCEPTION_FILTER_PARAMETERS
struct _DEBUG_SPECIFIC_FILTER_PARAMETERS DEBUG_SPECIFIC_FILTER_PARAMETERS
struct _DEBUG_SPECIFIC_FILTER_PARAMETERS * PDEBUG_SPECIFIC_FILTER_PARAMETERS
struct _DEBUG_SYMBOL_PARAMETERS DEBUG_SYMBOL_PARAMETERS
struct _DEBUG_MODULE_PARAMETERS DEBUG_MODULE_PARAMETERS
struct _DEBUG_STACK_FRAME * PDEBUG_STACK_FRAME
struct _WINDBG_EXTENSION_APIS64 * PWINDBG_EXTENSION_APIS64
Definition: dbgeng.h:311
struct _DEBUG_EXCEPTION_FILTER_PARAMETERS * PDEBUG_EXCEPTION_FILTER_PARAMETERS
struct _DEBUG_SYMBOL_ENTRY * PDEBUG_SYMBOL_ENTRY
struct _DEBUG_STACK_FRAME DEBUG_STACK_FRAME
IDebugSymbolGroup2 * PDEBUG_SYMBOL_GROUP2
Definition: dbgeng.h:504
struct _DEBUG_OFFSET_REGION * PDEBUG_OFFSET_REGION
static VOID GetSystemVersion(HWND hwnd)
Definition: general.c:576
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
Definition: fdi.c:353
VOID WINAPI ExitProcess(IN UINT uExitCode)
Definition: proc.c:1487
BOOL WINAPI SetThreadContext(IN HANDLE hThread, IN CONST CONTEXT *lpContext)
Definition: thread.c:521
VOID WINAPI ExitThread(IN DWORD uExitCode)
Definition: thread.c:365
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
Definition: thread.c:137
BOOL WINAPI GetThreadContext(IN HANDLE hThread, OUT LPCONTEXT lpContext)
Definition: thread.c:501
const WCHAR * text
Definition: package.c:1799
r reserved
Definition: btrfs.c:3006
unsigned int BOOL
Definition: ntddk_ex.h:94
static const FxOffsetAndName offsets[]
VOID pRequest GetParameters(Parameters)
size_t total
GLuint start
Definition: gl.h:1545
GLint level
Definition: gl.h:1546
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
GLsizeiptr size
Definition: glext.h:5919
GLuint * ids
Definition: glext.h:5907
GLuint buffer
Definition: glext.h:5915
GLuint GLuint GLuint GLuint arg1
Definition: glext.h:9513
GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg3
Definition: glext.h:9515
GLenum GLint GLuint mask
Definition: glext.h:6028
GLuint GLuint GLuint GLuint GLuint GLuint GLuint arg2
Definition: glext.h:9514
GLubyte * pattern
Definition: glext.h:7787
GLenum const GLfloat * params
Definition: glext.h:5645
GLbitfield flags
Definition: glext.h:7161
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
GLboolean GLuint group
Definition: glext.h:11120
GLsizei levels
Definition: glext.h:7884
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
GLenum GLenum GLenum input
Definition: glext.h:9031
GLuint id
Definition: glext.h:5910
GLintptr offset
Definition: glext.h:5920
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
Definition: glfuncs.h:210
TCHAR * GetTypeName(HANDLE handle)
Definition: handlelist.c:127
type_id
static int reg
Definition: i386-dis.c:1290
void breakpoint(void)
#define exception
Definition: math.h:26
REFIID riid
Definition: atlbase.h:39
#define frame_offset
Definition: intsym.h:201
const char * filename
Definition: ioapi.h:137
uint32_t entry
Definition: isohybrid.c:63
static void append(struct dump_context *dc, const void *data, unsigned size)
Definition: minidump.c:397
#define error(str)
Definition: mkdosfs.c:1605
char string[160]
Definition: util.h:11
unsigned __int64 * PULONG64
Definition: imports.h:198
unsigned __int64 ULONG64
Definition: imports.h:198
#define comment(fmt, arg1)
Definition: rebar.c:820
static unsigned int number
Definition: dsound.c:1479
static UINT exit_code
Definition: process.c:78
static char * exename
Definition: process.c:101
static const char machine[]
Definition: profile.c:104
static TfClientId tid
static HRESULT QueryInterface(REFIID, void **)
Definition: events.c:2587
BOOL loaded
Definition: xmlview.c:54
static APTTYPEQUALIFIER * qualifier
Definition: compobj.c:79
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
DWORD create_flags
Definition: sec_mgr.c:1589
static ATOM item
Definition: dde.c:856
api
Definition: notification.c:38
#define STDMETHODV(method)
Definition: objbase.h:200
static HANDLE proc()
Definition: pdb.c:34
static const WCHAR uptime[]
Definition: pdh.c:76
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
#define minor(rdev)
Definition: propsheet.cpp:929
#define major(rdev)
Definition: propsheet.cpp:928
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
#define REFIID
Definition: guiddef.h:118
static unsigned int file_size
Definition: regtests2xml.c:47
static FILE * out
Definition: regtests2xml.c:44
@ Input
Definition: arc.h:84
@ Output
Definition: arc.h:85
#define args
Definition: format.c:66
static FILE * client
Definition: client.c:41
DWORD WINAPI StartServer(LPVOID lpParam)
Definition: skelserver.c:165
TCHAR * cmdline
Definition: stretchblt.cpp:32
ULONG64 ModuleBase
Definition: dbgeng.h:335
ULONG64 FuncTableEntry
Definition: dbgeng.h:248
ULONG FrameNumber
Definition: dbgeng.h:252
ULONG64 InstructionOffset
Definition: dbgeng.h:244
ULONG64 ReturnOffset
Definition: dbgeng.h:245
ULONG64 StackOffset
Definition: dbgeng.h:247
ULONG64 FrameOffset
Definition: dbgeng.h:246
Definition: dbgeng.h:346
ULONG NameSize
Definition: dbgeng.h:354
ULONG Token
Definition: dbgeng.h:355
ULONG64 Id
Definition: dbgeng.h:349
ULONG Reserved
Definition: dbgeng.h:358
ULONG64 ModuleBase
Definition: dbgeng.h:347
ULONG Tag
Definition: dbgeng.h:356
ULONG Flags
Definition: dbgeng.h:352
ULONG TypeId
Definition: dbgeng.h:353
ULONG64 Arg64
Definition: dbgeng.h:350
ULONG64 Offset
Definition: dbgeng.h:348
ULONG Arg32
Definition: dbgeng.h:357
ULONG Size
Definition: dbgeng.h:351
Definition: dbgeng.h:362
ULONG StartLine
Definition: dbgeng.h:370
ULONG Size
Definition: dbgeng.h:367
ULONG EndColumn
Definition: dbgeng.h:373
ULONG EndLine
Definition: dbgeng.h:371
ULONG64 FileNameId
Definition: dbgeng.h:365
ULONG StartColumn
Definition: dbgeng.h:372
ULONG64 ModuleBase
Definition: dbgeng.h:363
ULONG64 Offset
Definition: dbgeng.h:364
ULONG Flags
Definition: dbgeng.h:368
ULONG Reserved
Definition: dbgeng.h:374
ULONG FileNameSize
Definition: dbgeng.h:369
ULONG64 EngineInternal
Definition: dbgeng.h:366
UCHAR F128Bytes[16]
Definition: dbgeng.h:271
ULONG Type
Definition: dbgeng.h:291
float VF32[4]
Definition: dbgeng.h:276
ULONG I32
Definition: dbgeng.h:261
ULONG64 VI64[2]
Definition: dbgeng.h:275
ULONG64 I64
Definition: dbgeng.h:264
ULONG HighPart
Definition: dbgeng.h:281
UCHAR I8
Definition: dbgeng.h:259
UCHAR F80Bytes[10]
Definition: dbgeng.h:269
USHORT I16
Definition: dbgeng.h:260
ULONG LowPart
Definition: dbgeng.h:280
ULONG64 LowPart
Definition: dbgeng.h:285
ULONG TailOfRawBytes
Definition: dbgeng.h:290
double VF64[2]
Definition: dbgeng.h:277
BOOL Nat
Definition: dbgeng.h:265
UCHAR F82Bytes[11]
Definition: dbgeng.h:270
struct _DEBUG_VALUE::@2812::@2816 I64Parts32
struct _DEBUG_VALUE::@2812::@2817 F128Parts64
double F64
Definition: dbgeng.h:268
USHORT VI16[8]
Definition: dbgeng.h:273
float F32
Definition: dbgeng.h:267
UCHAR VI8[16]
Definition: dbgeng.h:272
UCHAR RawBytes[24]
Definition: dbgeng.h:288
LONG64 HighPart
Definition: dbgeng.h:286
ULONG VI32[4]
Definition: dbgeng.h:274
Definition: inflate.c:139
Definition: http.c:7252
Definition: parser.c:44
Definition: fci.c:127
Definition: parser.c:49
Definition: name.c:39
Definition: ps.c:97
Definition: dhcpd.h:245
Definition: cmds.c:130
output_type
Definition: stylesheet.c:56
static void buffer_size(GLcontext *ctx, GLuint *width, GLuint *height)
Definition: swimpl.c:888
uint16_t * PWSTR
Definition: typedefs.h:56
uint32_t * PULONG
Definition: typedefs.h:59
char * PSTR
Definition: typedefs.h:51
const uint16_t * PCWSTR
Definition: typedefs.h:57
int64_t LONG64
Definition: typedefs.h:68
const char * PCSTR
Definition: typedefs.h:52
uint32_t ULONG
Definition: typedefs.h:59
Definition: pdh_main.c:94
static unsigned stack_offset(compile_ctx_t *ctx)
Definition: compile.c:349
struct _slot slot
Definition: vfat.h:196
static const char * SystemError(DWORD err)
Definition: vfdcmd.c:3368
static rfbScreenInfoPtr server
Definition: vnc.c:74
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:308
static GLenum which
Definition: wgl_font.c:159
#define GetType(This)
Definition: conio.h:54
#define CreateProcess
Definition: winbase.h:3693
DWORD WINAPI GetCurrentThreadId(void)
Definition: thread.c:459
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
Definition: winddi.h:3837
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
#define __ms_va_list
Definition: windef.h:456
#define WINAPI
Definition: msvc.h:6
const char * description
Definition: directx.c:2497
static PVOID LoadModule(IN OUT PLOADER_PARAMETER_BLOCK LoaderBlock, IN PCCH Path, IN PCCH File, IN PCCH ImportName, IN TYPE_OF_MEMORY MemoryType, OUT PLDR_DATA_TABLE_ENTRY *Dte, IN ULONG Percentage)
Definition: winldr.c:504
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
static int callbacks
Definition: xmllint.c:838
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180