ReactOS 0.4.17-dev-769-g1500a35
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_IDebugControl3, 0x7df74a86, 0xb03f, 0x407f, 0x90, 0xab, 0xa2, 0x0d, 0xad, 0xce, 0xad, 0x08);
48DEFINE_GUID(IID_IDebugControl4, 0x94e60ce9, 0x9b41, 0x4b19, 0x9f, 0xc0, 0x6d, 0x9e, 0xb3, 0x52, 0x72, 0xb3);
49DEFINE_GUID(IID_IDebugAdvanced, 0xf2df5f53, 0x071f, 0x47bd, 0x9d, 0xe6, 0x57, 0x34, 0xc3, 0xfe, 0xd6, 0x89);
50DEFINE_GUID(IID_IDebugAdvanced2, 0x716d14c9, 0x119b, 0x4ba5, 0xaf, 0x1f, 0x08, 0x90, 0xe6, 0x72, 0x41, 0x6a);
51DEFINE_GUID(IID_IDebugAdvanced3, 0xcba4abb4, 0x84c4, 0x444d, 0x87, 0xca, 0xa0, 0x4e, 0x13, 0x28, 0x67, 0x39);
52DEFINE_GUID(IID_IDebugSystemObjects, 0x6b86fe2c, 0x2c4f, 0x4f0c, 0x9d, 0xa2, 0x17, 0x43, 0x11, 0xac, 0xc3, 0x27);
53DEFINE_GUID(IID_IDebugSystemObjects2, 0x0ae9f5ff, 0x1852, 0x4679, 0xb0, 0x55, 0x49, 0x4b, 0xee, 0x64, 0x07, 0xee);
54DEFINE_GUID(IID_IDebugSystemObjects3, 0xe9676e2f, 0xe286, 0x4ea3, 0xb0, 0xf9, 0xdf, 0xe5, 0xd9, 0xfc, 0x33, 0x0e);
55
56/* Engine options */
57#define DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION 0x00000001
58#define DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS 0x00000002
59#define DEBUG_ENGOPT_ALLOW_NETWORK_PATHS 0x00000004
60#define DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS 0x00000008
61#define DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS 0x00000010
62#define DEBUG_ENGOPT_INITIAL_BREAK 0x00000020
63#define DEBUG_ENGOPT_INITIAL_MODULE_BREAK 0x00000040
64#define DEBUG_ENGOPT_FINAL_BREAK 0x00000080
65#define DEBUG_ENGOPT_NO_EXECUTE_REPEAT 0x00000100
66#define DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION 0x00000200
67#define DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS 0x00000400
68#define DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS 0x00000800
69#define DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS 0x00001000
70#define DEBUG_ENGOPT_KD_QUIET_MODE 0x00002000
71#define DEBUG_ENGOPT_DISABLE_MANAGED_SUPPORT 0x00004000
72#define DEBUG_ENGOPT_DISABLE_MODULE_SYMBOL_LOAD 0x00008000
73#define DEBUG_ENGOPT_DISABLE_EXECUTION_COMMANDS 0x00010000
74#define DEBUG_ENGOPT_DISALLOW_IMAGE_FILE_MAPPING 0x00020000
75#define DEBUG_ENGOPT_PREFER_DML 0x00040000
76#define DEBUG_ENGOPT_DISABLESQM 0x00080000
77#define DEBUG_ENGOPT_DISABLE_STEPLINES_OPTIONS 0x00200000
78#define DEBUG_ENGOPT_DEBUGGING_SENSITIVE_DATA 0x00400000
79#define DEBUG_ENGOPT_ALL 0x004fffff
80#define DEBUG_ENGOPT_NETWORK_PATHS (DEBUG_ENGOPT_ALLOW_NETWORK_PATHS | DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS)
81
82/* AttachProcess() flags */
83#define DEBUG_ATTACH_DEFAULT 0x00000000
84#define DEBUG_ATTACH_NONINVASIVE 0x00000001
85#define DEBUG_ATTACH_EXISTING 0x00000002
86#define DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND 0x00000004
87#define DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK 0x00000008
88#define DEBUG_ATTACH_INVASIVE_RESUME_PROCESS 0x00000010
89#define DEBUG_ATTACH_NONINVASIVE_ALLOW_PARTIAL 0x00000020
90
91/* EndSession() flags */
92#define DEBUG_END_PASSIVE 0x00000000
93#define DEBUG_END_ACTIVE_TERMINATE 0x00000001
94#define DEBUG_END_ACTIVE_DETACH 0x00000002
95#define DEBUG_END_REENTRANT 0x00000003
96#define DEBUG_END_DISCONNECT 0x00000004
97
98/* ChangeEngineState() flags */
99#define DEBUG_CES_CURRENT_THREAD 0x00000001
100#define DEBUG_CES_EFFECTIVE_PROCESSOR 0x00000002
101#define DEBUG_CES_BREAKPOINTS 0x00000004
102#define DEBUG_CES_CODE_LEVEL 0x00000008
103#define DEBUG_CES_EXECUTION_STATUS 0x00000010
104#define DEBUG_CES_ENGINE_OPTIONS 0x00000020
105#define DEBUG_CES_LOG_FILE 0x00000040
106#define DEBUG_CES_RADIX 0x00000080
107#define DEBUG_CES_EVENT_FILTERS 0x00000100
108#define DEBUG_CES_PROCESS_OPTIONS 0x00000200
109#define DEBUG_CES_EXTENSIONS 0x00000400
110#define DEBUG_CES_SYSTEMS 0x00000800
111#define DEBUG_CES_ASSEMBLY_OPTIONS 0x00001000
112#define DEBUG_CES_EXPRESSION_SYNTAX 0x00002000
113#define DEBUG_CES_TEXT_REPLACEMENTS 0x00004000
114#define DEBUG_CES_ALL 0xffffffff
115
116#define DEBUG_STATUS_NO_CHANGE 0
117#define DEBUG_STATUS_GO 1
118#define DEBUG_STATUS_GO_HANDLED 2
119#define DEBUG_STATUS_GO_NOT_HANDLED 3
120#define DEBUG_STATUS_STEP_OVER 4
121#define DEBUG_STATUS_STEP_INTO 5
122#define DEBUG_STATUS_BREAK 6
123#define DEBUG_STATUS_NO_DEBUGGEE 7
124#define DEBUG_STATUS_STEP_BRANCH 8
125#define DEBUG_STATUS_IGNORE_EVENT 9
126#define DEBUG_STATUS_RESTART_REQUESTED 10
127#define DEBUG_STATUS_REVERSE_GO 11
128#define DEBUG_STATUS_REVERSE_STEP_BRANCH 12
129#define DEBUG_STATUS_REVERSE_STEP_OVER 13
130#define DEBUG_STATUS_REVERSE_STEP_INTO 14
131#define DEBUG_STATUS_OUT_OF_SYNC 15
132#define DEBUG_STATUS_WAIT_INPUT 16
133#define DEBUG_STATUS_TIMEOUT 17
134#define DEBUG_STATUS_MASK 0x1f
135
136/* ChangeSymbolState() flags */
137#define DEBUG_CSS_LOADS 0x00000001
138#define DEBUG_CSS_UNLOADS 0x00000002
139#define DEBUG_CSS_SCOPE 0x00000004
140#define DEBUG_CSS_PATHS 0x00000008
141#define DEBUG_CSS_SYMBOL_OPTIONS 0x00000010
142#define DEBUG_CSS_TYPE_OPTIONS 0x00000020
143#define DEBUG_CSS_COLLAPSE_CHILDREN 0x00000040
144#define DEBUG_CSS_ALL 0xffffffff
145
146/* SessionStatus() flags */
147#define DEBUG_SESSION_ACTIVE 0x00000000
148#define DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE 0x00000001
149#define DEBUG_SESSION_END_SESSION_ACTIVE_DETACH 0x00000002
150#define DEBUG_SESSION_END_SESSION_PASSIVE 0x00000003
151#define DEBUG_SESSION_END 0x00000004
152#define DEBUG_SESSION_REBOOT 0x00000005
153#define DEBUG_SESSION_HIBERNATE 0x00000006
154#define DEBUG_SESSION_FAILURE 0x00000007
155
156/* ChangeDebuggeeState() flags */
157#define DEBUG_CDS_REGISTERS 0x00000001
158#define DEBUG_CDS_DATA 0x00000002
159#define DEBUG_CDS_REFRESH 0x00000004
160#define DEBUG_CDS_ALL 0xffffffff
161
162#define DEBUG_CDS_REFRESH_EVALUATE 1
163#define DEBUG_CDS_REFRESH_EXECUTE 2
164#define DEBUG_CDS_REFRESH_EXECUTECOMMANDFILE 3
165#define DEBUG_CDS_REFRESH_ADDBREAKPOINT 4
166#define DEBUG_CDS_REFRESH_REMOVEBREAKPOINT 5
167#define DEBUG_CDS_REFRESH_WRITEVIRTUAL 6
168#define DEBUG_CDS_REFRESH_WRITEVIRTUALUNCACHED 7
169#define DEBUG_CDS_REFRESH_WRITEPHYSICAL 8
170#define DEBUG_CDS_REFRESH_WRITEPHYSICAL2 9
171#define DEBUG_CDS_REFRESH_SETVALUE 10
172#define DEBUG_CDS_REFRESH_SETVALUE2 11
173#define DEBUG_CDS_REFRESH_SETSCOPE 12
174#define DEBUG_CDS_REFRESH_SETSCOPEFRAMEBYINDEX 13
175#define DEBUG_CDS_REFRESH_SETSCOPEFROMJITDEBUGINFO 14
176#define DEBUG_CDS_REFRESH_SETSCOPEFROMSTOREDEVENT 15
177#define DEBUG_CDS_REFRESH_INLINESTEP 16
178#define DEBUG_CDS_REFRESH_INLINESTEP_PSEUDO 17
179
180/* GetModuleNameString() indices */
181#define DEBUG_MODNAME_IMAGE 0
182#define DEBUG_MODNAME_MODULE 1
183#define DEBUG_MODNAME_LOADED_IMAGE 2
184#define DEBUG_MODNAME_SYMBOL_FILE 3
185#define DEBUG_MODNAME_MAPPED_IMAGE 4
186
187#define DEBUG_CLASS_UNINITIALIZED 0
188#define DEBUG_CLASS_KERNEL 1
189#define DEBUG_CLASS_USER_WINDOWS 2
190#define DEBUG_CLASS_IMAGE_FILE 3
191
192#define DEBUG_DUMP_SMALL 1024
193#define DEBUG_DUMP_DEFAULT 1025
194#define DEBUG_DUMP_FULL 1026
195#define DEBUG_DUMP_IMAGE_FILE 1027
196#define DEBUG_DUMP_TRACE_LOG 1028
197#define DEBUG_DUMP_WINDOWS_CE 1029
198#define DEBUG_DUMP_ACTIVE 1030
199
200#define DEBUG_USER_WINDOWS_PROCESS 0
201#define DEBUG_USER_WINDOWS_PROCESS_SERVER 1
202#define DEBUG_USER_WINDOWS_IDNA 2
203#define DEBUG_USER_WINDOWS_REPT 3
204#define DEBUG_USER_WINDOWS_SMALL_DUMP DEBUG_DUMP_SMALL
205#define DEBUG_USER_WINDOWS_DUMP DEBUG_DUMP_DEFAULT
206#define DEBUG_USER_WINDOWS_DUMP_WINDOWS_CE DEBUG_DUMP_WINDOWS_CE
207
208#define DEBUG_INVALID_OFFSET ((ULONG64)-1)
209#define DEBUG_ANY_ID 0xffffffff
210
211#ifndef __IDebugClient_FWD_DEFINED__
212#define __IDebugClient_FWD_DEFINED__
213typedef interface IDebugClient IDebugClient;
214#ifdef __cplusplus
215interface IDebugClient;
216#endif /* __cplusplus */
217#endif
218
219
221{
235
237{
245
246typedef struct _DEBUG_STACK_FRAME
247{
258
259typedef struct _DEBUG_VALUE
260{
261 union
262 {
266 struct
267 {
270 };
271 float F32;
272 double F64;
280 float VF32[4];
281 double VF64[2];
282 struct
283 {
287 struct
288 {
293 };
297
299{
313
314typedef struct _WINDBG_EXTENSION_APIS32 *PWINDBG_EXTENSION_APIS32;
315typedef struct _WINDBG_EXTENSION_APIS64 *PWINDBG_EXTENSION_APIS64;
316typedef struct _MEMORY_BASIC_INFORMATION64 *PMEMORY_BASIC_INFORMATION64;
317
319{
326
328{
336
338{
342
344{
348
350{
364
366{
380
381#define INTERFACE IDebugBreakpoint
382DECLARE_INTERFACE_(IDebugBreakpoint, IUnknown)
383{
384 /* IUnknown */
388 /* IDebugBreakpoint */
389 STDMETHOD(GetId)(THIS_ PULONG id) PURE;
391 STDMETHOD(GetAdder)(THIS_ IDebugClient **adder) PURE;
392 STDMETHOD(GetFlags)(THIS_ PULONG flags) PURE;
393 STDMETHOD(AddFlags)(THIS_ ULONG flags) PURE;
394 STDMETHOD(RemoveFlags)(THIS_ ULONG flags) PURE;
395 STDMETHOD(SetFlags)(THIS_ ULONG flags) PURE;
396 STDMETHOD(GetOffset)(THIS_ PULONG64 offset) PURE;
397 STDMETHOD(SetOffset)(THIS_ ULONG64 offset) PURE;
398 STDMETHOD(GetDataParameters)(THIS_ PULONG size, PULONG access) PURE;
399 STDMETHOD(SetDataParameters)(THIS_ ULONG size, ULONG access) PURE;
400 STDMETHOD(GetPassCount)(THIS_ PULONG count) PURE;
401 STDMETHOD(SetPassCount)(THIS_ ULONG count) PURE;
402 STDMETHOD(GetCurrentPassCount)(THIS_ PULONG count) PURE;
403 STDMETHOD(GetMatchThreadId)(THIS_ PULONG id) PURE;
404 STDMETHOD(SetMatchThreadId)(THIS_ ULONG thread) PURE;
405 STDMETHOD(GetCommand)(THIS_ PSTR buffer, ULONG buf_size, PULONG command) PURE;
406 STDMETHOD(SetCommand)(THIS_ PCSTR command) PURE;
407 STDMETHOD(GetOffsetExpression)(THIS_ PSTR buffer, ULONG buf_size, PULONG expression) PURE;
408 STDMETHOD(SetOffsetExpression)(THIS_ PCSTR expression) PURE;
410};
411#undef INTERFACE
412
413#define INTERFACE IDebugBreakpoint2
414DECLARE_INTERFACE_(IDebugBreakpoint2, IUnknown)
415{
416 /* IUnknown */
420 /* IDebugBreakpoint */
421 STDMETHOD(GetId)(THIS_ PULONG id) PURE;
423 STDMETHOD(GetAdder)(THIS_ IDebugClient **adder) PURE;
424 STDMETHOD(GetFlags)(THIS_ PULONG flags) PURE;
425 STDMETHOD(AddFlags)(THIS_ ULONG flags) PURE;
426 STDMETHOD(RemoveFlags)(THIS_ ULONG flags) PURE;
427 STDMETHOD(SetFlags)(THIS_ ULONG flags) PURE;
428 STDMETHOD(GetOffset)(THIS_ PULONG64 offset) PURE;
429 STDMETHOD(SetOffset)(THIS_ ULONG64 offset) PURE;
430 STDMETHOD(GetDataParameters)(THIS_ PULONG size, PULONG access) PURE;
431 STDMETHOD(SetDataParameters)(THIS_ ULONG size, ULONG access) PURE;
432 STDMETHOD(GetPassCount)(THIS_ PULONG count) PURE;
433 STDMETHOD(SetPassCount)(THIS_ ULONG count) PURE;
434 STDMETHOD(GetCurrentPassCount)(THIS_ PULONG count) PURE;
435 STDMETHOD(GetMatchThreadId)(THIS_ PULONG id) PURE;
436 STDMETHOD(SetMatchThreadId)(THIS_ ULONG thread) PURE;
437 STDMETHOD(GetCommand)(THIS_ PSTR buffer, ULONG buf_size, PULONG command) PURE;
438 STDMETHOD(SetCommand)(THIS_ PCSTR command) PURE;
439 STDMETHOD(GetOffsetExpression)(THIS_ PSTR buffer, ULONG buf_size, PULONG expression) PURE;
440 STDMETHOD(SetOffsetExpression)(THIS_ PCSTR expression) PURE;
442 /* IDebugBreakpoint2. */
443 STDMETHOD(GetCommandWide)(THIS_ PWSTR buffer, ULONG buf_size, PULONG command) PURE;
444 STDMETHOD(SetCommandWide)(THIS_ PCWSTR command) PURE;
445 STDMETHOD(GetOffsetExpressionWide)(THIS_ PWSTR buffer, ULONG buf_size, PULONG expression) PURE;
446 STDMETHOD(SetOffsetExpressionWide)(THIS_ PCWSTR expression) PURE;
447};
448#undef INTERFACE
449
450
451#define INTERFACE IDebugSymbolGroup
452DECLARE_INTERFACE_(IDebugSymbolGroup, IUnknown)
453{
454 /* IUnknown */
458 /* IDebugSymbolGroup */
459 STDMETHOD(GetNumberSymbols)(THIS_ PULONG number) PURE;
461 STDMETHOD(RemoveSymbolByName)(THIS_ PCSTR name) PURE;
462 STDMETHOD(RemoveSymbolByIndex)(THIS_ ULONG index) PURE;
463 STDMETHOD(GetSymbolName)(THIS_ ULONG index, PSTR buffer, ULONG buf_size, PULONG name_size) PURE;
465 STDMETHOD(ExpandSymbol)(THIS_ ULONG index, BOOL expand) PURE;
467 STDMETHOD(WriteSymbol)(THIS_ ULONG index, PCSTR value) PURE;
468 STDMETHOD(OutputAsType)(THIS_ ULONG index, PCSTR type) PURE;
469};
470#undef INTERFACE
471
472#define INTERFACE IDebugSymbolGroup2
473DECLARE_INTERFACE_(IDebugSymbolGroup2, IUnknown)
474{
475 /* IUnknown */
479 /* IDebugSymbolGroup */
480 STDMETHOD(GetNumberSymbols)(THIS_ PULONG number) PURE;
482 STDMETHOD(RemoveSymbolByName)(THIS_ PCSTR name) PURE;
483 STDMETHOD(RemoveSymbolByIndex)(THIS_ ULONG index) PURE;
484 STDMETHOD(GetSymbolName)(THIS_ ULONG index, PSTR buffer, ULONG buf_size, PULONG name_size) PURE;
486 STDMETHOD(ExpandSymbol)(THIS_ ULONG index, BOOL expand) PURE;
488 STDMETHOD(WriteSymbol)(THIS_ ULONG index, PCSTR value) PURE;
489 STDMETHOD(OutputAsType)(THIS_ ULONG index, PCSTR type) PURE;
490 /* IDebugSymbolGroup2 */
491 STDMETHOD(AddSymbolWide)(THIS_ PCWSTR name, PULONG index) PURE;
492 STDMETHOD(RemoveSymbolByNameWide)(THIS_ PCWSTR name) PURE;
493 STDMETHOD(GetSymbolNameWide)(THIS_ ULONG index, PWSTR buffer, ULONG buf_size, PULONG size) PURE;
494 STDMETHOD(WriteSymbolWide)(THIS_ ULONG index, PCWSTR value) PURE;
495 STDMETHOD(OutputAsTypeWide)(THIS_ ULONG index, PCWSTR type) PURE;
496 STDMETHOD(GetSymbolTypeName)(THIS_ ULONG index, PSTR buffer, ULONG buf_size, PULONG size) PURE;
497 STDMETHOD(GetSymbolTypeNameWide)(THIS_ ULONG index, PWSTR buffer, ULONG buf_size, PULONG size) PURE;
498 STDMETHOD(GetSymbolSize)(THIS_ ULONG index, PULONG size) PURE;
499 STDMETHOD(GetSymbolOffset)(THIS_ ULONG index, PULONG64 offset) PURE;
500 STDMETHOD(GetSymbolRegister)(THIS_ ULONG index, PULONG reg) PURE;
501 STDMETHOD(GetSymbolValueText)(THIS_ ULONG index, PSTR buffer, ULONG buf_size, PULONG size) PURE;
502 STDMETHOD(GetSymbolValueTextWide)(THIS_ ULONG index, PWSTR buffer, ULONG buf_size, PULONG size) PURE;
503 STDMETHOD(GetSymbolEntryInformation)(THIS_ ULONG index, PDEBUG_SYMBOL_ENTRY entry) PURE;
504};
505#undef INTERFACE
506
507typedef IDebugBreakpoint *PDEBUG_BREAKPOINT;
508typedef IDebugBreakpoint2 *PDEBUG_BREAKPOINT2;
509typedef IDebugSymbolGroup2 *PDEBUG_SYMBOL_GROUP2;
510
511#define INTERFACE IDebugInputCallbacks
512DECLARE_INTERFACE_(IDebugInputCallbacks, IUnknown)
513{
514 /* IUnknown */
518 /* IDebugInputCallbacks */
519 STDMETHOD(StartInput)(THIS_ ULONG buffer_size) PURE;
520 STDMETHOD(EndInput)(THIS) PURE;
521};
522#undef INTERFACE
523
524#define INTERFACE IDebugOutputCallbacks
525DECLARE_INTERFACE_(IDebugOutputCallbacks, IUnknown)
526{
527 /* IUnknown */
531 /* IDebugOutputCallbacks */
532 STDMETHOD(Output)(THIS_ ULONG mask, const char *text) PURE;
533};
534#undef INTERFACE
535
536#define INTERFACE IDebugOutputCallbacksWide
537DECLARE_INTERFACE_(IDebugOutputCallbacksWide, IUnknown)
538{
539 /* IUnknown */
543 /* IDebugOutputCallbacksWide */
545};
546#undef INTERFACE
547
548#ifdef WINE_NO_UNICODE_MACROS
549#undef CreateProcess
550#endif
551
552#define INTERFACE IDebugEventCallbacks
553DECLARE_INTERFACE_(IDebugEventCallbacks, IUnknown)
554{
555 /* IUnknown */
559 /* IDebugEventCallbacks */
560 STDMETHOD(GetInterestMask)(THIS_ ULONG *mask) PURE;
561 STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT breakpoint) PURE;
563 STDMETHOD(CreateThread)(THIS_ ULONG64 handle, ULONG64 data_offset, ULONG64 start_offset) PURE;
565 STDMETHOD(CreateProcess)(THIS_ ULONG64 image_handle, ULONG64 handle, ULONG64 base_offset, ULONG module_size,
566 const char *module_name, const char *image_name, ULONG checksum, ULONG timedatestamp,
567 ULONG64 initial_thread_handle, ULONG64 thread_data_offset, ULONG64 start_offset) PURE;
569 STDMETHOD(LoadModule)(THIS_ ULONG64 image_handle, ULONG64 base_offset, ULONG module_size, const char *module_name,
570 const char *image_name, ULONG checksum, ULONG timedatestamp) PURE;
571 STDMETHOD(UnloadModule)(THIS_ const char *image_basename, ULONG64 base_offset) PURE;
573 STDMETHOD(SessionStatus)(THIS_ ULONG status) PURE;
574 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG flags, ULONG64 argument) PURE;
575 STDMETHOD(ChangeEngineState)(THIS_ ULONG flags, ULONG64 argument) PURE;
576 STDMETHOD(ChangeSymbolState)(THIS_ ULONG flags, ULONG64 argument) PURE;
577};
578#undef INTERFACE
579
580#define INTERFACE IDebugEventCallbacksWide
581DECLARE_INTERFACE_(IDebugEventCallbacksWide, IUnknown)
582{
583 /* IUnknown */
587
588 /* IDebugEventCallbacksWide */
589 STDMETHOD(GetInterestMask)(THIS_ ULONG *mask) PURE;
590 STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT breakpoint) PURE;
592 STDMETHOD(CreateThread)(THIS_ ULONG64 handle, ULONG64 data_offset, ULONG64 start_offset) PURE;
594 STDMETHOD(CreateProcess)(THIS_ ULONG64 image_handle, ULONG64 handle, ULONG64 base_offset, ULONG module_size,
595 const WCHAR *module_name, const WCHAR *image_name, ULONG checksum, ULONG timedatestamp,
596 ULONG64 initial_thread_handle, ULONG64 thread_data_offset, ULONG64 start_offset) PURE;
598 STDMETHOD(LoadModule)(THIS_ ULONG64 image_handle, ULONG64 base_offset, ULONG module_size, const WCHAR *module_name,
599 const WCHAR *image_name, ULONG checksum, ULONG timedatestamp) PURE;
600 STDMETHOD(UnloadModule)(THIS_ const WCHAR *image_basename, ULONG64 base_offset) PURE;
602 STDMETHOD(SessionStatus)(THIS_ ULONG status) PURE;
603 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG flags, ULONG64 argument) PURE;
604 STDMETHOD(ChangeEngineState)(THIS_ ULONG flags, ULONG64 argument) PURE;
605 STDMETHOD(ChangeSymbolState)(THIS_ ULONG flags, ULONG64 argument) PURE;
606};
607#undef INTERFACE
608
609#define INTERFACE IDebugEventContextCallbacks
610DECLARE_INTERFACE_(IDebugEventContextCallbacks, IUnknown)
611{
612 /* IUnknown */
616
617 /* IDebugEventContextCallbacks */
618 STDMETHOD(GetInterestMask)(THIS_ ULONG *mask) PURE;
619 STDMETHOD(Breakpoint)(THIS_ IDebugBreakpoint2 *bp, void *context, ULONG size) PURE;
620 STDMETHOD(Exception)(THIS_ EXCEPTION_RECORD64 *exception, ULONG firstchance, void *context, ULONG size) PURE;
621 STDMETHOD(CreateThread)(THIS_ ULONG64 handle, ULONG64 data_offset, ULONG64 start_offset, void *context, ULONG size) PURE;
623
624 STDMETHOD(CreateProcess)(THIS_ ULONG64 image_handle, ULONG64 handle, ULONG64 baseoffset, ULONG module_size,
625 const WCHAR *module_name, const WCHAR image_name, ULONG checksum, ULONG timestamp, ULONG64 initial,
626 ULONG64 thread_offset, ULONG64 start_offset, void *context, ULONG size) PURE;
628 STDMETHOD(LoadModule)(THIS_ ULONG64 image_handle, ULONG64 baseoffset, ULONG module_size, const WCHAR *module_name,
629 const WCHAR *image_name, ULONG checksum, ULONG timestamp, void *context, ULONG size) PURE;
630 STDMETHOD(UnloadModule)(THIS_ const WCHAR *image_name, ULONG64 offset, void *context, ULONG size) PURE;
632 STDMETHOD(SessionStatus)(THIS_ ULONG status) PURE;
633 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG flags, ULONG64 argument, void *context, ULONG size) PURE;
634 STDMETHOD(ChangeEngineState)(THIS_ ULONG flags, ULONG64 argument, void *context, ULONG size) PURE;
635 STDMETHOD(ChangeSymbolState)(THIS_ ULONG flags, ULONG64 argument) PURE;
636};
637#undef INTERFACE
638
639#define INTERFACE IDebugClient
641{
642 /* IUnknown */
646 /* IDebugClient */
647 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
648 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
649 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
650 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
651 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
652 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
653 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
654 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
656 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
657 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
658 ULONG *actual_description_size) PURE;
661 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
662 ULONG pid, ULONG attach_flags) PURE;
663 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
664 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
665 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
666 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
667 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
668 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
669 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
670 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
671 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
672 STDMETHOD(TerminateProcesses)(THIS) PURE;
673 STDMETHOD(DetachProcesses)(THIS) PURE;
674 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
675 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
676 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
677 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
678 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
679 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
680 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
681 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
682 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
683 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
684 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
685 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
686 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
687 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
688 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
689 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
690 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
691 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
692 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
693 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
694 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
695 STDMETHOD(FlushCallbacks)(THIS) PURE;
696};
697#undef INTERFACE
698
699#define INTERFACE IDebugClient2
701{
702 /* IUnknown */
706 /* IDebugClient */
707 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
708 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
709 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
710 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
711 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
712 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
713 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
714 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
716 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
717 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
718 ULONG *actual_description_size) PURE;
721 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
722 ULONG pid, ULONG attach_flags) PURE;
723 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
724 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
725 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
726 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
727 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
728 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
729 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
730 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
731 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
732 STDMETHOD(TerminateProcesses)(THIS) PURE;
733 STDMETHOD(DetachProcesses)(THIS) PURE;
734 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
735 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
736 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
737 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
738 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
739 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
740 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
741 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
742 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
743 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
744 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
745 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
746 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
747 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
748 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
749 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
750 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
751 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
752 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
753 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
754 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
755 STDMETHOD(FlushCallbacks)(THIS) PURE;
756 /* IDebugClient2 */
757 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
758 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
759 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
760 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
761 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
762 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
763 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
764 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
765};
766#undef INTERFACE
767
768#define INTERFACE IDebugClient3
770{
771 /* IUnknown */
775 /* IDebugClient */
776 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
777 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
778 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
779 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
780 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
781 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
782 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
783 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
785 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
786 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
787 ULONG *actual_description_size) PURE;
790 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
791 ULONG pid, ULONG attach_flags) PURE;
792 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
793 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
794 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
795 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
796 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
797 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
798 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
799 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
800 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
801 STDMETHOD(TerminateProcesses)(THIS) PURE;
802 STDMETHOD(DetachProcesses)(THIS) PURE;
803 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
804 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
805 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
806 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
807 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
808 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
809 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
810 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
811 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
812 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
813 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
814 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
815 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
816 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
817 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
818 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
819 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
820 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
821 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
822 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
823 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
824 STDMETHOD(FlushCallbacks)(THIS) PURE;
825 /* IDebugClient2 */
826 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
827 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
828 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
829 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
830 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
831 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
832 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
833 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
834 /* IDebugClient3 */
835 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
836 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
837 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
838 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
839 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
840 ULONG processid,ULONG attachflags) PURE;
841};
842#undef INTERFACE
843
844#define INTERFACE IDebugClient4
846{
847 /* IUnknown */
851 /* IDebugClient */
852 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
853 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
854 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
855 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
856 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
857 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
858 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
859 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
861 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
862 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
863 ULONG *actual_description_size) PURE;
866 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
867 ULONG pid, ULONG attach_flags) PURE;
868 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
869 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
870 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
871 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
872 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
873 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
874 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
875 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
876 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
877 STDMETHOD(TerminateProcesses)(THIS) PURE;
878 STDMETHOD(DetachProcesses)(THIS) PURE;
879 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
880 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
881 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
882 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
883 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
884 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
885 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
886 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
887 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
888 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
889 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
890 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
891 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
892 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
893 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
894 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
895 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
896 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
897 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
898 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
899 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
900 STDMETHOD(FlushCallbacks)(THIS) PURE;
901 /* IDebugClient2 */
902 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
903 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
904 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
905 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
906 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
907 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
908 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
909 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
910 /* IDebugClient3 */
911 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
912 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
913 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
914 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
915 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
916 ULONG processid,ULONG attachflags) PURE;
917 /* IDebugClient4 */
918 STDMETHOD(OpenDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle) PURE;
919 STDMETHOD(WriteDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle, ULONG qualifier, ULONG Flags, const WCHAR *comment) PURE;
920 STDMETHOD(AddDumpInformationFileWide)(THIS_ const WCHAR *filename,ULONG64 handle, ULONG type) PURE;
921 STDMETHOD(GetNumberDumpFiles)(THIS_ ULONG *count) PURE;
922 STDMETHOD(GetDumpFile)(THIS_ ULONG index, char *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle, ULONG *type) PURE;
923 STDMETHOD(GetDumpFileWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle,ULONG *type) PURE;
924};
925#undef INTERFACE
926
927#define INTERFACE IDebugClient5
929{
930 /* IUnknown */
934 /* IDebugClient */
935 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
936 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
937 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
938 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
939 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
940 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
941 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
942 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
944 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
945 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
946 ULONG *actual_description_size) PURE;
949 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
950 ULONG pid, ULONG attach_flags) PURE;
951 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
952 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
953 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
954 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
955 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
956 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
957 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
958 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
959 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
960 STDMETHOD(TerminateProcesses)(THIS) PURE;
961 STDMETHOD(DetachProcesses)(THIS) PURE;
962 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
963 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
964 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
965 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
966 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
967 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
968 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
969 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
970 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
971 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
972 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
973 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
974 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
975 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
976 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
977 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
978 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
979 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
980 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
981 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
982 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
983 STDMETHOD(FlushCallbacks)(THIS) PURE;
984 /* IDebugClient2 */
985 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
986 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
987 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
988 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
989 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
990 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
991 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
992 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
993 /* IDebugClient3 */
994 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
995 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
996 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
997 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
998 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
999 ULONG processid,ULONG attachflags) PURE;
1000 /* IDebugClient4 */
1001 STDMETHOD(OpenDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle) PURE;
1002 STDMETHOD(WriteDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle, ULONG qualifier, ULONG Flags, const WCHAR *comment) PURE;
1003 STDMETHOD(AddDumpInformationFileWide)(THIS_ const WCHAR *filename,ULONG64 handle, ULONG type) PURE;
1004 STDMETHOD(GetNumberDumpFiles)(THIS_ ULONG *count) PURE;
1005 STDMETHOD(GetDumpFile)(THIS_ ULONG index, char *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle, ULONG *type) PURE;
1006 STDMETHOD(GetDumpFileWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle,ULONG *type) PURE;
1007 /* IDebugClient5 */
1008 STDMETHOD(AttachKernelWide)(THIS_ ULONG flags, const WCHAR *options) PURE;
1009 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1010 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ const WCHAR *options) PURE;
1011 STDMETHOD(StartProcessServerWide)(THIS_ ULONG flags, const WCHAR *options, void *reserved) PURE;
1012 STDMETHOD(ConnectProcessServerWide)(THIS_ const WCHAR *options, ULONG64 *server) PURE;
1013 STDMETHOD(StartServerWide)(THIS_ const WCHAR *options) PURE;
1014 STDMETHOD(OutputServersWide)(THIS_ ULONG control, const WCHAR *machine, ULONG flags) PURE;
1015 STDMETHOD(GetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide **callbacks) PURE;
1016 STDMETHOD(SetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide *callbacks) PURE;
1017 STDMETHOD(GetOutputLinePrefixWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1018 STDMETHOD(SetOutputLinePrefixWide)(THIS_ const WCHAR *prefix) PURE;
1019 STDMETHOD(GetIdentityWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *identity) PURE;
1020 STDMETHOD(OutputIdentityWide)(THIS_ ULONG control, ULONG flags, const WCHAR *format) PURE;
1021 STDMETHOD(GetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide **callbacks) PURE;
1022 STDMETHOD(SetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide *callbacks) PURE;
1023 STDMETHOD(CreateProcess2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1024 const char *initial, const char *environment) PURE;
1025 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 server, WCHAR *command, void *options, ULONG size,
1026 const WCHAR *initial, const WCHAR *environment) PURE;
1027 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1028 const char *initial, const char *environment, ULONG processid, ULONG flags) PURE;
1029 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 server, WCHAR *command, void *buffer, ULONG buf_size,
1030 const WCHAR *initial, const WCHAR *environment, ULONG processid, ULONG flags) PURE;
1031 STDMETHOD(PushOutputLinePrefix)(THIS_ const char *prefix, ULONG64 *handle) PURE;
1032 STDMETHOD(PushOutputLinePrefixWide)(THIS_ const WCHAR *prefix, ULONG64 *handle) PURE;
1033 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 handle) PURE;
1034 STDMETHOD(GetNumberInputCallbacks)(THIS_ ULONG *count) PURE;
1035 STDMETHOD(GetNumberOutputCallbacks)(THIS_ ULONG *count) PURE;
1036 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG flags, ULONG *count) PURE;
1037 STDMETHOD(GetQuitLockString)(THIS_ char *buffer, ULONG buf_size, ULONG *size) PURE;
1038 STDMETHOD(SetQuitLockString)(THIS_ char *string) PURE;
1039 STDMETHOD(GetQuitLockStringWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1040 STDMETHOD(SetQuitLockStringWide)(THIS_ const WCHAR *string) PURE;
1041};
1042#undef INTERFACE
1043
1044#define INTERFACE IDebugClient6
1046{
1047 /* IUnknown */
1051 /* IDebugClient */
1052 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
1053 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
1054 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
1055 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
1056 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
1057 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
1058 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
1059 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
1060 ULONG flags, ULONG *id) PURE;
1061 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
1062 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
1063 ULONG *actual_description_size) PURE;
1064 STDMETHOD(AttachProcess)(THIS_ ULONG64 server, ULONG pid, ULONG flags) PURE;
1066 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
1067 ULONG pid, ULONG attach_flags) PURE;
1068 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
1069 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
1070 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
1071 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
1072 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
1073 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
1074 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
1075 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
1076 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
1077 STDMETHOD(TerminateProcesses)(THIS) PURE;
1078 STDMETHOD(DetachProcesses)(THIS) PURE;
1079 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
1080 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
1081 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
1082 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
1083 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
1084 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
1085 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
1086 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
1087 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
1088 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
1089 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
1090 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
1091 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
1092 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
1093 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
1094 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
1095 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
1096 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
1097 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
1098 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
1099 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
1100 STDMETHOD(FlushCallbacks)(THIS) PURE;
1101 /* IDebugClient2 */
1102 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
1103 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
1104 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
1105 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
1106 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
1107 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
1108 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
1109 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
1110 /* IDebugClient3 */
1111 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
1112 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
1113 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
1114 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
1115 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
1116 ULONG processid,ULONG attachflags) PURE;
1117 /* IDebugClient4 */
1118 STDMETHOD(OpenDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle) PURE;
1119 STDMETHOD(WriteDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle, ULONG qualifier, ULONG Flags, const WCHAR *comment) PURE;
1120 STDMETHOD(AddDumpInformationFileWide)(THIS_ const WCHAR *filename,ULONG64 handle, ULONG type) PURE;
1121 STDMETHOD(GetNumberDumpFiles)(THIS_ ULONG *count) PURE;
1122 STDMETHOD(GetDumpFile)(THIS_ ULONG index, char *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle, ULONG *type) PURE;
1123 STDMETHOD(GetDumpFileWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle,ULONG *type) PURE;
1124 /* IDebugClient5 */
1125 STDMETHOD(AttachKernelWide)(THIS_ ULONG flags, const WCHAR *options) PURE;
1126 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1127 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ const WCHAR *options) PURE;
1128 STDMETHOD(StartProcessServerWide)(THIS_ ULONG flags, const WCHAR *options, void *reserved) PURE;
1129 STDMETHOD(ConnectProcessServerWide)(THIS_ const WCHAR *options, ULONG64 *server) PURE;
1130 STDMETHOD(StartServerWide)(THIS_ const WCHAR *options) PURE;
1131 STDMETHOD(OutputServersWide)(THIS_ ULONG control, const WCHAR *machine, ULONG flags) PURE;
1132 STDMETHOD(GetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide **callbacks) PURE;
1133 STDMETHOD(SetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide *callbacks) PURE;
1134 STDMETHOD(GetOutputLinePrefixWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1135 STDMETHOD(SetOutputLinePrefixWide)(THIS_ const WCHAR *prefix) PURE;
1136 STDMETHOD(GetIdentityWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *identity) PURE;
1137 STDMETHOD(OutputIdentityWide)(THIS_ ULONG control, ULONG flags, const WCHAR *format) PURE;
1138 STDMETHOD(GetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide **callbacks) PURE;
1139 STDMETHOD(SetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide *callbacks) PURE;
1140 STDMETHOD(CreateProcess2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1141 const char *initial, const char *environment) PURE;
1142 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 server, WCHAR *command, void *options, ULONG size,
1143 const WCHAR *initial, const WCHAR *environment) PURE;
1144 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1145 const char *initial, const char *environment, ULONG processid, ULONG flags) PURE;
1146 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 server, WCHAR *command, void *buffer, ULONG buf_size,
1147 const WCHAR *initial, const WCHAR *environment, ULONG processid, ULONG flags) PURE;
1148 STDMETHOD(PushOutputLinePrefix)(THIS_ const char *prefix, ULONG64 *handle) PURE;
1149 STDMETHOD(PushOutputLinePrefixWide)(THIS_ const WCHAR *prefix, ULONG64 *handle) PURE;
1150 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 handle) PURE;
1151 STDMETHOD(GetNumberInputCallbacks)(THIS_ ULONG *count) PURE;
1152 STDMETHOD(GetNumberOutputCallbacks)(THIS_ ULONG *count) PURE;
1153 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG flags, ULONG *count) PURE;
1154 STDMETHOD(GetQuitLockString)(THIS_ char *buffer, ULONG buf_size, ULONG *size) PURE;
1155 STDMETHOD(SetQuitLockString)(THIS_ char *string) PURE;
1156 STDMETHOD(GetQuitLockStringWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1157 STDMETHOD(SetQuitLockStringWide)(THIS_ const WCHAR *string) PURE;
1158 /* IDebugClient6 */
1159 STDMETHOD(SetEventContextCallbacks)(THIS_ IDebugEventContextCallbacks *callbacks) PURE;
1160};
1161#undef INTERFACE
1162
1163#define INTERFACE IDebugClient7
1165{
1166 /* IUnknown */
1170 /* IDebugClient */
1171 STDMETHOD(AttachKernel)(THIS_ ULONG flags, const char *options) PURE;
1172 STDMETHOD(GetKernelConnectionOptions)(THIS_ char *buffer, ULONG buffer_size, ULONG *options_size) PURE;
1173 STDMETHOD(SetKernelConnectionOptions)(THIS_ const char *options) PURE;
1174 STDMETHOD(StartProcessServer)(THIS_ ULONG flags, const char *options, void *reserved) PURE;
1175 STDMETHOD(ConnectProcessServer)(THIS_ const char *remote_options, ULONG64 *server) PURE;
1176 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 server) PURE;
1177 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 server, ULONG *ids, ULONG count, ULONG *actual_count) PURE;
1178 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 server, const char *exe_name,
1179 ULONG flags, ULONG *id) PURE;
1180 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 server, ULONG systemid, ULONG flags, char *exe_name,
1181 ULONG exe_name_size, ULONG *actual_exe_name_size, char *description, ULONG description_size,
1182 ULONG *actual_description_size) PURE;
1183 STDMETHOD(AttachProcess)(THIS_ ULONG64 server, ULONG pid, ULONG flags) PURE;
1185 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 server, char *cmdline, ULONG create_flags,
1186 ULONG pid, ULONG attach_flags) PURE;
1187 STDMETHOD(GetProcessOptions)(THIS_ ULONG *options) PURE;
1188 STDMETHOD(AddProcessOptions)(THIS_ ULONG options) PURE;
1189 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG options) PURE;
1190 STDMETHOD(SetProcessOptions)(THIS_ ULONG options) PURE;
1191 STDMETHOD(OpenDumpFile)(THIS_ const char *filename) PURE;
1192 STDMETHOD(WriteDumpFile)(THIS_ const char *filename, ULONG qualifier) PURE;
1193 STDMETHOD(ConnectSession)(THIS_ ULONG flags, ULONG history_limit) PURE;
1194 STDMETHOD(StartServer)(THIS_ const char *options) PURE;
1195 STDMETHOD(OutputServers)(THIS_ ULONG output_control, const char *machine, ULONG flags) PURE;
1196 STDMETHOD(TerminateProcesses)(THIS) PURE;
1197 STDMETHOD(DetachProcesses)(THIS) PURE;
1198 STDMETHOD(EndSession)(THIS_ ULONG flags) PURE;
1199 STDMETHOD(GetExitCode)(THIS_ ULONG *code) PURE;
1200 STDMETHOD(DispatchCallbacks)(THIS_ ULONG timeout) PURE;
1201 STDMETHOD(ExitDispatch)(THIS_ IDebugClient *client) PURE;
1202 STDMETHOD(CreateClient)(THIS_ IDebugClient **client) PURE;
1203 STDMETHOD(GetInputCallbacks)(THIS_ IDebugInputCallbacks **callbacks) PURE;
1204 STDMETHOD(SetInputCallbacks)(THIS_ IDebugInputCallbacks *callbacks) PURE;
1205 STDMETHOD(GetOutputCallbacks)(THIS_ IDebugOutputCallbacks **callbacks) PURE;
1206 STDMETHOD(SetOutputCallbacks)(THIS_ IDebugOutputCallbacks *callbacks) PURE;
1207 STDMETHOD(GetOutputMask)(THIS_ ULONG *mask) PURE;
1208 STDMETHOD(SetOutputMask)(THIS_ ULONG mask) PURE;
1209 STDMETHOD(GetOtherOutputMask)(THIS_ IDebugClient *client, ULONG *mask) PURE;
1210 STDMETHOD(SetOtherOutputMask)(THIS_ IDebugClient *client, ULONG mask) PURE;
1211 STDMETHOD(GetOutputWidth)(THIS_ ULONG *columns) PURE;
1212 STDMETHOD(SetOutputWidth)(THIS_ ULONG columns) PURE;
1213 STDMETHOD(GetOutputLinePrefix)(THIS_ char *buffer, ULONG buffer_size, ULONG *prefix_size) PURE;
1214 STDMETHOD(SetOutputLinePrefix)(THIS_ const char *prefix) PURE;
1215 STDMETHOD(GetIdentity)(THIS_ char *buffer, ULONG buffer_size, ULONG *identity_size) PURE;
1216 STDMETHOD(OutputIdentity)(THIS_ ULONG output_control, ULONG flags, const char *format) PURE;
1217 STDMETHOD(GetEventCallbacks)(THIS_ IDebugEventCallbacks **callbacks) PURE;
1218 STDMETHOD(SetEventCallbacks)(THIS_ IDebugEventCallbacks *callbacks) PURE;
1219 STDMETHOD(FlushCallbacks)(THIS) PURE;
1220 /* IDebugClient2 */
1221 STDMETHOD(WriteDumpFile2)(THIS_ const char *dumpfile, ULONG qualifier, ULONG flags, const char *comment) PURE;
1222 STDMETHOD(AddDumpInformationFile)(THIS_ const char *infofile, ULONG type) PURE;
1223 STDMETHOD(EndProcessServer)(THIS_ ULONG64 server) PURE;
1224 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG timeout) PURE;
1225 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE;
1226 STDMETHOD(TerminateCurrentProcess)(THIS) PURE;
1227 STDMETHOD(DetachCurrentProcess)(THIS) PURE;
1228 STDMETHOD(AbandonCurrentProcess)(THIS) PURE;
1229 /* IDebugClient3 */
1230 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 server, const WCHAR *exename, ULONG flags, ULONG *id) PURE;
1231 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 server, ULONG id, ULONG flags, WCHAR *exename, ULONG size,
1232 ULONG *actualsize, WCHAR *description, ULONG desc_size, ULONG *actual_descr_size) PURE;
1233 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 server, WCHAR *CommandLine, ULONG flags) PURE;
1234 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 server, WCHAR *commandline, ULONG flags,
1235 ULONG processid,ULONG attachflags) PURE;
1236 /* IDebugClient4 */
1237 STDMETHOD(OpenDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle) PURE;
1238 STDMETHOD(WriteDumpFileWide)(THIS_ const WCHAR *filename, ULONG64 handle, ULONG qualifier, ULONG Flags, const WCHAR *comment) PURE;
1239 STDMETHOD(AddDumpInformationFileWide)(THIS_ const WCHAR *filename,ULONG64 handle, ULONG type) PURE;
1240 STDMETHOD(GetNumberDumpFiles)(THIS_ ULONG *count) PURE;
1241 STDMETHOD(GetDumpFile)(THIS_ ULONG index, char *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle, ULONG *type) PURE;
1242 STDMETHOD(GetDumpFileWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buf_size, ULONG *name_size, ULONG64 *handle,ULONG *type) PURE;
1243 /* IDebugClient5 */
1244 STDMETHOD(AttachKernelWide)(THIS_ ULONG flags, const WCHAR *options) PURE;
1245 STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1246 STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ const WCHAR *options) PURE;
1247 STDMETHOD(StartProcessServerWide)(THIS_ ULONG flags, const WCHAR *options, void *reserved) PURE;
1248 STDMETHOD(ConnectProcessServerWide)(THIS_ const WCHAR *options, ULONG64 *server) PURE;
1249 STDMETHOD(StartServerWide)(THIS_ const WCHAR *options) PURE;
1250 STDMETHOD(OutputServersWide)(THIS_ ULONG control, const WCHAR *machine, ULONG flags) PURE;
1251 STDMETHOD(GetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide **callbacks) PURE;
1252 STDMETHOD(SetOutputCallbacksWide)(THIS_ IDebugOutputCallbacksWide *callbacks) PURE;
1253 STDMETHOD(GetOutputLinePrefixWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1254 STDMETHOD(SetOutputLinePrefixWide)(THIS_ const WCHAR *prefix) PURE;
1255 STDMETHOD(GetIdentityWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *identity) PURE;
1256 STDMETHOD(OutputIdentityWide)(THIS_ ULONG control, ULONG flags, const WCHAR *format) PURE;
1257 STDMETHOD(GetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide **callbacks) PURE;
1258 STDMETHOD(SetEventCallbacksWide)(THIS_ IDebugEventCallbacksWide *callbacks) PURE;
1259 STDMETHOD(CreateProcess2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1260 const char *initial, const char *environment) PURE;
1261 STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 server, WCHAR *command, void *options, ULONG size,
1262 const WCHAR *initial, const WCHAR *environment) PURE;
1263 STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 server, char *command, void *options, ULONG buf_size,
1264 const char *initial, const char *environment, ULONG processid, ULONG flags) PURE;
1265 STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 server, WCHAR *command, void *buffer, ULONG buf_size,
1266 const WCHAR *initial, const WCHAR *environment, ULONG processid, ULONG flags) PURE;
1267 STDMETHOD(PushOutputLinePrefix)(THIS_ const char *prefix, ULONG64 *handle) PURE;
1268 STDMETHOD(PushOutputLinePrefixWide)(THIS_ const WCHAR *prefix, ULONG64 *handle) PURE;
1269 STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 handle) PURE;
1270 STDMETHOD(GetNumberInputCallbacks)(THIS_ ULONG *count) PURE;
1271 STDMETHOD(GetNumberOutputCallbacks)(THIS_ ULONG *count) PURE;
1272 STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG flags, ULONG *count) PURE;
1273 STDMETHOD(GetQuitLockString)(THIS_ char *buffer, ULONG buf_size, ULONG *size) PURE;
1274 STDMETHOD(SetQuitLockString)(THIS_ char *string) PURE;
1275 STDMETHOD(GetQuitLockStringWide)(THIS_ WCHAR *buffer, ULONG buf_size, ULONG *size) PURE;
1276 STDMETHOD(SetQuitLockStringWide)(THIS_ const WCHAR *string) PURE;
1277 /* IDebugClient6 */
1278 STDMETHOD(SetEventContextCallbacks)(THIS_ IDebugEventContextCallbacks *callbacks) PURE;
1279 /* IDebugClient7 */
1280 STDMETHOD(SetClientContext)(THIS_ void *context, ULONG size) PURE;
1281};
1282#undef INTERFACE
1283
1284#define INTERFACE IDebugDataSpaces
1286{
1287 /* IUnknown */
1291 /* IDebugDataSpaces */
1292 STDMETHOD(ReadVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1293 STDMETHOD(WriteVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1294 STDMETHOD(SearchVirtual)(THIS_ ULONG64 offset, ULONG64 length, void *pattern, ULONG pattern_size,
1295 ULONG pattern_granularity, ULONG64 *ret_offset) PURE;
1296 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1297 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1298 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
1299 STDMETHOD(WritePointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
1300 STDMETHOD(ReadPhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1301 STDMETHOD(WritePhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1302 STDMETHOD(ReadControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
1303 ULONG *read_len) PURE;
1304 STDMETHOD(WriteControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
1305 ULONG *written) PURE;
1306 STDMETHOD(ReadIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
1307 ULONG buffer_size, ULONG *read_len) PURE;
1308 STDMETHOD(WriteIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
1309 ULONG buffer_size, ULONG *written) PURE;
1310 STDMETHOD(ReadMsr)(THIS_ ULONG msr, ULONG64 *value) PURE;
1311 STDMETHOD(WriteMsr)(THIS_ ULONG msr, ULONG64 value) PURE;
1312 STDMETHOD(ReadBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
1313 ULONG buffer_size, ULONG *read_len) PURE;
1314 STDMETHOD(WriteBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
1315 ULONG buffer_size, ULONG *written) PURE;
1316 STDMETHOD(CheckLowMemory)(THIS) PURE;
1317 STDMETHOD(ReadDebuggerData)(THIS_ ULONG index, void *buffer, ULONG buffer_size, ULONG *data_size) PURE;
1318 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG processor, ULONG index, void *buffer, ULONG buffer_size,
1319 ULONG *data_size) PURE;
1320};
1321#undef INTERFACE
1322
1323#define INTERFACE IDebugDataSpaces2
1324DECLARE_INTERFACE_(IDebugDataSpaces2, IUnknown)
1325{
1326 /* IUnknown */
1330 /* IDebugDataSpaces */
1331 STDMETHOD(ReadVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1332 STDMETHOD(WriteVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1333 STDMETHOD(SearchVirtual)(THIS_ ULONG64 offset, ULONG64 length, void *pattern, ULONG pattern_size,
1334 ULONG pattern_granularity, ULONG64 *ret_offset) PURE;
1335 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1336 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1337 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
1338 STDMETHOD(WritePointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
1339 STDMETHOD(ReadPhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
1340 STDMETHOD(WritePhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
1341 STDMETHOD(ReadControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
1342 ULONG *read_len) PURE;
1343 STDMETHOD(WriteControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
1344 ULONG *written) PURE;
1345 STDMETHOD(ReadIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
1346 ULONG buffer_size, ULONG *read_len) PURE;
1347 STDMETHOD(WriteIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
1348 ULONG buffer_size, ULONG *written) PURE;
1349 STDMETHOD(ReadMsr)(THIS_ ULONG msr, ULONG64 *value) PURE;
1350 STDMETHOD(WriteMsr)(THIS_ ULONG msr, ULONG64 value) PURE;
1351 STDMETHOD(ReadBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
1352 ULONG buffer_size, ULONG *read_len) PURE;
1353 STDMETHOD(WriteBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
1354 ULONG buffer_size, ULONG *written) PURE;
1355 STDMETHOD(CheckLowMemory)(THIS) PURE;
1356 STDMETHOD(ReadDebuggerData)(THIS_ ULONG index, void *buffer, ULONG buffer_size, ULONG *data_size) PURE;
1357 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG processor, ULONG index, void *buffer, ULONG buffer_size,
1358 ULONG *data_size) PURE;
1359 /* IDebugDataSpaces2 */
1360 STDMETHOD(VirtualToPhysical)(THIS_ ULONG64 virt, ULONG64 *physical) PURE;
1361 STDMETHOD(GetVirtualTranslationPhysicalOffsets)(THIS_ ULONG64 virt, ULONG64 *offsets, ULONG offsets_size,
1362 ULONG *levels) PURE;
1363 STDMETHOD(ReadHandleData)(THIS_ ULONG64 handle, ULONG datatype, void *buffer, ULONG buffer_size,
1364 ULONG *data_size) PURE;
1365 STDMETHOD(FillVirtual)(THIS_ ULONG64 start, ULONG size, void *pattern, ULONG pattern_size, ULONG *filled) PURE;
1366 STDMETHOD(FillPhysical)(THIS_ ULONG64 start, ULONG size, void *pattern, ULONG pattern_size, ULONG *filled) PURE;
1368};
1369#undef INTERFACE
1370
1371#define INTERFACE IDebugSymbols
1373{
1374 /* IUnknown */
1378 /* IDebugSymbols */
1379 STDMETHOD(GetSymbolOptions)(THIS_ ULONG *options) PURE;
1380 STDMETHOD(AddSymbolOptions)(THIS_ ULONG options) PURE;
1381 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG options) PURE;
1382 STDMETHOD(SetSymbolOptions)(THIS_ ULONG options) PURE;
1383 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 offset, char *buffer, ULONG buffer_size, ULONG *name_size,
1384 ULONG64 *displacement) PURE;
1385 STDMETHOD(GetOffsetByName)(THIS_ const char *symbol, ULONG64 *offset) PURE;
1386 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 offset, LONG delta, char *buffer, ULONG buffer_size,ULONG *name_size,
1387 ULONG64 *displacement) PURE;
1389 ULONG64 *displacement) PURE;
1390 STDMETHOD(GetOffsetByLine)(THIS_ ULONG line, const char *file, ULONG64 *offset) PURE;
1391 STDMETHOD(GetNumberModules)(THIS_ ULONG *loaded, ULONG *unloaded) PURE;
1392 STDMETHOD(GetModuleByIndex)(THIS_ ULONG index, ULONG64 *base) PURE;
1393 STDMETHOD(GetModuleByModuleName)(THIS_ const char *name, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1394 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 offset, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1395 STDMETHOD(GetModuleNames)(THIS_ ULONG index, ULONG64 base, char *image_name, ULONG image_name_buffer_size,
1396 ULONG *image_name_size, char *module_name, ULONG module_name_buffer_size, ULONG *module_name_size,
1397 char *loaded_image_name, ULONG loaded_image_name_buffer_size, ULONG *loaded_image_size) PURE;
1398 STDMETHOD(GetModuleParameters)(THIS_ ULONG count, ULONG64 *bases, ULONG start,
1400 STDMETHOD(GetSymbolModule)(THIS_ const char *symbol, ULONG64 *base) PURE;
1402 STDMETHOD(GetTypeId)(THIS_ ULONG64 module, const char *name, ULONG *type_id) PURE;
1404 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 base, ULONG type_id, const char *field, ULONG *offset) PURE;
1405 STDMETHOD(GetSymbolTypeId)(THIS_ const char *symbol, ULONG *type_id, ULONG64 *base) PURE;
1406 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 offset, ULONG *type_id, ULONG64 *base) PURE;
1407 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1408 ULONG buffer_size, ULONG *read_len) PURE;
1409 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1410 ULONG buffer_size, ULONG *written) PURE;
1411 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1412 ULONG flags) PURE;
1413 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1414 ULONG buffer_size, ULONG *read_len) PURE;
1415 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1416 ULONG buffer_size, ULONG *written) PURE;
1417 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1418 ULONG flags) PURE;
1419 STDMETHOD(GetScope)(THIS_ ULONG64 *instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1420 ULONG scope_context_size) PURE;
1421 STDMETHOD(SetScope)(THIS_ ULONG64 instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1422 ULONG scope_context_size) PURE;
1423 STDMETHOD(ResetScope)(THIS) PURE;
1424 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG flags, IDebugSymbolGroup *update, IDebugSymbolGroup **symbols) PURE;
1425 STDMETHOD(CreateSymbolGroup)(THIS_ IDebugSymbolGroup **group) PURE;
1426 STDMETHOD(StartSymbolMatch)(THIS_ const char *pattern, ULONG64 *handle) PURE;
1427 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 handle, char *buffer, ULONG buffer_size, ULONG *match_size,
1429 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 handle) PURE;
1430 STDMETHOD(Reload)(THIS_ const char *path) PURE;
1431 STDMETHOD(GetSymbolPath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1432 STDMETHOD(SetSymbolPath)(THIS_ const char *path) PURE;
1433 STDMETHOD(AppendSymbolPath)(THIS_ const char *path) PURE;
1434 STDMETHOD(GetImagePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1435 STDMETHOD(SetImagePath)(THIS_ const char *path) PURE;
1436 STDMETHOD(AppendImagePath)(THIS_ const char *path) PURE;
1437 STDMETHOD(GetSourcePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1438 STDMETHOD(GetSourcePathElement)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *element_size) PURE;
1439 STDMETHOD(SetSourcePath)(THIS_ const char *path) PURE;
1440 STDMETHOD(AppendSourcePath)(THIS_ const char *path) PURE;
1441 STDMETHOD(FindSourceFile)(THIS_ ULONG start, const char *file, ULONG flags, ULONG *found_element, char *buffer,
1442 ULONG buffer_size, ULONG *found_size) PURE;
1443 STDMETHOD(GetSourceFileLineOffsets)(THIS_ const char *file, ULONG64 *buffer, ULONG buffer_lines,
1444 ULONG *file_lines) PURE;
1445};
1446#undef INTERFACE
1447
1448#define INTERFACE IDebugSymbols2
1450{
1451 /* IUnknown */
1455 /* IDebugSymbols */
1456 STDMETHOD(GetSymbolOptions)(THIS_ ULONG *options) PURE;
1457 STDMETHOD(AddSymbolOptions)(THIS_ ULONG options) PURE;
1458 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG options) PURE;
1459 STDMETHOD(SetSymbolOptions)(THIS_ ULONG options) PURE;
1460 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 offset, char *buffer, ULONG buffer_size, ULONG *name_size,
1461 ULONG64 *displacement) PURE;
1462 STDMETHOD(GetOffsetByName)(THIS_ const char *symbol, ULONG64 *offset) PURE;
1463 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 offset, LONG delta, char *buffer, ULONG buffer_size,ULONG *name_size,
1464 ULONG64 *displacement) PURE;
1466 ULONG64 *displacement) PURE;
1467 STDMETHOD(GetOffsetByLine)(THIS_ ULONG line, const char *file, ULONG64 *offset) PURE;
1468 STDMETHOD(GetNumberModules)(THIS_ ULONG *loaded, ULONG *unloaded) PURE;
1469 STDMETHOD(GetModuleByIndex)(THIS_ ULONG index, ULONG64 *base) PURE;
1470 STDMETHOD(GetModuleByModuleName)(THIS_ const char *name, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1471 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 offset, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1472 STDMETHOD(GetModuleNames)(THIS_ ULONG index, ULONG64 base, char *image_name, ULONG image_name_buffer_size,
1473 ULONG *image_name_size, char *module_name, ULONG module_name_buffer_size, ULONG *module_name_size,
1474 char *loaded_image_name, ULONG loaded_image_name_buffer_size, ULONG *loaded_image_size) PURE;
1475 STDMETHOD(GetModuleParameters)(THIS_ ULONG count, ULONG64 *bases, ULONG start,
1477 STDMETHOD(GetSymbolModule)(THIS_ const char *symbol, ULONG64 *base) PURE;
1479 STDMETHOD(GetTypeId)(THIS_ ULONG64 module, const char *name, ULONG *type_id) PURE;
1481 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 base, ULONG type_id, const char *field, ULONG *offset) PURE;
1482 STDMETHOD(GetSymbolTypeId)(THIS_ const char *symbol, ULONG *type_id, ULONG64 *base) PURE;
1483 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 offset, ULONG *type_id, ULONG64 *base) PURE;
1484 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1485 ULONG buffer_size, ULONG *read_len) PURE;
1486 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1487 ULONG buffer_size, ULONG *written) PURE;
1488 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1489 ULONG flags) PURE;
1490 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1491 ULONG buffer_size, ULONG *read_len) PURE;
1492 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1493 ULONG buffer_size, ULONG *written) PURE;
1494 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1495 ULONG flags) PURE;
1496 STDMETHOD(GetScope)(THIS_ ULONG64 *instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1497 ULONG scope_context_size) PURE;
1498 STDMETHOD(SetScope)(THIS_ ULONG64 instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1499 ULONG scope_context_size) PURE;
1500 STDMETHOD(ResetScope)(THIS) PURE;
1501 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG flags, IDebugSymbolGroup *update, IDebugSymbolGroup **symbols) PURE;
1502 STDMETHOD(CreateSymbolGroup)(THIS_ IDebugSymbolGroup **group) PURE;
1503 STDMETHOD(StartSymbolMatch)(THIS_ const char *pattern, ULONG64 *handle) PURE;
1504 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 handle, char *buffer, ULONG buffer_size, ULONG *match_size,
1506 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 handle) PURE;
1507 STDMETHOD(Reload)(THIS_ const char *path) PURE;
1508 STDMETHOD(GetSymbolPath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1509 STDMETHOD(SetSymbolPath)(THIS_ const char *path) PURE;
1510 STDMETHOD(AppendSymbolPath)(THIS_ const char *path) PURE;
1511 STDMETHOD(GetImagePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1512 STDMETHOD(SetImagePath)(THIS_ const char *path) PURE;
1513 STDMETHOD(AppendImagePath)(THIS_ const char *path) PURE;
1514 STDMETHOD(GetSourcePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1515 STDMETHOD(GetSourcePathElement)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *element_size) PURE;
1516 STDMETHOD(SetSourcePath)(THIS_ const char *path) PURE;
1517 STDMETHOD(AppendSourcePath)(THIS_ const char *path) PURE;
1518 STDMETHOD(FindSourceFile)(THIS_ ULONG start, const char *file, ULONG flags, ULONG *found_element, char *buffer,
1519 ULONG buffer_size, ULONG *found_size) PURE;
1520 STDMETHOD(GetSourceFileLineOffsets)(THIS_ const char *file, ULONG64 *buffer, ULONG buffer_lines,
1521 ULONG *file_lines) PURE;
1522 /* IDebugSymbols2 */
1523 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG index, ULONG64 base, const char *item, void *buffer,
1524 ULONG buffer_size, ULONG *info_size) PURE;
1525 STDMETHOD(GetModuleNameString)(THIS_ ULONG which, ULONG index, ULONG64 base, char *buffer, ULONG buffer_size,
1526 ULONG *name_size) PURE;
1528 ULONG *name_size) PURE;
1529 STDMETHOD(GetFieldName)(THIS_ ULONG64 module, ULONG type_id, ULONG field_index, char *buffer, ULONG buffer_size,
1530 ULONG *name_size) PURE;
1531 STDMETHOD(GetTypeOptions)(THIS_ ULONG *options) PURE;
1532 STDMETHOD(AddTypeOptions)(THIS_ ULONG options) PURE;
1533 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG options) PURE;
1534 STDMETHOD(SetTypeOptions)(THIS_ ULONG options) PURE;
1535};
1536#undef INTERFACE
1537
1538#define INTERFACE IDebugSymbols3
1540{
1541 /* IUnknown */
1545 /* IDebugSymbols */
1546 STDMETHOD(GetSymbolOptions)(THIS_ ULONG *options) PURE;
1547 STDMETHOD(AddSymbolOptions)(THIS_ ULONG options) PURE;
1548 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG options) PURE;
1549 STDMETHOD(SetSymbolOptions)(THIS_ ULONG options) PURE;
1550 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 offset, char *buffer, ULONG buffer_size, ULONG *name_size,
1551 ULONG64 *displacement) PURE;
1552 STDMETHOD(GetOffsetByName)(THIS_ const char *symbol, ULONG64 *offset) PURE;
1553 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 offset, LONG delta, char *buffer, ULONG buffer_size,ULONG *name_size,
1554 ULONG64 *displacement) PURE;
1556 ULONG64 *displacement) PURE;
1557 STDMETHOD(GetOffsetByLine)(THIS_ ULONG line, const char *file, ULONG64 *offset) PURE;
1558 STDMETHOD(GetNumberModules)(THIS_ ULONG *loaded, ULONG *unloaded) PURE;
1559 STDMETHOD(GetModuleByIndex)(THIS_ ULONG index, ULONG64 *base) PURE;
1560 STDMETHOD(GetModuleByModuleName)(THIS_ const char *name, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1561 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 offset, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1562 STDMETHOD(GetModuleNames)(THIS_ ULONG index, ULONG64 base, char *image_name, ULONG image_name_buffer_size,
1563 ULONG *image_name_size, char *module_name, ULONG module_name_buffer_size, ULONG *module_name_size,
1564 char *loaded_image_name, ULONG loaded_image_name_buffer_size, ULONG *loaded_image_size) PURE;
1565 STDMETHOD(GetModuleParameters)(THIS_ ULONG count, ULONG64 *bases, ULONG start,
1567 STDMETHOD(GetSymbolModule)(THIS_ const char *symbol, ULONG64 *base) PURE;
1569 STDMETHOD(GetTypeId)(THIS_ ULONG64 module, const char *name, ULONG *type_id) PURE;
1571 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 base, ULONG type_id, const char *field, ULONG *offset) PURE;
1572 STDMETHOD(GetSymbolTypeId)(THIS_ const char *symbol, ULONG *type_id, ULONG64 *base) PURE;
1573 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 offset, ULONG *type_id, ULONG64 *base) PURE;
1574 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1575 ULONG buffer_size, ULONG *read_len) PURE;
1576 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1577 ULONG buffer_size, ULONG *written) PURE;
1578 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1579 ULONG flags) PURE;
1580 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1581 ULONG buffer_size, ULONG *read_len) PURE;
1582 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 offset, ULONG64 base, ULONG type_id, void *buffer,
1583 ULONG buffer_size, ULONG *written) PURE;
1584 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG output_control, ULONG64 offset, ULONG64 base, ULONG type_id,
1585 ULONG flags) PURE;
1586 STDMETHOD(GetScope)(THIS_ ULONG64 *instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1587 ULONG scope_context_size) PURE;
1588 STDMETHOD(SetScope)(THIS_ ULONG64 instr_offset, DEBUG_STACK_FRAME *frame, void *scope_context,
1589 ULONG scope_context_size) PURE;
1590 STDMETHOD(ResetScope)(THIS) PURE;
1591 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG flags, IDebugSymbolGroup *update, IDebugSymbolGroup **symbols) PURE;
1592 STDMETHOD(CreateSymbolGroup)(THIS_ IDebugSymbolGroup **group) PURE;
1593 STDMETHOD(StartSymbolMatch)(THIS_ const char *pattern, ULONG64 *handle) PURE;
1594 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 handle, char *buffer, ULONG buffer_size, ULONG *match_size,
1596 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 handle) PURE;
1597 STDMETHOD(Reload)(THIS_ const char *path) PURE;
1598 STDMETHOD(GetSymbolPath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1599 STDMETHOD(SetSymbolPath)(THIS_ const char *path) PURE;
1600 STDMETHOD(AppendSymbolPath)(THIS_ const char *path) PURE;
1601 STDMETHOD(GetImagePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1602 STDMETHOD(SetImagePath)(THIS_ const char *path) PURE;
1603 STDMETHOD(AppendImagePath)(THIS_ const char *path) PURE;
1604 STDMETHOD(GetSourcePath)(THIS_ char *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1605 STDMETHOD(GetSourcePathElement)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *element_size) PURE;
1606 STDMETHOD(SetSourcePath)(THIS_ const char *path) PURE;
1607 STDMETHOD(AppendSourcePath)(THIS_ const char *path) PURE;
1608 STDMETHOD(FindSourceFile)(THIS_ ULONG start, const char *file, ULONG flags, ULONG *found_element, char *buffer,
1609 ULONG buffer_size, ULONG *found_size) PURE;
1610 STDMETHOD(GetSourceFileLineOffsets)(THIS_ const char *file, ULONG64 *buffer, ULONG buffer_lines,
1611 ULONG *file_lines) PURE;
1612 /* IDebugSymbols2 */
1613 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG index, ULONG64 base, const char *item, void *buffer,
1614 ULONG buffer_size, ULONG *info_size) PURE;
1615 STDMETHOD(GetModuleNameString)(THIS_ ULONG which, ULONG index, ULONG64 base, char *buffer, ULONG buffer_size,
1616 ULONG *name_size) PURE;
1618 ULONG *name_size) PURE;
1619 STDMETHOD(GetFieldName)(THIS_ ULONG64 module, ULONG type_id, ULONG field_index, char *buffer, ULONG buffer_size,
1620 ULONG *name_size) PURE;
1621 STDMETHOD(GetTypeOptions)(THIS_ ULONG *options) PURE;
1622 STDMETHOD(AddTypeOptions)(THIS_ ULONG options) PURE;
1623 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG options) PURE;
1624 STDMETHOD(SetTypeOptions)(THIS_ ULONG options) PURE;
1625 /* IDebugSymbols3 */
1626 STDMETHOD(GetNameByOffsetWide)(THIS_ ULONG64 offset, WCHAR *buffer, ULONG buffer_size, ULONG *name_size,
1627 ULONG64 *displacement) PURE;
1628 STDMETHOD(GetOffsetByNameWide)(THIS_ const WCHAR *symbol, ULONG64 *offset) PURE;
1629 STDMETHOD(GetNearNameByOffsetWide)(THIS_ ULONG64 offset, LONG delta, WCHAR *buffer, ULONG buffer_size,
1630 ULONG *name_size, ULONG64 *displacement) PURE;
1631 STDMETHOD(GetLineByOffsetWide)(THIS_ ULONG64 offset, ULONG *line, WCHAR *buffer, ULONG buffer_size,
1632 ULONG *file_size, ULONG64 *displacement) PURE;
1633 STDMETHOD(GetOffsetByLineWide)(THIS_ ULONG line, const WCHAR *file, ULONG64 *offset) PURE;
1634 STDMETHOD(GetModuleByModuleNameWide)(THIS_ const WCHAR *name, ULONG start_index, ULONG *index, ULONG64 *base) PURE;
1635 STDMETHOD(GetSymbolModuleWide)(THIS_ const WCHAR *symbol, ULONG64 *base) PURE;
1637 ULONG *name_size) PURE;
1638 STDMETHOD(GetTypeIdWide)(THIS_ ULONG64 module, const WCHAR *name, ULONG *type_id) PURE;
1639 STDMETHOD(GetFieldOffsetWide)(THIS_ ULONG64 module, ULONG type_id, const WCHAR *field, ULONG *offset) PURE;
1640 STDMETHOD(GetSymbolTypeIdWide)(THIS_ const WCHAR *symbol, ULONG *type_id, ULONG64 *module) PURE;
1641 STDMETHOD(GetScopeSymbolGroup2)(THIS_ ULONG flags, PDEBUG_SYMBOL_GROUP2 update,
1642 PDEBUG_SYMBOL_GROUP2 *symbols) PURE;
1643 STDMETHOD(CreateSymbolGroup2)(THIS_ PDEBUG_SYMBOL_GROUP2 *group) PURE;
1644 STDMETHOD(StartSymbolMatchWide)(THIS_ const WCHAR *pattern, ULONG64 *handle) PURE;
1645 STDMETHOD(GetNextSymbolMatchWide)(THIS_ ULONG64 handle, WCHAR *buffer, ULONG buffer_size, ULONG *match_size,
1647 STDMETHOD(ReloadWide)(THIS_ const WCHAR *module) PURE;
1648 STDMETHOD(GetSymbolPathWide)(THIS_ WCHAR *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1649 STDMETHOD(SetSymbolPathWide)(THIS_ const WCHAR *path) PURE;
1650 STDMETHOD(AppendSymbolPathWide)(THIS_ const WCHAR *addition) PURE;
1651 STDMETHOD(GetImagePathWide)(THIS_ WCHAR *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1652 STDMETHOD(SetImagePathWide)(THIS_ const WCHAR *path) PURE;
1653 STDMETHOD(AppendImagePathWide)(THIS_ const WCHAR *addition) PURE;
1654 STDMETHOD(GetSourcePathWide)(THIS_ WCHAR *buffer, ULONG buffer_size, ULONG *path_size) PURE;
1655 STDMETHOD(GetSourcePathElementWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buffer_size, ULONG *element_size) PURE;
1656 STDMETHOD(SetSourcePathWide)(THIS_ const WCHAR *path) PURE;
1657 STDMETHOD(AppendSourcePathWide)(THIS_ const WCHAR *addition) PURE;
1658 STDMETHOD(FindSourceFileWide)(THIS_ ULONG start_element, const WCHAR *file, ULONG flags, ULONG *found_element,
1659 WCHAR *buffer, ULONG buffer_size, ULONG *found_size) PURE;
1660 STDMETHOD(GetSourceFileLineOffsetsWide)(THIS_ const WCHAR *file, ULONG64 *buffer, ULONG buffer_lines,
1661 ULONG *file_lines) PURE;
1662 STDMETHOD(GetModuleVersionInformationWide)(THIS_ ULONG index, ULONG64 base, const WCHAR *item, void *buffer,
1663 ULONG buffer_size, ULONG *version_info_size) PURE;
1664 STDMETHOD(GetModuleNameStringWide)(THIS_ ULONG which, ULONG index, ULONG64 base, WCHAR *buffer, ULONG buffer_size,
1665 ULONG *name_size) PURE;
1667 ULONG buffer_size, ULONG *name_size) PURE;
1668 STDMETHOD(GetFieldNameWide)(THIS_ ULONG64 module, ULONG type_id, ULONG field_index, WCHAR *buffer,
1669 ULONG buffer_size, ULONG *name_size) PURE;
1670 STDMETHOD(IsManagedModule)(THIS_ ULONG index, ULONG64 base) PURE;
1671 STDMETHOD(GetModuleByModuleName2)(THIS_ const char *name, ULONG start_index, ULONG flags, ULONG *index,
1672 ULONG64 *base) PURE;
1673 STDMETHOD(GetModuleByModuleName2Wide)(THIS_ const WCHAR *name, ULONG start_index, ULONG flags, ULONG *index,
1674 ULONG64 *base) PURE;
1675 STDMETHOD(GetModuleByOffset2)(THIS_ ULONG64 offset, ULONG start_index, ULONG flags, ULONG *index,
1676 ULONG64 *base) PURE;
1677 STDMETHOD(AddSyntheticModule)(THIS_ ULONG64 base, ULONG size, const char *image_path, const char *module_name,
1678 ULONG flags) PURE;
1679 STDMETHOD(AddSyntheticModuleWide)(THIS_ ULONG64 base, ULONG size, const WCHAR *image_path,
1680 const WCHAR *module_name, ULONG flags) PURE;
1681 STDMETHOD(RemoveSyntheticModule)(THIS_ ULONG64 base) PURE;
1682 STDMETHOD(GetCurrentScopeFrameIndex)(THIS_ ULONG *index) PURE;
1683 STDMETHOD(SetScopeFrameByIndex)(THIS_ ULONG index) PURE;
1684 STDMETHOD(SetScopeFromJitDebugInfo)(THIS_ ULONG output_control, ULONG64 info_offset) PURE;
1685 STDMETHOD(SetScopeFromStoredEvent)(THIS) PURE;
1686 STDMETHOD(OutputSymbolByOffset)(THIS_ ULONG output_control, ULONG flags, ULONG64 offset) PURE;
1687 STDMETHOD(GetFunctionEntryByOffset)(THIS_ ULONG64 offset, ULONG flags, void *buffer, ULONG buffer_size,
1688 ULONG *needed_size) PURE;
1689 STDMETHOD(GetFieldTypeAndOffset)(THIS_ ULONG64 module, ULONG container_type_id, const char *field,
1690 ULONG *field_type_id, ULONG *offset) PURE;
1691 STDMETHOD(GetFieldTypeAndOffsetWide)(THIS_ ULONG64 module, ULONG container_type_id, const WCHAR *field,
1692 ULONG *field_type_id, ULONG *offset) PURE;
1693 STDMETHOD(AddSyntheticSymbol)(THIS_ ULONG64 offset, ULONG size, const char *name, ULONG flags,
1695 STDMETHOD(AddSyntheticSymbolWide)(THIS_ ULONG64 offset, ULONG size, const WCHAR *name, ULONG flags,
1697 STDMETHOD(RemoveSyntheticSymbol)(THIS_ DEBUG_MODULE_AND_ID *id) PURE;
1698 STDMETHOD(GetSymbolEntriesByOffset)(THIS_ ULONG64 offset, ULONG flags, DEBUG_MODULE_AND_ID *ids,
1699 LONG64 *displacements, ULONG count, ULONG *entries) PURE;
1700 STDMETHOD(GetSymbolEntriesByName)(THIS_ const char *symbol, ULONG flags, DEBUG_MODULE_AND_ID *ids, ULONG count,
1701 ULONG *entries) PURE;
1702 STDMETHOD(GetSymbolEntriesByNameWide)(THIS_ const WCHAR *symbol, ULONG flags, DEBUG_MODULE_AND_ID *ids,
1703 ULONG count, ULONG *entries) PURE;
1704 STDMETHOD(GetSymbolEntryByToken)(THIS_ ULONG64 base, ULONG token, DEBUG_MODULE_AND_ID *id) PURE;
1705 STDMETHOD(GetSymbolEntryInformation)(THIS_ DEBUG_MODULE_AND_ID *id, DEBUG_SYMBOL_ENTRY *info) PURE;
1706 STDMETHOD(GetSymbolEntryString)(THIS_ DEBUG_MODULE_AND_ID *id, ULONG which, char *buffer, ULONG buffer_size,
1707 ULONG *string_size) PURE;
1709 ULONG *string_size) PURE;
1710 STDMETHOD(GetSymbolEntryOffsetRegions)(THIS_ DEBUG_MODULE_AND_ID *id, ULONG flags, DEBUG_OFFSET_REGION *regions,
1711 ULONG regions_count, ULONG *regions_avail) PURE;
1712 STDMETHOD(GetSymbolEntryBySymbolEntry)(THIS_ DEBUG_MODULE_AND_ID *from_id, ULONG flags,
1713 DEBUG_MODULE_AND_ID *to_id) PURE;
1714 STDMETHOD(GetSourceEntriesByOffset)(THIS_ ULONG64 offset, ULONG flags, DEBUG_SYMBOL_SOURCE_ENTRY *entries,
1715 ULONG count, ULONG *entries_avail) PURE;
1716 STDMETHOD(GetSourceEntriesByLine)(THIS_ ULONG line, const char *file, ULONG flags,
1717 DEBUG_SYMBOL_SOURCE_ENTRY *entries, ULONG count, ULONG *entries_avail) PURE;
1718 STDMETHOD(GetSourceEntriesByLineWide)(THIS_ ULONG line, const WCHAR *file, ULONG flags,
1719 DEBUG_SYMBOL_SOURCE_ENTRY *entries, ULONG count, ULONG *entries_avail) PURE;
1720 STDMETHOD(GetSourceEntryString)(THIS_ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG which, char *buffer,
1721 ULONG buffer_size, ULONG *string_size) PURE;
1722 STDMETHOD(GetSourceEntryStringWide)(THIS_ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG which, WCHAR *buffer,
1723 ULONG buffer_size, ULONG *string_size) PURE;
1724 STDMETHOD(GetSourceEntryOffsetRegions)(THIS_ DEBUG_SYMBOL_SOURCE_ENTRY *entry, ULONG flags,
1725 DEBUG_OFFSET_REGION *regions, ULONG count, ULONG *regions_avail) PURE;
1726 STDMETHOD(GetSourceEntryBySourceEntry)(THIS_ DEBUG_SYMBOL_SOURCE_ENTRY *from_entry, ULONG flags,
1728};
1729#undef INTERFACE
1730
1731#ifdef __ms_va_list
1732
1733#define INTERFACE IDebugControl
1734DECLARE_INTERFACE_(IDebugControl, IUnknown)
1735{
1736 /* IUnknown */
1740 /* IDebugControl */
1741 STDMETHOD(GetInterrupt)(THIS) PURE;
1742 STDMETHOD(SetInterrupt)(THIS_ ULONG flags) PURE;
1743 STDMETHOD(GetInterruptTimeout)(THIS_ ULONG *timeout) PURE;
1744 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG timeout) PURE;
1747 STDMETHOD(CloseLogFile)(THIS) PURE;
1748 STDMETHOD(GetLogMask)(THIS_ ULONG *mask) PURE;
1749 STDMETHOD(SetLogMask)(THIS_ ULONG mask) PURE;
1750 STDMETHOD(Input)(THIS_ char *buffer, ULONG buffer_size, ULONG *input_size) PURE;
1751 STDMETHOD(ReturnInput)(THIS_ const char *buffer) PURE;
1752 STDMETHODV(Output)(THIS_ ULONG mask, const char *format, ...) PURE;
1753 STDMETHOD(OutputVaList)(THIS_ ULONG mask, const char *format, __ms_va_list args) PURE;
1754 STDMETHODV(ControlledOutput)(THIS_ ULONG output_control, ULONG mask, const char *format, ...) PURE;
1755 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG output_control, ULONG mask, const char *format,
1757 STDMETHODV(OutputPrompt)(THIS_ ULONG output_control, const char *format, ...) PURE;
1758 STDMETHOD(OutputPromptVaList)(THIS_ ULONG output_control, const char *format, __ms_va_list args) PURE;
1759 STDMETHOD(GetPromptText)(THIS_ char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
1760 STDMETHOD(OutputCurrentState)(THIS_ ULONG output_control, ULONG flags) PURE;
1761 STDMETHOD(OutputVersionInformation)(THIS_ ULONG output_control) PURE;
1762 STDMETHOD(GetNotifyEventHandle)(THIS_ ULONG64 *handle) PURE;
1763 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 handle) PURE;
1764 STDMETHOD(Assemble)(THIS_ ULONG64 offset, const char *code, ULONG64 *end_offset) PURE;
1765 STDMETHOD(Disassemble)(THIS_ ULONG64 offset, ULONG flags, char *buffer, ULONG buffer_size, ULONG *disassm_size,
1766 ULONG64 *end_offset) PURE;
1767 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ ULONG64 *offset) PURE;
1768 STDMETHOD(OutputDisassembly)(THIS_ ULONG output_control, ULONG64 offset, ULONG flags, ULONG64 *end_offset) PURE;
1769 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG output_control, ULONG prev_lines, ULONG total_lines, ULONG64 offset,
1770 ULONG flags, ULONG *offset_line, ULONG64 *start_offset, ULONG64 *end_offset, ULONG64 *line_offsets) PURE;
1771 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 offset, LONG delta, ULONG64 *instr_offset) PURE;
1772 STDMETHOD(GetStackTrace)(THIS_ ULONG64 frame_offset, ULONG64 stack_offset, ULONG64 instr_offset,
1773 DEBUG_STACK_FRAME *frames, ULONG frames_size, ULONG *frames_filled) PURE;
1774 STDMETHOD(GetReturnOffset)(THIS_ ULONG64 *offset) PURE;
1775 STDMETHOD(OutputStackTrace)(THIS_ ULONG output_control, DEBUG_STACK_FRAME *frames, ULONG frames_size,
1776 ULONG flags) PURE;
1777 STDMETHOD(GetDebuggeeType)(THIS_ ULONG *_class, ULONG *qualifier) PURE;
1778 STDMETHOD(GetActualProcessorType)(THIS_ ULONG *type) PURE;
1779 STDMETHOD(GetExecutingProcessorType)(THIS_ ULONG *type) PURE;
1780 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ ULONG *count) PURE;
1781 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
1782 STDMETHOD(GetNumberProcessors)(THIS_ ULONG *count) PURE;
1783 STDMETHOD(GetSystemVersion)(THIS_ ULONG *platform_id, ULONG *major, ULONG *minor, char *sp_string,
1784 ULONG sp_string_size, ULONG *sp_string_used, ULONG *sp_number, char *build_string, ULONG build_string_size,
1785 ULONG *build_string_used) PURE;
1786 STDMETHOD(GetPageSize)(THIS_ ULONG *size) PURE;
1787 STDMETHOD(IsPointer64Bit)(THIS) PURE;
1788 STDMETHOD(ReadBugCheckData)(THIS_ ULONG *code, ULONG64 *arg1, ULONG64 *arg2, ULONG64 *arg3, ULONG64 *arg4) PURE;
1789 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ ULONG *count) PURE;
1790 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
1791 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG type, char *full_name, ULONG full_name_buffer_size,
1792 ULONG *full_name_size, char *abbrev_name, ULONG abbrev_name_buffer_size, ULONG *abbrev_name_size) PURE;
1793 STDMETHOD(GetEffectiveProcessorType)(THIS_ ULONG *type) PURE;
1794 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG type) PURE;
1795 STDMETHOD(GetExecutionStatus)(THIS_ ULONG *status) PURE;
1796 STDMETHOD(SetExecutionStatus)(THIS_ ULONG status) PURE;
1797 STDMETHOD(GetCodeLevel)(THIS_ ULONG *level) PURE;
1798 STDMETHOD(SetCodeLevel)(THIS_ ULONG level) PURE;
1799 STDMETHOD(GetEngineOptions)(THIS_ ULONG *options) PURE;
1800 STDMETHOD(AddEngineOptions)(THIS_ ULONG options) PURE;
1801 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG options) PURE;
1802 STDMETHOD(SetEngineOptions)(THIS_ ULONG options) PURE;
1803 STDMETHOD(GetSystemErrorControl)(THIS_ ULONG *output_level, ULONG *break_level) PURE;
1804 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG output_level, ULONG break_level) PURE;
1805 STDMETHOD(GetTextMacro)(THIS_ ULONG slot, char *buffer, ULONG buffer_size, ULONG *macro_size) PURE;
1806 STDMETHOD(SetTextMacro)(THIS_ ULONG slot, const char *macro) PURE;
1807 STDMETHOD(GetRadix)(THIS_ ULONG *radix) PURE;
1808 STDMETHOD(SetRadix)(THIS_ ULONG radix) PURE;
1809 STDMETHOD(Evaluate)(THIS_ const char *expression, ULONG desired_type, DEBUG_VALUE *value,
1810 ULONG *remainder_index) PURE;
1812 STDMETHOD(CoerceValues)(THIS_ ULONG count, DEBUG_VALUE *input, ULONG *output_types, DEBUG_VALUE *output) PURE;
1813 STDMETHOD(Execute)(THIS_ ULONG output_control, const char *command, ULONG flags) PURE;
1814 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG output_control, const char *command_file, ULONG flags) PURE;
1815 STDMETHOD(GetNumberBreakpoints)(THIS_ ULONG *count) PURE;
1816 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG index, IDebugBreakpoint **bp) PURE;
1817 STDMETHOD(GetBreakpointById)(THIS_ ULONG id, IDebugBreakpoint **bp) PURE;
1818 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG count, ULONG *ids, ULONG start,
1820 STDMETHOD(AddBreakpoint)(THIS_ ULONG type, ULONG desired_id, IDebugBreakpoint **bp) PURE;
1821 STDMETHOD(RemoveBreakpoint)(THIS_ IDebugBreakpoint *bp) PURE;
1822 STDMETHOD(AddExtension)(THIS_ const char *path, ULONG flags, ULONG64 *handle) PURE;
1823 STDMETHOD(RemoveExtension)(THIS_ ULONG64 handle) PURE;
1824 STDMETHOD(GetExtensionByPath)(THIS_ const char *path, ULONG64 *handle) PURE;
1825 STDMETHOD(CallExtension)(THIS_ ULONG64 handle, const char *function, const char *args) PURE;
1826 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 handle, const char *name, void *function) PURE;
1827 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 api) PURE;
1828 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 api) PURE;
1829 STDMETHOD(GetNumberEventFilters)(THIS_ ULONG *specific_events, ULONG *specific_exceptions,
1830 ULONG *arbitrary_exceptions) PURE;
1831 STDMETHOD(GetEventFilterText)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
1832 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *command_size) PURE;
1833 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG index, const char *command) PURE;
1834 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
1836 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
1838 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
1839 ULONG *argument_size) PURE;
1840 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG index, const char *argument) PURE;
1841 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG count, ULONG *codes, ULONG start,
1844 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
1845 ULONG *command_size) PURE;
1846 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG index, const char *command) PURE;
1847 STDMETHOD(WaitForEvent)(THIS_ ULONG flags, ULONG timeout) PURE;
1848 STDMETHOD(GetLastEventInformation)(THIS_ ULONG *type, ULONG *pid, ULONG *tid, void *extra_info,
1849 ULONG extra_info_size, ULONG *extra_info_used, char *description, ULONG desc_size, ULONG *desc_used) PURE;
1850};
1851#undef INTERFACE
1852
1853#define INTERFACE IDebugControl2
1854DECLARE_INTERFACE_(IDebugControl2, IUnknown)
1855{
1856 /* IUnknown */
1860 /* IDebugControl */
1861 STDMETHOD(GetInterrupt)(THIS) PURE;
1862 STDMETHOD(SetInterrupt)(THIS_ ULONG flags) PURE;
1863 STDMETHOD(GetInterruptTimeout)(THIS_ ULONG *timeout) PURE;
1864 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG timeout) PURE;
1867 STDMETHOD(CloseLogFile)(THIS) PURE;
1868 STDMETHOD(GetLogMask)(THIS_ ULONG *mask) PURE;
1869 STDMETHOD(SetLogMask)(THIS_ ULONG mask) PURE;
1870 STDMETHOD(Input)(THIS_ char *buffer, ULONG buffer_size, ULONG *input_size) PURE;
1871 STDMETHOD(ReturnInput)(THIS_ const char *buffer) PURE;
1872 STDMETHODV(Output)(THIS_ ULONG mask, const char *format, ...) PURE;
1873 STDMETHOD(OutputVaList)(THIS_ ULONG mask, const char *format, __ms_va_list args) PURE;
1874 STDMETHODV(ControlledOutput)(THIS_ ULONG output_control, ULONG mask, const char *format, ...) PURE;
1875 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG output_control, ULONG mask, const char *format,
1877 STDMETHODV(OutputPrompt)(THIS_ ULONG output_control, const char *format, ...) PURE;
1878 STDMETHOD(OutputPromptVaList)(THIS_ ULONG output_control, const char *format, __ms_va_list args) PURE;
1879 STDMETHOD(GetPromptText)(THIS_ char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
1880 STDMETHOD(OutputCurrentState)(THIS_ ULONG output_control, ULONG flags) PURE;
1881 STDMETHOD(OutputVersionInformation)(THIS_ ULONG output_control) PURE;
1882 STDMETHOD(GetNotifyEventHandle)(THIS_ ULONG64 *handle) PURE;
1883 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 handle) PURE;
1884 STDMETHOD(Assemble)(THIS_ ULONG64 offset, const char *code, ULONG64 *end_offset) PURE;
1885 STDMETHOD(Disassemble)(THIS_ ULONG64 offset, ULONG flags, char *buffer, ULONG buffer_size, ULONG *disassm_size,
1886 ULONG64 *end_offset) PURE;
1887 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ ULONG64 *offset) PURE;
1888 STDMETHOD(OutputDisassembly)(THIS_ ULONG output_control, ULONG64 offset, ULONG flags, ULONG64 *end_offset) PURE;
1889 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG output_control, ULONG prev_lines, ULONG total_lines, ULONG64 offset,
1890 ULONG flags, ULONG *offset_line, ULONG64 *start_offset, ULONG64 *end_offset, ULONG64 *line_offsets) PURE;
1891 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 offset, LONG delta, ULONG64 *instr_offset) PURE;
1892 STDMETHOD(GetStackTrace)(THIS_ ULONG64 frame_offset, ULONG64 stack_offset, ULONG64 instr_offset,
1893 DEBUG_STACK_FRAME *frames, ULONG frames_size, ULONG *frames_filled) PURE;
1894 STDMETHOD(GetReturnOffset)(THIS_ ULONG64 *offset) PURE;
1895 STDMETHOD(OutputStackTrace)(THIS_ ULONG output_control, DEBUG_STACK_FRAME *frames, ULONG frames_size,
1896 ULONG flags) PURE;
1897 STDMETHOD(GetDebuggeeType)(THIS_ ULONG *_class, ULONG *qualifier) PURE;
1898 STDMETHOD(GetActualProcessorType)(THIS_ ULONG *type) PURE;
1899 STDMETHOD(GetExecutingProcessorType)(THIS_ ULONG *type) PURE;
1900 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ ULONG *count) PURE;
1901 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
1902 STDMETHOD(GetNumberProcessors)(THIS_ ULONG *count) PURE;
1903 STDMETHOD(GetSystemVersion)(THIS_ ULONG *platform_id, ULONG *major, ULONG *minor, char *sp_string,
1904 ULONG sp_string_size, ULONG *sp_string_used, ULONG *sp_number, char *build_string, ULONG build_string_size,
1905 ULONG *build_string_used) PURE;
1906 STDMETHOD(GetPageSize)(THIS_ ULONG *size) PURE;
1907 STDMETHOD(IsPointer64Bit)(THIS) PURE;
1908 STDMETHOD(ReadBugCheckData)(THIS_ ULONG *code, ULONG64 *arg1, ULONG64 *arg2, ULONG64 *arg3, ULONG64 *arg4) PURE;
1909 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ ULONG *count) PURE;
1910 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
1911 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG type, char *full_name, ULONG full_name_buffer_size,
1912 ULONG *full_name_size, char *abbrev_name, ULONG abbrev_name_buffer_size, ULONG *abbrev_name_size) PURE;
1913 STDMETHOD(GetEffectiveProcessorType)(THIS_ ULONG *type) PURE;
1914 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG type) PURE;
1915 STDMETHOD(GetExecutionStatus)(THIS_ ULONG *status) PURE;
1916 STDMETHOD(SetExecutionStatus)(THIS_ ULONG status) PURE;
1917 STDMETHOD(GetCodeLevel)(THIS_ ULONG *level) PURE;
1918 STDMETHOD(SetCodeLevel)(THIS_ ULONG level) PURE;
1919 STDMETHOD(GetEngineOptions)(THIS_ ULONG *options) PURE;
1920 STDMETHOD(AddEngineOptions)(THIS_ ULONG options) PURE;
1921 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG options) PURE;
1922 STDMETHOD(SetEngineOptions)(THIS_ ULONG options) PURE;
1923 STDMETHOD(GetSystemErrorControl)(THIS_ ULONG *output_level, ULONG *break_level) PURE;
1924 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG output_level, ULONG break_level) PURE;
1925 STDMETHOD(GetTextMacro)(THIS_ ULONG slot, char *buffer, ULONG buffer_size, ULONG *macro_size) PURE;
1926 STDMETHOD(SetTextMacro)(THIS_ ULONG slot, const char *macro) PURE;
1927 STDMETHOD(GetRadix)(THIS_ ULONG *radix) PURE;
1928 STDMETHOD(SetRadix)(THIS_ ULONG radix) PURE;
1929 STDMETHOD(Evaluate)(THIS_ const char *expression, ULONG desired_type, DEBUG_VALUE *value,
1930 ULONG *remainder_index) PURE;
1932 STDMETHOD(CoerceValues)(THIS_ ULONG count, DEBUG_VALUE *input, ULONG *output_types, DEBUG_VALUE *output) PURE;
1933 STDMETHOD(Execute)(THIS_ ULONG output_control, const char *command, ULONG flags) PURE;
1934 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG output_control, const char *command_file, ULONG flags) PURE;
1935 STDMETHOD(GetNumberBreakpoints)(THIS_ ULONG *count) PURE;
1936 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG index, IDebugBreakpoint **bp) PURE;
1937 STDMETHOD(GetBreakpointById)(THIS_ ULONG id, IDebugBreakpoint **bp) PURE;
1938 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG count, ULONG *ids, ULONG start,
1940 STDMETHOD(AddBreakpoint)(THIS_ ULONG type, ULONG desired_id, IDebugBreakpoint **bp) PURE;
1941 STDMETHOD(RemoveBreakpoint)(THIS_ IDebugBreakpoint *bp) PURE;
1942 STDMETHOD(AddExtension)(THIS_ const char *path, ULONG flags, ULONG64 *handle) PURE;
1943 STDMETHOD(RemoveExtension)(THIS_ ULONG64 handle) PURE;
1944 STDMETHOD(GetExtensionByPath)(THIS_ const char *path, ULONG64 *handle) PURE;
1945 STDMETHOD(CallExtension)(THIS_ ULONG64 handle, const char *function, const char *args) PURE;
1946 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 handle, const char *name, void *function) PURE;
1947 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 api) PURE;
1948 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 api) PURE;
1949 STDMETHOD(GetNumberEventFilters)(THIS_ ULONG *specific_events, ULONG *specific_exceptions,
1950 ULONG *arbitrary_exceptions) PURE;
1951 STDMETHOD(GetEventFilterText)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
1952 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *command_size) PURE;
1953 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG index, const char *command) PURE;
1954 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
1956 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
1958 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
1959 ULONG *argument_size) PURE;
1960 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG index, const char *argument) PURE;
1961 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG count, ULONG *codes, ULONG start,
1964 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
1965 ULONG *command_size) PURE;
1966 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG index, const char *command) PURE;
1967 STDMETHOD(WaitForEvent)(THIS_ ULONG flags, ULONG timeout) PURE;
1968 STDMETHOD(GetLastEventInformation)(THIS_ ULONG *type, ULONG *pid, ULONG *tid, void *extra_info,
1969 ULONG extra_info_size, ULONG *extra_info_used, char *description, ULONG desc_size, ULONG *desc_used) PURE;
1970 /* IDebugControl2 */
1971 STDMETHOD(GetCurrentTimeDate)(THIS_ ULONG timedate) PURE;
1972 STDMETHOD(GetCurrentSystemUpTime)(THIS_ ULONG uptime) PURE;
1973 STDMETHOD(GetDumpFormatFlags)(THIS_ ULONG *flags) PURE;
1974 STDMETHOD(GetNumberTextPlacements)(THIS_ ULONG *count) PURE;
1975 STDMETHOD(GetNumberTextReplacement)(THIS_ const char *src_text, ULONG index, char *src_buffer,
1976 ULONG src_buffer_size, ULONG *src_size, char *dst_buffer, ULONG dst_buffer_size, ULONG *dst_size) PURE;
1977 STDMETHOD(SetTextReplacement)(THIS_ const char *src_text, const char *dst_text) PURE;
1978 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
1979 STDMETHOD(OutputTextReplacements)(THIS_ ULONG output_control, ULONG flags) PURE;
1980};
1981#undef INTERFACE
1982
1983#define INTERFACE IDebugControl3
1984DECLARE_INTERFACE_(IDebugControl3, IUnknown)
1985{
1986 /* IUnknown */
1990 /* IDebugControl */
1991 STDMETHOD(GetInterrupt)(THIS) PURE;
1992 STDMETHOD(SetInterrupt)(THIS_ ULONG flags) PURE;
1993 STDMETHOD(GetInterruptTimeout)(THIS_ ULONG *timeout) PURE;
1994 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG timeout) PURE;
1997 STDMETHOD(CloseLogFile)(THIS) PURE;
1998 STDMETHOD(GetLogMask)(THIS_ ULONG *mask) PURE;
1999 STDMETHOD(SetLogMask)(THIS_ ULONG mask) PURE;
2000 STDMETHOD(Input)(THIS_ char *buffer, ULONG buffer_size, ULONG *input_size) PURE;
2001 STDMETHOD(ReturnInput)(THIS_ const char *buffer) PURE;
2002 STDMETHODV(Output)(THIS_ ULONG mask, const char *format, ...) PURE;
2003 STDMETHOD(OutputVaList)(THIS_ ULONG mask, const char *format, __ms_va_list args) PURE;
2004 STDMETHODV(ControlledOutput)(THIS_ ULONG output_control, ULONG mask, const char *format, ...) PURE;
2005 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG output_control, ULONG mask, const char *format,
2007 STDMETHODV(OutputPrompt)(THIS_ ULONG output_control, const char *format, ...) PURE;
2008 STDMETHOD(OutputPromptVaList)(THIS_ ULONG output_control, const char *format, __ms_va_list args) PURE;
2009 STDMETHOD(GetPromptText)(THIS_ char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
2010 STDMETHOD(OutputCurrentState)(THIS_ ULONG output_control, ULONG flags) PURE;
2011 STDMETHOD(OutputVersionInformation)(THIS_ ULONG output_control) PURE;
2012 STDMETHOD(GetNotifyEventHandle)(THIS_ ULONG64 *handle) PURE;
2013 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 handle) PURE;
2014 STDMETHOD(Assemble)(THIS_ ULONG64 offset, const char *code, ULONG64 *end_offset) PURE;
2015 STDMETHOD(Disassemble)(THIS_ ULONG64 offset, ULONG flags, char *buffer, ULONG buffer_size, ULONG *disassm_size,
2016 ULONG64 *end_offset) PURE;
2017 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ ULONG64 *offset) PURE;
2018 STDMETHOD(OutputDisassembly)(THIS_ ULONG output_control, ULONG64 offset, ULONG flags, ULONG64 *end_offset) PURE;
2019 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG output_control, ULONG prev_lines, ULONG total_lines, ULONG64 offset,
2020 ULONG flags, ULONG *offset_line, ULONG64 *start_offset, ULONG64 *end_offset, ULONG64 *line_offsets) PURE;
2021 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 offset, LONG delta, ULONG64 *instr_offset) PURE;
2022 STDMETHOD(GetStackTrace)(THIS_ ULONG64 frame_offset, ULONG64 stack_offset, ULONG64 instr_offset,
2023 DEBUG_STACK_FRAME *frames, ULONG frames_size, ULONG *frames_filled) PURE;
2024 STDMETHOD(GetReturnOffset)(THIS_ ULONG64 *offset) PURE;
2025 STDMETHOD(OutputStackTrace)(THIS_ ULONG output_control, DEBUG_STACK_FRAME *frames, ULONG frames_size,
2026 ULONG flags) PURE;
2027 STDMETHOD(GetDebuggeeType)(THIS_ ULONG *_class, ULONG *qualifier) PURE;
2028 STDMETHOD(GetActualProcessorType)(THIS_ ULONG *type) PURE;
2029 STDMETHOD(GetExecutingProcessorType)(THIS_ ULONG *type) PURE;
2030 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ ULONG *count) PURE;
2031 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
2032 STDMETHOD(GetNumberProcessors)(THIS_ ULONG *count) PURE;
2033 STDMETHOD(GetSystemVersion)(THIS_ ULONG *platform_id, ULONG *major, ULONG *minor, char *sp_string,
2034 ULONG sp_string_size, ULONG *sp_string_used, ULONG *sp_number, char *build_string, ULONG build_string_size,
2035 ULONG *build_string_used) PURE;
2036 STDMETHOD(GetPageSize)(THIS_ ULONG *size) PURE;
2037 STDMETHOD(IsPointer64Bit)(THIS) PURE;
2038 STDMETHOD(ReadBugCheckData)(THIS_ ULONG *code, ULONG64 *arg1, ULONG64 *arg2, ULONG64 *arg3, ULONG64 *arg4) PURE;
2039 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ ULONG *count) PURE;
2040 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
2041 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG type, char *full_name, ULONG full_name_buffer_size,
2042 ULONG *full_name_size, char *abbrev_name, ULONG abbrev_name_buffer_size, ULONG *abbrev_name_size) PURE;
2043 STDMETHOD(GetEffectiveProcessorType)(THIS_ ULONG *type) PURE;
2044 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG type) PURE;
2045 STDMETHOD(GetExecutionStatus)(THIS_ ULONG *status) PURE;
2046 STDMETHOD(SetExecutionStatus)(THIS_ ULONG status) PURE;
2047 STDMETHOD(GetCodeLevel)(THIS_ ULONG *level) PURE;
2048 STDMETHOD(SetCodeLevel)(THIS_ ULONG level) PURE;
2049 STDMETHOD(GetEngineOptions)(THIS_ ULONG *options) PURE;
2050 STDMETHOD(AddEngineOptions)(THIS_ ULONG options) PURE;
2051 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG options) PURE;
2052 STDMETHOD(SetEngineOptions)(THIS_ ULONG options) PURE;
2053 STDMETHOD(GetSystemErrorControl)(THIS_ ULONG *output_level, ULONG *break_level) PURE;
2054 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG output_level, ULONG break_level) PURE;
2055 STDMETHOD(GetTextMacro)(THIS_ ULONG slot, char *buffer, ULONG buffer_size, ULONG *macro_size) PURE;
2056 STDMETHOD(SetTextMacro)(THIS_ ULONG slot, const char *macro) PURE;
2057 STDMETHOD(GetRadix)(THIS_ ULONG *radix) PURE;
2058 STDMETHOD(SetRadix)(THIS_ ULONG radix) PURE;
2059 STDMETHOD(Evaluate)(THIS_ const char *expression, ULONG desired_type, DEBUG_VALUE *value,
2060 ULONG *remainder_index) PURE;
2062 STDMETHOD(CoerceValues)(THIS_ ULONG count, DEBUG_VALUE *input, ULONG *output_types, DEBUG_VALUE *output) PURE;
2063 STDMETHOD(Execute)(THIS_ ULONG output_control, const char *command, ULONG flags) PURE;
2064 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG output_control, const char *command_file, ULONG flags) PURE;
2065 STDMETHOD(GetNumberBreakpoints)(THIS_ ULONG *count) PURE;
2066 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG index, IDebugBreakpoint **bp) PURE;
2067 STDMETHOD(GetBreakpointById)(THIS_ ULONG id, IDebugBreakpoint **bp) PURE;
2068 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG count, ULONG *ids, ULONG start,
2070 STDMETHOD(AddBreakpoint)(THIS_ ULONG type, ULONG desired_id, IDebugBreakpoint **bp) PURE;
2071 STDMETHOD(RemoveBreakpoint)(THIS_ IDebugBreakpoint *bp) PURE;
2072 STDMETHOD(AddExtension)(THIS_ const char *path, ULONG flags, ULONG64 *handle) PURE;
2073 STDMETHOD(RemoveExtension)(THIS_ ULONG64 handle) PURE;
2074 STDMETHOD(GetExtensionByPath)(THIS_ const char *path, ULONG64 *handle) PURE;
2075 STDMETHOD(CallExtension)(THIS_ ULONG64 handle, const char *function, const char *args) PURE;
2076 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 handle, const char *name, void *function) PURE;
2077 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 api) PURE;
2078 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 api) PURE;
2079 STDMETHOD(GetNumberEventFilters)(THIS_ ULONG *specific_events, ULONG *specific_exceptions,
2080 ULONG *arbitrary_exceptions) PURE;
2081 STDMETHOD(GetEventFilterText)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
2082 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *command_size) PURE;
2083 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG index, const char *command) PURE;
2084 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
2086 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
2088 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
2089 ULONG *argument_size) PURE;
2090 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG index, const char *argument) PURE;
2091 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG count, ULONG *codes, ULONG start,
2094 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
2095 ULONG *command_size) PURE;
2096 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG index, const char *command) PURE;
2097 STDMETHOD(WaitForEvent)(THIS_ ULONG flags, ULONG timeout) PURE;
2098 STDMETHOD(GetLastEventInformation)(THIS_ ULONG *type, ULONG *pid, ULONG *tid, void *extra_info,
2099 ULONG extra_info_size, ULONG *extra_info_used, char *description, ULONG desc_size, ULONG *desc_used) PURE;
2100 /* IDebugControl2 */
2101 STDMETHOD(GetCurrentTimeDate)(THIS_ ULONG timedate) PURE;
2102 STDMETHOD(GetCurrentSystemUpTime)(THIS_ ULONG uptime) PURE;
2103 STDMETHOD(GetDumpFormatFlags)(THIS_ ULONG *flags) PURE;
2104 STDMETHOD(GetNumberTextPlacements)(THIS_ ULONG *count) PURE;
2105 STDMETHOD(GetNumberTextReplacement)(THIS_ const char *src_text, ULONG index, char *src_buffer,
2106 ULONG src_buffer_size, ULONG *src_size, char *dst_buffer, ULONG dst_buffer_size, ULONG *dst_size) PURE;
2107 STDMETHOD(SetTextReplacement)(THIS_ const char *src_text, const char *dst_text) PURE;
2108 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
2109 STDMETHOD(OutputTextReplacements)(THIS_ ULONG output_control, ULONG flags) PURE;
2110 /* IDebugControl3 */
2111 STDMETHOD(GetAssemblyOptions)(THIS_ ULONG *options) PURE;
2112 STDMETHOD(AddAssemblyOptions)(THIS_ ULONG options) PURE;
2113 STDMETHOD(RemoveAssemblyOptions)(THIS_ ULONG options) PURE;
2114 STDMETHOD(SetAssemblyOptions)(THIS_ ULONG options) PURE;
2115 STDMETHOD(GetExpressionSyntax)(THIS_ ULONG *flags) PURE;
2116 STDMETHOD(SetExpressionSyntax)(THIS_ ULONG flags) PURE;
2117 STDMETHOD(SetExpressionSyntaxByName)(THIS_ const char *name) PURE;
2118 STDMETHOD(GetNumberExpressionSyntaxes)(THIS_ ULONG *number) PURE;
2119 STDMETHOD(GetExpressionSyntaxNames)(THIS_ ULONG index, char *fullname, ULONG fullname_buffer_size,
2120 ULONG *fullname_size, char *abbrevname, ULONG abbrevname_buffer_size, ULONG *abbrevname_size) PURE;
2121 STDMETHOD(GetNumberEvents)(THIS_ ULONG *events) PURE;
2122 STDMETHOD(GetEventIndexDescription)(THIS_ ULONG index, ULONG which, char *buffer, ULONG buffer_size,
2123 ULONG *desc_size) PURE;
2124 STDMETHOD(GetCurrentEventIndex)(THIS_ ULONG *index) PURE;
2125 STDMETHOD(SetNextEventIndex)(THIS_ ULONG relation, ULONG value, ULONG *next_index) PURE;
2126};
2127#undef INTERFACE
2128
2129#define INTERFACE IDebugControl4
2130DECLARE_INTERFACE_(IDebugControl4, IUnknown)
2131{
2132 /* IUnknown */
2136 /* IDebugControl */
2137 STDMETHOD(GetInterrupt)(THIS) PURE;
2138 STDMETHOD(SetInterrupt)(THIS_ ULONG flags) PURE;
2139 STDMETHOD(GetInterruptTimeout)(THIS_ ULONG *timeout) PURE;
2140 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG timeout) PURE;
2143 STDMETHOD(CloseLogFile)(THIS) PURE;
2144 STDMETHOD(GetLogMask)(THIS_ ULONG *mask) PURE;
2145 STDMETHOD(SetLogMask)(THIS_ ULONG mask) PURE;
2146 STDMETHOD(Input)(THIS_ char *buffer, ULONG buffer_size, ULONG *input_size) PURE;
2147 STDMETHOD(ReturnInput)(THIS_ const char *buffer) PURE;
2148 STDMETHODV(Output)(THIS_ ULONG mask, const char *format, ...) PURE;
2149 STDMETHOD(OutputVaList)(THIS_ ULONG mask, const char *format, __ms_va_list args) PURE;
2150 STDMETHODV(ControlledOutput)(THIS_ ULONG output_control, ULONG mask, const char *format, ...) PURE;
2151 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG output_control, ULONG mask, const char *format,
2153 STDMETHODV(OutputPrompt)(THIS_ ULONG output_control, const char *format, ...) PURE;
2154 STDMETHOD(OutputPromptVaList)(THIS_ ULONG output_control, const char *format, __ms_va_list args) PURE;
2155 STDMETHOD(GetPromptText)(THIS_ char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
2156 STDMETHOD(OutputCurrentState)(THIS_ ULONG output_control, ULONG flags) PURE;
2157 STDMETHOD(OutputVersionInformation)(THIS_ ULONG output_control) PURE;
2158 STDMETHOD(GetNotifyEventHandle)(THIS_ ULONG64 *handle) PURE;
2159 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 handle) PURE;
2160 STDMETHOD(Assemble)(THIS_ ULONG64 offset, const char *code, ULONG64 *end_offset) PURE;
2161 STDMETHOD(Disassemble)(THIS_ ULONG64 offset, ULONG flags, char *buffer, ULONG buffer_size, ULONG *disassm_size,
2162 ULONG64 *end_offset) PURE;
2163 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ ULONG64 *offset) PURE;
2164 STDMETHOD(OutputDisassembly)(THIS_ ULONG output_control, ULONG64 offset, ULONG flags, ULONG64 *end_offset) PURE;
2165 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG output_control, ULONG prev_lines, ULONG total_lines, ULONG64 offset,
2166 ULONG flags, ULONG *offset_line, ULONG64 *start_offset, ULONG64 *end_offset, ULONG64 *line_offsets) PURE;
2167 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 offset, LONG delta, ULONG64 *instr_offset) PURE;
2168 STDMETHOD(GetStackTrace)(THIS_ ULONG64 frame_offset, ULONG64 stack_offset, ULONG64 instr_offset,
2169 DEBUG_STACK_FRAME *frames, ULONG frames_size, ULONG *frames_filled) PURE;
2170 STDMETHOD(GetReturnOffset)(THIS_ ULONG64 *offset) PURE;
2171 STDMETHOD(OutputStackTrace)(THIS_ ULONG output_control, DEBUG_STACK_FRAME *frames, ULONG frames_size,
2172 ULONG flags) PURE;
2173 STDMETHOD(GetDebuggeeType)(THIS_ ULONG *_class, ULONG *qualifier) PURE;
2174 STDMETHOD(GetActualProcessorType)(THIS_ ULONG *type) PURE;
2175 STDMETHOD(GetExecutingProcessorType)(THIS_ ULONG *type) PURE;
2176 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ ULONG *count) PURE;
2177 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
2178 STDMETHOD(GetNumberProcessors)(THIS_ ULONG *count) PURE;
2179 STDMETHOD(GetSystemVersion)(THIS_ ULONG *platform_id, ULONG *major, ULONG *minor, char *sp_string,
2180 ULONG sp_string_size, ULONG *sp_string_used, ULONG *sp_number, char *build_string, ULONG build_string_size,
2181 ULONG *build_string_used) PURE;
2182 STDMETHOD(GetPageSize)(THIS_ ULONG *size) PURE;
2183 STDMETHOD(IsPointer64Bit)(THIS) PURE;
2184 STDMETHOD(ReadBugCheckData)(THIS_ ULONG *code, ULONG64 *arg1, ULONG64 *arg2, ULONG64 *arg3, ULONG64 *arg4) PURE;
2185 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ ULONG *count) PURE;
2186 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG start, ULONG count, ULONG *types) PURE;
2187 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG type, char *full_name, ULONG full_name_buffer_size,
2188 ULONG *full_name_size, char *abbrev_name, ULONG abbrev_name_buffer_size, ULONG *abbrev_name_size) PURE;
2189 STDMETHOD(GetEffectiveProcessorType)(THIS_ ULONG *type) PURE;
2190 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG type) PURE;
2191 STDMETHOD(GetExecutionStatus)(THIS_ ULONG *status) PURE;
2192 STDMETHOD(SetExecutionStatus)(THIS_ ULONG status) PURE;
2193 STDMETHOD(GetCodeLevel)(THIS_ ULONG *level) PURE;
2194 STDMETHOD(SetCodeLevel)(THIS_ ULONG level) PURE;
2195 STDMETHOD(GetEngineOptions)(THIS_ ULONG *options) PURE;
2196 STDMETHOD(AddEngineOptions)(THIS_ ULONG options) PURE;
2197 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG options) PURE;
2198 STDMETHOD(SetEngineOptions)(THIS_ ULONG options) PURE;
2199 STDMETHOD(GetSystemErrorControl)(THIS_ ULONG *output_level, ULONG *break_level) PURE;
2200 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG output_level, ULONG break_level) PURE;
2201 STDMETHOD(GetTextMacro)(THIS_ ULONG slot, char *buffer, ULONG buffer_size, ULONG *macro_size) PURE;
2202 STDMETHOD(SetTextMacro)(THIS_ ULONG slot, const char *macro) PURE;
2203 STDMETHOD(GetRadix)(THIS_ ULONG *radix) PURE;
2204 STDMETHOD(SetRadix)(THIS_ ULONG radix) PURE;
2205 STDMETHOD(Evaluate)(THIS_ const char *expression, ULONG desired_type, DEBUG_VALUE *value,
2206 ULONG *remainder_index) PURE;
2208 STDMETHOD(CoerceValues)(THIS_ ULONG count, DEBUG_VALUE *input, ULONG *output_types, DEBUG_VALUE *output) PURE;
2209 STDMETHOD(Execute)(THIS_ ULONG output_control, const char *command, ULONG flags) PURE;
2210 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG output_control, const char *command_file, ULONG flags) PURE;
2211 STDMETHOD(GetNumberBreakpoints)(THIS_ ULONG *count) PURE;
2212 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG index, IDebugBreakpoint **bp) PURE;
2213 STDMETHOD(GetBreakpointById)(THIS_ ULONG id, IDebugBreakpoint **bp) PURE;
2214 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG count, ULONG *ids, ULONG start,
2216 STDMETHOD(AddBreakpoint)(THIS_ ULONG type, ULONG desired_id, IDebugBreakpoint **bp) PURE;
2217 STDMETHOD(RemoveBreakpoint)(THIS_ IDebugBreakpoint *bp) PURE;
2218 STDMETHOD(AddExtension)(THIS_ const char *path, ULONG flags, ULONG64 *handle) PURE;
2219 STDMETHOD(RemoveExtension)(THIS_ ULONG64 handle) PURE;
2220 STDMETHOD(GetExtensionByPath)(THIS_ const char *path, ULONG64 *handle) PURE;
2221 STDMETHOD(CallExtension)(THIS_ ULONG64 handle, const char *function, const char *args) PURE;
2222 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 handle, const char *name, void *function) PURE;
2223 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 api) PURE;
2224 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 api) PURE;
2225 STDMETHOD(GetNumberEventFilters)(THIS_ ULONG *specific_events, ULONG *specific_exceptions,
2226 ULONG *arbitrary_exceptions) PURE;
2227 STDMETHOD(GetEventFilterText)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *text_size) PURE;
2228 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size, ULONG *command_size) PURE;
2229 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG index, const char *command) PURE;
2230 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
2232 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG start, ULONG count,
2234 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
2235 ULONG *argument_size) PURE;
2236 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG index, const char *argument) PURE;
2237 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG count, ULONG *codes, ULONG start,
2240 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG index, char *buffer, ULONG buffer_size,
2241 ULONG *command_size) PURE;
2242 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG index, const char *command) PURE;
2243 STDMETHOD(WaitForEvent)(THIS_ ULONG flags, ULONG timeout) PURE;
2244 STDMETHOD(GetLastEventInformation)(THIS_ ULONG *type, ULONG *pid, ULONG *tid, void *extra_info,
2245 ULONG extra_info_size, ULONG *extra_info_used, char *description, ULONG desc_size, ULONG *desc_used) PURE;
2246 /* IDebugControl2 */
2247 STDMETHOD(GetCurrentTimeDate)(THIS_ ULONG timedate) PURE;
2248 STDMETHOD(GetCurrentSystemUpTime)(THIS_ ULONG uptime) PURE;
2249 STDMETHOD(GetDumpFormatFlags)(THIS_ ULONG *flags) PURE;
2250 STDMETHOD(GetNumberTextPlacements)(THIS_ ULONG *count) PURE;
2251 STDMETHOD(GetNumberTextReplacement)(THIS_ const char *src_text, ULONG index, char *src_buffer,
2252 ULONG src_buffer_size, ULONG *src_size, char *dst_buffer, ULONG dst_buffer_size, ULONG *dst_size) PURE;
2253 STDMETHOD(SetTextReplacement)(THIS_ const char *src_text, const char *dst_text) PURE;
2254 STDMETHOD(RemoveTextReplacements)(THIS) PURE;
2255 STDMETHOD(OutputTextReplacements)(THIS_ ULONG output_control, ULONG flags) PURE;
2256 /* IDebugControl3 */
2257 STDMETHOD(GetAssemblyOptions)(THIS_ ULONG *options) PURE;
2258 STDMETHOD(AddAssemblyOptions)(THIS_ ULONG options) PURE;
2259 STDMETHOD(RemoveAssemblyOptions)(THIS_ ULONG options) PURE;
2260 STDMETHOD(SetAssemblyOptions)(THIS_ ULONG options) PURE;
2261 STDMETHOD(GetExpressionSyntax)(THIS_ ULONG *flags) PURE;
2262 STDMETHOD(SetExpressionSyntax)(THIS_ ULONG flags) PURE;
2263 STDMETHOD(SetExpressionSyntaxByName)(THIS_ const char *name) PURE;
2264 STDMETHOD(GetNumberExpressionSyntaxes)(THIS_ ULONG *number) PURE;
2265 STDMETHOD(GetExpressionSyntaxNames)(THIS_ ULONG index, char *fullname, ULONG fullname_buffer_size,
2266 ULONG *fullname_size, char *abbrevname, ULONG abbrevname_buffer_size, ULONG *abbrevname_size) PURE;
2267 STDMETHOD(GetNumberEvents)(THIS_ ULONG *events) PURE;
2268 STDMETHOD(GetEventIndexDescription)(THIS_ ULONG index, ULONG which, char *buffer, ULONG buffer_size,
2269 ULONG *desc_size) PURE;
2270 STDMETHOD(GetCurrentEventIndex)(THIS_ ULONG *index) PURE;
2271 STDMETHOD(SetNextEventIndex)(THIS_ ULONG relation, ULONG value, ULONG *next_index) PURE;
2272 /* IDebugControl4 */
2274 STDMETHOD(OpenLogFileWide)(THIS_ const WCHAR *filename, BOOL append) PURE;
2275 STDMETHOD(InputWide)(THIS_ WCHAR *buffer, ULONG buffer_size, ULONG *input_size) PURE;
2276 STDMETHOD(ReturnInputWide)(THIS_ const WCHAR *buffer) PURE;
2277 STDMETHODV(OutputWide)(THIS_ ULONG mask, const WCHAR *format, ...) PURE;
2278 STDMETHOD(OutputVaListWide)(THIS_ ULONG mask, const WCHAR *format, __ms_va_list args) PURE;
2279 STDMETHODV(ControlledOutputWide)(THIS_ ULONG output_control, ULONG mask, const WCHAR *format, ...) PURE;
2280 STDMETHOD(ControlledOutputVaListWide)(THIS_ ULONG output_control, ULONG mask, const WCHAR *format, __ms_va_list args) PURE;
2281 STDMETHODV(OutputPromptWide)(THIS_ ULONG output_control, const WCHAR *format, ...) PURE;
2282 STDMETHOD(OutputPromptVaListWide)(THIS_ ULONG output_control, const WCHAR *format, __ms_va_list args) PURE;
2283 STDMETHOD(GetPromptTextWide)(THIS_ WCHAR *buffer, ULONG buffer_size, ULONG *text_size) PURE;
2284 STDMETHOD(AssembleWide)(THIS_ ULONG64 offset, const WCHAR *instr, ULONG64 *end_offset) PURE;
2286 ULONG64 *end_offset) PURE;
2287 STDMETHOD(GetProcessorTypeNamesWide)(THIS_ ULONG type, WCHAR *fullename, ULONG fullname_buffer_size,
2288 ULONG *fullname_size, WCHAR *abbrevname, ULONG abbrevname_buffer_size, ULONG *abbrevname_size) PURE;
2289 STDMETHOD(GetTextMacroWide)(THIS_ ULONG slot, WCHAR *buffer, ULONG buffer_size, ULONG *macro_size) PURE;
2290 STDMETHOD(SetTextMacroWide)(THIS_ ULONG slot, const WCHAR *macro) PURE;
2291 STDMETHOD(EvaluateWide)(THIS_ const WCHAR *expression, ULONG desired_type, DEBUG_VALUE *value, ULONG *remainder_index) PURE;
2292 STDMETHOD(ExecuteWide)(THIS_ ULONG output_control, const WCHAR *command, ULONG flags) PURE;
2293 STDMETHOD(ExecuteCommandFileWide)(THIS_ ULONG output_control, const WCHAR *commandfile, ULONG flags) PURE;
2294 STDMETHOD(GetBreakpointByIndex2)(THIS_ ULONG index, PDEBUG_BREAKPOINT2 *bp) PURE;
2295 STDMETHOD(GetBreakpointById2)(THIS_ ULONG id, PDEBUG_BREAKPOINT2 *bp) PURE;
2296 STDMETHOD(AddBreakpoint2)(THIS_ ULONG type, ULONG desired_id, PDEBUG_BREAKPOINT2 *bp) PURE;
2297 STDMETHOD(RemoveBreakpoint2)(THIS_ PDEBUG_BREAKPOINT2 bp) PURE;
2298 STDMETHOD(AddExtensionWide)(THIS_ const WCHAR *path, ULONG flags, ULONG64 *handle) PURE;
2299 STDMETHOD(GetExtensionByPathWide)(THIS_ const WCHAR *path, ULONG64 *handle) PURE;
2300 STDMETHOD(CallExtensionWide)(THIS_ ULONG64 handle, const WCHAR *function, const WCHAR *arguments) PURE;
2301 STDMETHOD(GetExtensionFunctionWide)(THIS_ ULONG64 handle, const WCHAR *function, FARPROC *func) PURE;
2302 STDMETHOD(GetEventFilterTextWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buffer_size, ULONG *text_size) PURE;
2303 STDMETHOD(GetEventFilterCommandWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buffer_size, ULONG *command_size) PURE;
2304 STDMETHOD(SetEventFilterCommandWide)(THIS_ ULONG index, const WCHAR *command) PURE;
2305 STDMETHOD(GetSpecificFilterArgumentWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buffer_size, ULONG *argument_size) PURE;
2306 STDMETHOD(SetSpecificFilterArgumentWide)(THIS_ ULONG index, const WCHAR *argument) PURE;
2307 STDMETHOD(GetSpecificFilterSecondCommandWide)(THIS_ ULONG index, WCHAR *buffer, ULONG buffer_size, ULONG *command_size) PURE;
2308 STDMETHOD(SetSpecificFilterSecondCommandWide)(THIS_ ULONG index, const WCHAR *command) PURE;
2309 STDMETHOD(GetLastEventInformationWide)(THIS_ ULONG *type, ULONG *processid, ULONG *threadid, void *extra_info,
2310 ULONG extra_info_size, ULONG *extra_info_used, WCHAR *desc, ULONG desc_size, ULONG *desc_used) PURE;
2311 STDMETHOD(GetTextReplacementWide)(THIS_ const WCHAR *src_text, ULONG index, WCHAR *src_buffer, ULONG src_buffer_size,
2312 ULONG *src_size, WCHAR *dst_buffer, ULONG dest_buffer_size, ULONG *dst_size) PURE;
2313 STDMETHOD(SetTextReplacementWide)(THIS_ const WCHAR *src_text, const WCHAR *dst_text) PURE;
2314 STDMETHOD(SetExpressionSyntaxByNameWide)(THIS_ const WCHAR *abbrevname) PURE;
2315 STDMETHOD(GetExpressionSyntaxNamesWide)(THIS_ ULONG index, WCHAR *fullname_buffer, ULONG fullname_buffer_size,
2316 ULONG *fullname_size, WCHAR *abbrevname_buffer, ULONG abbrevname_buffer_size, ULONG *abbrev_size) PURE;
2317 STDMETHOD(GetEventIndexDescriptionWide)(THIS_ ULONG index, ULONG which, WCHAR *buffer, ULONG buffer_size,
2318 ULONG *desc_size) PURE;
2320 STDMETHOD(OpenLogFile2)(THIS_ const char *filename, ULONG flags) PURE;
2322 STDMETHOD(OpenLogFile2Wide)(THIS_ const WCHAR *filename, ULONG flags) PURE;
2323 STDMETHOD(GetSystemVersionValues)(THIS_ ULONG *platformid, ULONG *win32major, ULONG *win32minor,
2324 ULONG *kdmajor, ULONG *kdminor) PURE;
2326 STDMETHOD(GetSystemVersionStringWide)(THIS_ ULONG which, WCHAR *buffer, ULONG buffer_size, ULONG *string_size) PURE;
2327 STDMETHOD(GetContextStackTrace)(THIS_ void *start_context, ULONG start_context_size, PDEBUG_STACK_FRAME frames,
2328 ULONG frames_size, void *frame_contexts, ULONG frame_contexts_size, ULONG frame_contexts_entry_size,
2329 ULONG *frames_filled) PURE;
2330 STDMETHOD(OutputContextStackTrace)(THIS_ ULONG output_control, PDEBUG_STACK_FRAME frames, ULONG frames_size,
2331 void *frame_contexts, ULONG frame_contexts_size, ULONG frame_contexts_entry_size, ULONG flags) PURE;
2332 STDMETHOD(GetStoredEventInformation)(THIS_ ULONG *type, ULONG *processid, ULONG *threadid, void *context,
2333 ULONG context_size, ULONG *context_used, void *extra_info, ULONG extra_info_size, ULONG *extra_info_used) PURE;
2334 STDMETHOD(GetManagedStatus)(THIS_ ULONG *flags, ULONG which_string, char *string, ULONG string_size, ULONG string_needed) PURE;
2335 STDMETHOD(GetManagedStatusWide)(THIS_ ULONG *flags, ULONG which_string, WCHAR *string, ULONG string_size,
2336 ULONG string_needed) PURE;
2337 STDMETHOD(ResetManagedStatus)(THIS_ ULONG flags) PURE;
2338};
2339#undef INTERFACE
2340
2341#endif /* __ms_va_list */
2342
2343#define INTERFACE IDebugAdvanced
2345{
2346 /* IUnknown */
2350 /* IDebugAdvanced */
2351 STDMETHOD(GetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
2352 STDMETHOD(SetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
2353};
2354#undef INTERFACE
2355
2356#define INTERFACE IDebugAdvanced2
2358{
2359 /* IUnknown */
2363 /* IDebugAdvanced */
2364 STDMETHOD(GetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
2365 STDMETHOD(SetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
2366 /* IDebugAdvanced2 */
2367 STDMETHOD(Request)(THIS_ ULONG request, void *inbuffer, ULONG inbuffer_size,
2368 void *outbuffer, ULONG outbuffer_size, ULONG *outsize) PURE;
2369 STDMETHOD(GetSourceFileInformation)(THIS_ ULONG which, char *sourcefile,
2370 ULONG64 arg64, ULONG arg32, void *buffer, ULONG buffer_size, ULONG *info_size) PURE;
2371 STDMETHOD(FindSourceFileAndToken)(THIS_ ULONG start_element, ULONG64 modaddr, const char *filename,
2372 ULONG flags, void *filetoken, ULONG filetokensize, ULONG *found_element, char *buffer,
2373 ULONG buffer_size, ULONG *found_size) PURE;
2374 STDMETHOD(GetSymbolInformation)(THIS_ ULONG which, ULONG64 arg64, ULONG arg32, void *buffer,
2375 ULONG buffer_size, ULONG *info_size, char *string_buffer, ULONG string_buffer_size,
2376 ULONG *string_size) PURE;
2377 STDMETHOD(GetSystemObjectInformation)(THIS_ ULONG which, ULONG64 arg64, ULONG arg32,
2378 void *buffer, ULONG buffer_size, ULONG *info_size) PURE;
2379};
2380#undef INTERFACE
2381
2382#define INTERFACE IDebugAdvanced3
2384{
2385 /* IUnknown */
2389 /* IDebugAdvanced */
2390 STDMETHOD(GetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
2391 STDMETHOD(SetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
2392 /* IDebugAdvanced2 */
2393 STDMETHOD(Request)(THIS_ ULONG request, void *inbuffer, ULONG inbuffer_size,
2394 void *outbuffer, ULONG outbuffer_size, ULONG *outsize) PURE;
2395 STDMETHOD(GetSourceFileInformation)(THIS_ ULONG which, char *sourcefile,
2396 ULONG64 arg64, ULONG arg32, void *buffer, ULONG buffer_size, ULONG *info_size) PURE;
2397 STDMETHOD(FindSourceFileAndToken)(THIS_ ULONG start_element, ULONG64 modaddr, const char *filename,
2398 ULONG flags, void *filetoken, ULONG filetokensize, ULONG *found_element, char *buffer,
2399 ULONG buffer_size, ULONG *found_size) PURE;
2400 STDMETHOD(GetSymbolInformation)(THIS_ ULONG which, ULONG64 arg64, ULONG arg32, void *buffer,
2401 ULONG buffer_size, ULONG *info_size, char *string_buffer, ULONG string_buffer_size,
2402 ULONG *string_size) PURE;
2403 STDMETHOD(GetSystemObjectInformation)(THIS_ ULONG which, ULONG64 arg64, ULONG arg32,
2404 void *buffer, ULONG buffer_size, ULONG *info_size) PURE;
2405 /* IDebugAdvanced3 */
2406 STDMETHOD(GetSourceFileInformationWide)(THIS_ ULONG which, WCHAR *source_file, ULONG64 arg64,
2407 ULONG arg32, void *buffer, ULONG buffer_size, ULONG *info_size) PURE;
2408 STDMETHOD(FindSourceFileAndTokenWide)(THIS_ ULONG start_element, ULONG64 modaddr, const WCHAR *filename,
2409 ULONG flags, void *filetoken, ULONG filetokensize, ULONG *found_element, WCHAR *buffer,
2410 ULONG buffer_size, ULONG *found_size) PURE;
2411 STDMETHOD(GetSymbolInformationWide)(THIS_ ULONG which, ULONG64 arg64, ULONG arg32, void *buffer,
2412 ULONG buffer_size, ULONG *info_size, WCHAR *string_buffer, ULONG string_buffer_size,
2413 ULONG *string_size) PURE;
2414};
2415#undef INTERFACE
2416
2417#define INTERFACE IDebugSystemObjects
2418DECLARE_INTERFACE_(IDebugSystemObjects, IUnknown)
2419{
2420 /* IUnknown */
2424 /* IDebugSystemObjects */
2425 STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
2426 STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
2428 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
2429 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
2430 STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
2431 STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
2432 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2433 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
2434 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2435 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2436 STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
2437 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2438 STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
2439 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2440 STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
2441 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2442 STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
2443 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2444 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2445 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2446 STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
2447 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2448 STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
2449 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2450 STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
2451 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2452 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
2453};
2454#undef INTERFACE
2455
2456#define INTERFACE IDebugSystemObjects2
2457DECLARE_INTERFACE_(IDebugSystemObjects2, IUnknown)
2458{
2459 /* IUnknown */
2463 /* IDebugSystemObjects */
2464 STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
2465 STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
2467 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
2468 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
2469 STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
2470 STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
2471 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2472 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
2473 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2474 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2475 STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
2476 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2477 STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
2478 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2479 STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
2480 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2481 STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
2482 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2483 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2484 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2485 STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
2486 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2487 STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
2488 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2489 STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
2490 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2491 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
2492 /* IDebugSystemObjects2 */
2493 STDMETHOD(GetCurrentProcessUpTime)(THIS_ ULONG *uptime) PURE;
2494 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2495 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 offset) PURE;
2496 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2497 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 offset) PURE;
2498};
2499#undef INTERFACE
2500
2501#define INTERFACE IDebugSystemObjects3
2502DECLARE_INTERFACE_(IDebugSystemObjects3, IUnknown)
2503{
2504 /* IUnknown */
2508 /* IDebugSystemObjects */
2509 STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
2510 STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
2512 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
2513 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
2514 STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
2515 STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
2516 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2517 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
2518 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2519 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2520 STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
2521 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2522 STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
2523 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2524 STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
2525 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2526 STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
2527 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
2528 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2529 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
2530 STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
2531 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
2532 STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
2533 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
2534 STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
2535 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
2536 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
2537 /* IDebugSystemObjects2 */
2538 STDMETHOD(GetCurrentProcessUpTime)(THIS_ ULONG *uptime) PURE;
2539 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
2540 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 offset) PURE;
2541 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
2542 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 offset) PURE;
2543 /* IDebugSystemObjects3 */
2544 STDMETHOD(GetEventSystem)(THIS_ ULONG *id) PURE;
2545 STDMETHOD(GetCurrentSystemId)(THIS_ ULONG *id) PURE;
2546 STDMETHOD(SetCurrentSystemId)(THIS_ ULONG id) PURE;
2547 STDMETHOD(GetNumberSystems)(THIS_ ULONG *number) PURE;
2548 STDMETHOD(GetSystemIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids) PURE;
2549 STDMETHOD(GetTotalNumberThreadsAndProcesses)(THIS_ ULONG *total_threads, ULONG *total_processes,
2550 ULONG *largest_process_threads, ULONG *largest_system_threads, ULONG *largest_system_processes) PURE;
2551 STDMETHOD(GetCurrentSystemServer)(THIS_ ULONG64 *server) PURE;
2552 STDMETHOD(GetSystemByServer)(THIS_ ULONG64 server, ULONG *id) PURE;
2553 STDMETHOD(GetCurrentSystemServerName)(THIS_ char *buffer, ULONG buffer_size, ULONG *name_size) PURE;
2554};
2555#undef INTERFACE
2556
2558
2559#ifdef __cplusplus
2560}
2561#endif
#define index(s, c)
Definition: various.h:29
static BOOL OpenLogFile()
Definition: log.c:49
static INT Execute(LPTSTR Full, LPTSTR First, LPTSTR Rest, PARSED_COMMAND *Cmd)
Definition: cmd.c:345
static BOOL expand(LPINT ac, LPTSTR **arg, LPCTSTR pattern)
Definition: misc.c:228
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:171
interface IDebugClient IDebugClient
Definition: dbgeng.h:213
struct _DEBUG_SYMBOL_SOURCE_ENTRY * PDEBUG_SYMBOL_SOURCE_ENTRY
struct _DEBUG_BREAKPOINT_PARAMETERS * PDEBUG_BREAKPOINT_PARAMETERS
IDebugBreakpoint2 * PDEBUG_BREAKPOINT2
Definition: dbgeng.h:508
struct _DEBUG_MODULE_AND_ID * PDEBUG_MODULE_AND_ID
struct _DEBUG_VALUE DEBUG_VALUE
IDebugBreakpoint * PDEBUG_BREAKPOINT
Definition: dbgeng.h:507
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:316
struct _DEBUG_SYMBOL_PARAMETERS * PDEBUG_SYMBOL_PARAMETERS
HRESULT WINAPI DebugCreate(REFIID riid, void **out)
Definition: dbgeng.c:4701
struct _DEBUG_OFFSET_REGION DEBUG_OFFSET_REGION
struct _WINDBG_EXTENSION_APIS32 * PWINDBG_EXTENSION_APIS32
Definition: dbgeng.h:314
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:315
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:509
struct _DEBUG_OFFSET_REGION * PDEBUG_OFFSET_REGION
size_t const element_size
Definition: debug_heap.cpp:510
_Check_return_ _In_ PQUERY_INTERFACE QueryInterface
Definition: dispmprt.h:1318
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
Definition: dispmprt.h:245
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
int(* FARPROC)()
Definition: compat.h:36
VOID WINAPI ExitProcess(IN UINT uExitCode)
Definition: proc.c:1380
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:1794
uacpi_u16 uacpi_gpe_triggering uacpi_gpe_handler uacpi_handle ctx uacpi_u16 uacpi_namespace_node *wake_device uacpi_u16 idx uacpi_u16 idx uacpi_u16 idx uacpi_u16 idx uacpi_u16 idx uacpi_u64 uacpi_address_space address_space
Definition: event.h:273
r reserved
Definition: btrfs.c:3006
unsigned int BOOL
Definition: ntddk_ex.h:94
static LPWSTR GetTypeName(PFILE_TYPE_ENTRY Entry, PFILE_TYPE_GLOBALS pG)
Definition: filetypes.cpp:287
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 count
Definition: gl.h:1545
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLenum func
Definition: glext.h:6028
GLuint * ids
Definition: glext.h:5907
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
GLintptr offset
Definition: glext.h:5920
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
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
type_id
static int reg
Definition: i386-dis.c:1290
REFIID riid
Definition: atlbase.h:39
static TfClientId tid
#define frame_offset
Definition: intsym.h:201
const char * filename
Definition: ioapi.h:137
uint32_t entry
Definition: isohybrid.c:63
const unsigned char * inbuffer
Definition: jpeglib.h:985
unsigned char size_t * outsize
Definition: jpeglib.h:983
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 ULONG64
Definition: imports.h:198
unsigned __int64 * PULONG64
Definition: imports.h:198
HANDLE events[2]
Definition: event.c:4
#define comment(fmt, arg1)
Definition: rebar.c:847
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1204
const char * fullname
Definition: shader.c:1766
static unsigned int number
Definition: dsound.c:1479
static UINT exit_code
Definition: process.c:80
static char * exename
Definition: process.c:107
static const char machine[]
Definition: profile.c:104
BOOL loaded
Definition: xmlview.c:54
static void **static CONTEXT BOOL first_chance
Definition: exception.c:82
static APTTYPEQUALIFIER * qualifier
Definition: compobj.c:77
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:83
DWORD create_flags
Definition: sec_mgr.c:1565
static BYTE parameters[]
Definition: asn.c:558
api
Definition: notification.c:39
#define STDMETHODV(method)
Definition: objbase.h:200
static HANDLE proc()
Definition: pdb.c:32
static const WCHAR uptime[]
Definition: pdh.c:76
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
#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
#define exception
Definition: math.h:26
@ Input
Definition: arc.h:93
@ Output
Definition: arc.h:94
#define args
Definition: format.c:66
static FILE * client
Definition: client.c:37
#define minor(rdev)
Definition: propsheet.cpp:929
#define major(rdev)
Definition: propsheet.cpp:928
DWORD WINAPI StartServer(LPVOID lpParam)
Definition: skelserver.c:165
wchar_t const *const size_t const buffer_size
Definition: stat.cpp:95
TCHAR * cmdline
Definition: stretchblt.cpp:32
ULONG64 ModuleBase
Definition: dbgeng.h:339
ULONG64 FuncTableEntry
Definition: dbgeng.h:252
ULONG FrameNumber
Definition: dbgeng.h:256
ULONG64 InstructionOffset
Definition: dbgeng.h:248
ULONG64 ReturnOffset
Definition: dbgeng.h:249
ULONG64 StackOffset
Definition: dbgeng.h:251
ULONG64 FrameOffset
Definition: dbgeng.h:250
Definition: dbgeng.h:350
ULONG NameSize
Definition: dbgeng.h:358
ULONG Token
Definition: dbgeng.h:359
ULONG64 Id
Definition: dbgeng.h:353
ULONG Reserved
Definition: dbgeng.h:362
ULONG64 ModuleBase
Definition: dbgeng.h:351
ULONG Tag
Definition: dbgeng.h:360
ULONG Flags
Definition: dbgeng.h:356
ULONG TypeId
Definition: dbgeng.h:357
ULONG64 Arg64
Definition: dbgeng.h:354
ULONG64 Offset
Definition: dbgeng.h:352
ULONG Arg32
Definition: dbgeng.h:361
ULONG Size
Definition: dbgeng.h:355
Definition: dbgeng.h:366
ULONG StartLine
Definition: dbgeng.h:374
ULONG Size
Definition: dbgeng.h:371
ULONG EndColumn
Definition: dbgeng.h:377
ULONG EndLine
Definition: dbgeng.h:375
ULONG64 FileNameId
Definition: dbgeng.h:369
ULONG StartColumn
Definition: dbgeng.h:376
ULONG64 ModuleBase
Definition: dbgeng.h:367
ULONG64 Offset
Definition: dbgeng.h:368
ULONG Flags
Definition: dbgeng.h:372
ULONG Reserved
Definition: dbgeng.h:378
ULONG FileNameSize
Definition: dbgeng.h:373
ULONG64 EngineInternal
Definition: dbgeng.h:370
struct _DEBUG_VALUE::@3205::@3210 F128Parts64
UCHAR F128Bytes[16]
Definition: dbgeng.h:275
ULONG Type
Definition: dbgeng.h:295
float VF32[4]
Definition: dbgeng.h:280
ULONG I32
Definition: dbgeng.h:265
ULONG64 VI64[2]
Definition: dbgeng.h:279
ULONG64 I64
Definition: dbgeng.h:268
ULONG HighPart
Definition: dbgeng.h:285
UCHAR I8
Definition: dbgeng.h:263
UCHAR F80Bytes[10]
Definition: dbgeng.h:273
USHORT I16
Definition: dbgeng.h:264
ULONG LowPart
Definition: dbgeng.h:284
ULONG64 LowPart
Definition: dbgeng.h:289
ULONG TailOfRawBytes
Definition: dbgeng.h:294
double VF64[2]
Definition: dbgeng.h:281
BOOL Nat
Definition: dbgeng.h:269
UCHAR F82Bytes[11]
Definition: dbgeng.h:274
struct _DEBUG_VALUE::@3205::@3209 I64Parts32
double F64
Definition: dbgeng.h:272
USHORT VI16[8]
Definition: dbgeng.h:277
float F32
Definition: dbgeng.h:271
UCHAR VI8[16]
Definition: dbgeng.h:276
UCHAR RawBytes[24]
Definition: dbgeng.h:292
LONG64 HighPart
Definition: dbgeng.h:290
ULONG VI32[4]
Definition: dbgeng.h:278
Definition: inflate.c:139
Definition: http.c:7252
Definition: dialog.c:52
Definition: parser.c:44
Definition: fci.c:123
Definition: format.c:58
Definition: parser.c:49
Definition: name.c:39
Definition: tftpd.h:86
Definition: ps.c:97
Definition: dhcpd.h:248
Definition: cmds.c:130
output_type
Definition: stylesheet.c:52
Character const *const prefix
Definition: tempnam.cpp:195
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
unsigned char UCHAR
Definition: typedefs.h:53
const char * PCSTR
Definition: typedefs.h:52
uint32_t ULONG
Definition: typedefs.h:59
Definition: pdh_main.c:96
static unsigned stack_offset(compile_ctx_t *ctx)
Definition: compile.c:367
struct _slot slot
Definition: vfat.h:196
static const char * SystemError(DWORD err)
Definition: vfdcmd.c:3368
static rfbScreenInfoPtr server
Definition: vnc.c:74
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
_In_ WDFREQUEST Request
Definition: wdfdevice.h:547
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
Definition: wdfrequest.h:308
static GLenum which
Definition: wgl_font.c:159
static NTSTATUS GetSystemVersionString(OUT PWSTR pwszzVersion, IN SIZE_T cchDest, IN BOOLEAN InSafeMode, IN BOOLEAN AppendNtSystemRoot)
Definition: desktop.c:307
#define GetType(This)
Definition: conio.h:54
#define CreateProcess
Definition: winbase.h:3479
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:250
#define WINAPI
Definition: msvc.h:6
const char * description
Definition: directx.c:2497
static PVOID LoadModule(_Inout_ PLIST_ENTRY LoadOrderListHead, _In_ PCSTR Path, _In_ PCSTR File, _In_ PCSTR ImportName, _In_ TYPE_OF_MEMORY MemoryType, _Out_ PLDR_DATA_TABLE_ENTRY *Dte, _In_ ULONG Percentage)
Definition: winldr.c:526
size_t const unsigned const radix
Definition: xtoa.cpp:37