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