Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/dbgeng.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER 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_IDebugBreakpoint,0x5bd9d474,0x5975,0x423a,0xb8,0x8b,0x65,0xa8,0xe7,0x11,0x0e,0x65); | |
| 27 DEFINE_GUID(IID_IDebugClient,0x27fe5639,0x8407,0x4f47,0x83,0x64,0xee,0x11,0x8f,0xb0,0x8a,0xc8); | |
| 28 DEFINE_GUID(IID_IDebugClient2,0xedbed635,0x372e,0x4dab,0xbb,0xfe,0xed,0x0d,0x2f,0x63,0xbe,0x81); | |
| 29 DEFINE_GUID(IID_IDebugClient3,0xdd492d7f,0x71b8,0x4ad6,0xa8,0xdc,0x1c,0x88,0x74,0x79,0xff,0x91); | |
| 30 DEFINE_GUID(IID_IDebugClient4,0xca83c3de,0x5089,0x4cf8,0x93,0xc8,0xd8,0x92,0x38,0x7f,0x2a,0x5e); | |
| 31 DEFINE_GUID(IID_IDebugControl,0x5182e668,0x105e,0x416e,0xad,0x92,0x24,0xef,0x80,0x04,0x24,0xba); | |
| 32 DEFINE_GUID(IID_IDebugControl2,0xd4366723,0x44df,0x4bed,0x8c,0x7e,0x4c,0x05,0x42,0x4f,0x45,0x88); | |
| 33 DEFINE_GUID(IID_IDebugControl3,0x7df74a86,0xb03f,0x407f,0x90,0xab,0xa2,0x0d,0xad,0xce,0xad,0x08); | |
| 34 DEFINE_GUID(IID_IDebugDataSpaces,0x88f7dfab,0x3ea7,0x4c3a,0xae,0xfb,0xc4,0xe8,0x10,0x61,0x73,0xaa); | |
| 35 DEFINE_GUID(IID_IDebugDataSpaces2,0x7a5e852f,0x96e9,0x468f,0xac,0x1b,0x0b,0x3a,0xdd,0xc4,0xa0,0x49); | |
| 36 DEFINE_GUID(IID_IDebugDataSpaces3,0x23f79d6c,0x8aaf,0x4f7c,0xa6,0x07,0x99,0x95,0xf5,0x40,0x7e,0x63); | |
| 37 DEFINE_GUID(IID_IDebugEventCallbacks,0x337be28b,0x5036,0x4d72,0xb6,0xbf,0xc4,0x5f,0xbb,0x9f,0x2e,0xaa); | |
| 38 DEFINE_GUID(IID_IDebugInputCallbacks,0x9f50e42c,0xf136,0x499e,0x9a,0x97,0x73,0x03,0x6c,0x94,0xed,0x2d); | |
| 39 DEFINE_GUID(IID_IDebugOutputCallbacks,0x4bf58045,0xd654,0x4c40,0xb0,0xaf,0x68,0x30,0x90,0xf3,0x56,0xdc); | |
| 40 DEFINE_GUID(IID_IDebugRegisters,0xce289126,0x9e84,0x45a7,0x93,0x7e,0x67,0xbb,0x18,0x69,0x14,0x93); | |
| 41 DEFINE_GUID(IID_IDebugSymbolGroup,0xf2528316,0x0f1a,0x4431,0xae,0xed,0x11,0xd0,0x96,0xe1,0xe2,0xab); | |
| 42 DEFINE_GUID(IID_IDebugSymbols,0x8c31e98c,0x983a,0x48a5,0x90,0x16,0x6f,0xe5,0xd6,0x67,0xa9,0x50); | |
| 43 DEFINE_GUID(IID_IDebugSymbols2,0x3a707211,0xafdd,0x4495,0xad,0x4f,0x56,0xfe,0xcd,0xf8,0x16,0x3f); | |
| 44 DEFINE_GUID(IID_IDebugSystemObjects,0x6b86fe2c,0x2c4f,0x4f0c,0x9d,0xa2,0x17,0x43,0x11,0xac,0xc3,0x27); | |
| 45 DEFINE_GUID(IID_IDebugSystemObjects2,0x0ae9f5ff,0x1852,0x4679,0xb0,0x55,0x49,0x4b,0xee,0x64,0x07,0xee); | |
| 46 DEFINE_GUID(IID_IDebugSystemObjects3,0xe9676e2f,0xe286,0x4ea3,0xb0,0xf9,0xdf,0xe5,0xd9,0xfc,0x33,0x0e); | |
| 47 | |
| 48 typedef struct IDebugAdvanced *PDEBUG_ADVANCED; | |
| 49 typedef struct IDebugBreakpoint *PDEBUG_BREAKPOINT; | |
| 50 typedef struct IDebugClient *PDEBUG_CLIENT; | |
| 51 typedef struct IDebugClient2 *PDEBUG_CLIENT2; | |
| 52 typedef struct IDebugClient3 *PDEBUG_CLIENT3; | |
| 53 typedef struct IDebugClient4 *PDEBUG_CLIENT4; | |
| 54 typedef struct IDebugControl *PDEBUG_CONTROL; | |
| 55 typedef struct IDebugControl2 *PDEBUG_CONTROL2; | |
| 56 typedef struct IDebugControl3 *PDEBUG_CONTROL3; | |
| 57 typedef struct IDebugDataSpaces *PDEBUG_DATA_SPACES; | |
| 58 typedef struct IDebugDataSpaces2 *PDEBUG_DATA_SPACES2; | |
| 59 typedef struct IDebugDataSpaces3 *PDEBUG_DATA_SPACES3; | |
| 60 typedef struct IDebugEventCallbacks *PDEBUG_EVENT_CALLBACKS; | |
| 61 typedef struct IDebugInputCallbacks *PDEBUG_INPUT_CALLBACKS; | |
| 62 typedef struct IDebugOutputCallbacks *PDEBUG_OUTPUT_CALLBACKS; | |
| 63 typedef struct IDebugRegisters *PDEBUG_REGISTERS; | |
| 64 typedef struct IDebugSymbolGroup *PDEBUG_SYMBOL_GROUP; | |
| 65 typedef struct IDebugSymbols *PDEBUG_SYMBOLS; | |
| 66 typedef struct IDebugSymbols2 *PDEBUG_SYMBOLS2; | |
| 67 typedef struct IDebugSystemObjects *PDEBUG_SYSTEM_OBJECTS; | |
| 68 typedef struct IDebugSystemObjects2 *PDEBUG_SYSTEM_OBJECTS2; | |
| 69 typedef struct IDebugSystemObjects3 *PDEBUG_SYSTEM_OBJECTS3; | |
| 70 | |
| 71 #define DEBUG_EXTEND64(Addr) ((ULONG64)(LONG64)(LONG)(Addr)) | |
| 72 | |
| 73 STDAPI DebugConnect(PCSTR RemoteOptions,REFIID InterfaceId,PVOID *Interface); | |
| 74 STDAPI DebugCreate(REFIID InterfaceId,PVOID *Interface); | |
| 75 | |
| 76 #undef INTERFACE | |
| 77 #define INTERFACE IDebugAdvanced | |
| 78 DECLARE_INTERFACE_(IDebugAdvanced,IUnknown) { | |
| 79 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 80 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 81 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 82 STDMETHOD(GetThreadContext)(THIS_ PVOID Context,ULONG ContextSize) PURE; | |
| 83 STDMETHOD(SetThreadContext)(THIS_ PVOID Context,ULONG ContextSize) PURE; | |
| 84 }; | |
| 85 | |
| 86 #define DEBUG_BREAKPOINT_CODE 0 | |
| 87 #define DEBUG_BREAKPOINT_DATA 1 | |
| 88 | |
| 89 #define DEBUG_BREAKPOINT_GO_ONLY 0x00000001 | |
| 90 #define DEBUG_BREAKPOINT_DEFERRED 0x00000002 | |
| 91 #define DEBUG_BREAKPOINT_ENABLED 0x00000004 | |
| 92 #define DEBUG_BREAKPOINT_ADDER_ONLY 0x00000008 | |
| 93 #define DEBUG_BREAKPOINT_ONE_SHOT 0x00000010 | |
| 94 | |
| 95 #define DEBUG_BREAK_READ 0x00000001 | |
| 96 #define DEBUG_BREAK_WRITE 0x00000002 | |
| 97 #define DEBUG_BREAK_EXECUTE 0x00000004 | |
| 98 #define DEBUG_BREAK_IO 0x00000008 | |
| 99 | |
| 100 typedef struct _DEBUG_BREAKPOINT_PARAMETERS { | |
| 101 ULONG64 Offset; | |
| 102 ULONG Id; | |
| 103 ULONG BreakType; | |
| 104 ULONG ProcType; | |
| 105 ULONG Flags; | |
| 106 ULONG DataSize; | |
| 107 ULONG DataAccessType; | |
| 108 ULONG PassCount; | |
| 109 ULONG CurrentPassCount; | |
| 110 ULONG MatchThread; | |
| 111 ULONG CommandSize; | |
| 112 ULONG OffsetExpressionSize; | |
| 113 } DEBUG_BREAKPOINT_PARAMETERS,*PDEBUG_BREAKPOINT_PARAMETERS; | |
| 114 | |
| 115 #undef INTERFACE | |
| 116 #define INTERFACE IDebugBreakpoint | |
| 117 DECLARE_INTERFACE_(IDebugBreakpoint,IUnknown) { | |
| 118 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 119 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 120 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 121 STDMETHOD(GetId)(THIS_ PULONG Id) PURE; | |
| 122 STDMETHOD(GetType)(THIS_ PULONG BreakType,PULONG ProcType) PURE; | |
| 123 STDMETHOD(GetAdder)(THIS_ PDEBUG_CLIENT *Adder) PURE; | |
| 124 STDMETHOD(GetFlags)(THIS_ PULONG Flags) PURE; | |
| 125 STDMETHOD(AddFlags)(THIS_ ULONG Flags) PURE; | |
| 126 STDMETHOD(RemoveFlags)(THIS_ ULONG Flags) PURE; | |
| 127 STDMETHOD(SetFlags)(THIS_ ULONG Flags) PURE; | |
| 128 STDMETHOD(GetOffset)(THIS_ PULONG64 Offset) PURE; | |
| 129 STDMETHOD(SetOffset)(THIS_ ULONG64 Offset) PURE; | |
| 130 STDMETHOD(GetDataParameters)(THIS_ PULONG Size,PULONG AccessType) PURE; | |
| 131 STDMETHOD(SetDataParameters)(THIS_ ULONG Size,ULONG AccessType) PURE; | |
| 132 STDMETHOD(GetPassCount)(THIS_ PULONG Count) PURE; | |
| 133 STDMETHOD(SetPassCount)(THIS_ ULONG Count) PURE; | |
| 134 STDMETHOD(GetCurrentPassCount)(THIS_ PULONG Count) PURE; | |
| 135 STDMETHOD(GetMatchThreadId)(THIS_ PULONG Id) PURE; | |
| 136 STDMETHOD(SetMatchThreadId)(THIS_ ULONG Thread) PURE; | |
| 137 STDMETHOD(GetCommand)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE; | |
| 138 STDMETHOD(SetCommand)(THIS_ PCSTR Command) PURE; | |
| 139 STDMETHOD(GetOffsetExpression)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG ExpressionSize) PURE; | |
| 140 STDMETHOD(SetOffsetExpression)(THIS_ PCSTR Expression) PURE; | |
| 141 STDMETHOD(GetParameters)(THIS_ PDEBUG_BREAKPOINT_PARAMETERS Params) PURE; | |
| 142 }; | |
| 143 | |
| 144 #define DEBUG_ATTACH_KERNEL_CONNECTION 0x00000000 | |
| 145 #define DEBUG_ATTACH_LOCAL_KERNEL 0x00000001 | |
| 146 #define DEBUG_ATTACH_EXDI_DRIVER 0x00000002 | |
| 147 | |
| 148 #define DEBUG_GET_PROC_DEFAULT 0x00000000 | |
| 149 #define DEBUG_GET_PROC_FULL_MATCH 0x00000001 | |
| 150 #define DEBUG_GET_PROC_ONLY_MATCH 0x00000002 | |
| 151 | |
| 152 #define DEBUG_PROC_DESC_DEFAULT 0x00000000 | |
| 153 #define DEBUG_PROC_DESC_NO_PATHS 0x00000001 | |
| 154 #define DEBUG_PROC_DESC_NO_SERVICES 0x00000002 | |
| 155 #define DEBUG_PROC_DESC_NO_MTS_PACKAGES 0x00000004 | |
| 156 #define DEBUG_PROC_DESC_NO_COMMAND_LINE 0x00000008 | |
| 157 | |
| 158 #define DEBUG_ATTACH_DEFAULT 0x00000000 | |
| 159 #define DEBUG_ATTACH_NONINVASIVE 0x00000001 | |
| 160 #define DEBUG_ATTACH_EXISTING 0x00000002 | |
| 161 #define DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND 0x00000004 | |
| 162 #define DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK 0x00000008 | |
| 163 #define DEBUG_ATTACH_INVASIVE_RESUME_PROCESS 0x00000010 | |
| 164 | |
| 165 #define DEBUG_CREATE_PROCESS_NO_DEBUG_HEAP CREATE_UNICODE_ENVIRONMENT | |
| 166 #define DEBUG_CREATE_PROCESS_THROUGH_RTL STACK_SIZE_PARAM_IS_A_RESERVATION | |
| 167 | |
| 168 #define DEBUG_PROCESS_DETACH_ON_EXIT 0x00000001 | |
| 169 #define DEBUG_PROCESS_ONLY_THIS_PROCESS 0x00000002 | |
| 170 | |
| 171 #define DEBUG_CONNECT_SESSION_DEFAULT 0x00000000 | |
| 172 #define DEBUG_CONNECT_SESSION_NO_VERSION 0x00000001 | |
| 173 #define DEBUG_CONNECT_SESSION_NO_ANNOUNCE 0x00000002 | |
| 174 | |
| 175 #define DEBUG_SERVERS_DEBUGGER 0x00000001 | |
| 176 #define DEBUG_SERVERS_PROCESS 0x00000002 | |
| 177 #define DEBUG_SERVERS_ALL 0x00000003 | |
| 178 | |
| 179 #define DEBUG_END_PASSIVE 0x00000000 | |
| 180 #define DEBUG_END_ACTIVE_TERMINATE 0x00000001 | |
| 181 #define DEBUG_END_ACTIVE_DETACH 0x00000002 | |
| 182 #define DEBUG_END_REENTRANT 0x00000003 | |
| 183 #define DEBUG_END_DISCONNECT 0x00000004 | |
| 184 | |
| 185 #define DEBUG_OUTPUT_NORMAL 0x00000001 | |
| 186 #define DEBUG_OUTPUT_ERROR 0x00000002 | |
| 187 #define DEBUG_OUTPUT_WARNING 0x00000004 | |
| 188 #define DEBUG_OUTPUT_VERBOSE 0x00000008 | |
| 189 #define DEBUG_OUTPUT_PROMPT 0x00000010 | |
| 190 #define DEBUG_OUTPUT_PROMPT_REGISTERS 0x00000020 | |
| 191 #define DEBUG_OUTPUT_EXTENSION_WARNING 0x00000040 | |
| 192 #define DEBUG_OUTPUT_DEBUGGEE 0x00000080 | |
| 193 #define DEBUG_OUTPUT_DEBUGGEE_PROMPT 0x00000100 | |
| 194 #define DEBUG_OUTPUT_SYMBOLS 0x00000200 | |
| 195 | |
| 196 #define DEBUG_OUTPUT_IDENTITY_DEFAULT 0x00000000 | |
| 197 | |
| 198 #define DEBUG_IOUTPUT_KD_PROTOCOL 0x80000000 | |
| 199 #define DEBUG_IOUTPUT_REMOTING 0x40000000 | |
| 200 #define DEBUG_IOUTPUT_BREAKPOINT 0x20000000 | |
| 201 #define DEBUG_IOUTPUT_EVENT 0x10000000 | |
| 202 | |
| 203 #undef INTERFACE | |
| 204 #define INTERFACE IDebugClient | |
| 205 DECLARE_INTERFACE_(IDebugClient,IUnknown) { | |
| 206 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 207 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 208 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 209 STDMETHOD(AttachKernel)(THIS_ ULONG Flags,PCSTR ConnectOptions) PURE; | |
| 210 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG OptionsSize) PURE; | |
| 211 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; | |
| 212 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags,PCSTR Options,PVOID Reserved) PURE; | |
| 213 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions,PULONG64 Server) PURE; | |
| 214 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; | |
| 215 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server,PULONG Ids,ULONG Count,PULONG ActualCount) PURE; | |
| 216 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server,PCSTR ExeName,ULONG Flags,PULONG Id) PURE; | |
| 217 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE; | |
| 218 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 219 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags) PURE; | |
| 220 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 221 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; | |
| 222 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; | |
| 223 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; | |
| 224 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; | |
| 225 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; | |
| 226 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile,ULONG Qualifier) PURE; | |
| 227 STDMETHOD(ConnectSession)(THIS_ ULONG Flags,ULONG HistoryLimit) PURE; | |
| 228 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; | |
| 229 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl,PCSTR Machine,ULONG Flags) PURE; | |
| 230 STDMETHOD(TerminateProcesses)(THIS) PURE; | |
| 231 STDMETHOD(DetachProcesses)(THIS) PURE; | |
| 232 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; | |
| 233 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; | |
| 234 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; | |
| 235 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; | |
| 236 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; | |
| 237 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; | |
| 238 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; | |
| 239 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; | |
| 240 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; | |
| 241 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; | |
| 242 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; | |
| 243 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,PULONG Mask) PURE; | |
| 244 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,ULONG Mask) PURE; | |
| 245 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; | |
| 246 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; | |
| 247 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PrefixSize) PURE; | |
| 248 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; | |
| 249 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG IdentitySize) PURE; | |
| 250 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl,ULONG Flags,PCSTR Format) PURE; | |
| 251 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; | |
| 252 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; | |
| 253 STDMETHOD(FlushCallbacks)(THIS) PURE; | |
| 254 }; | |
| 255 | |
| 256 #define DEBUG_FORMAT_DEFAULT 0x00000000 | |
| 257 #define DEBUG_FORMAT_WRITE_CAB 0x20000000 | |
| 258 #define DEBUG_FORMAT_CAB_SECONDARY_FILES 0x40000000 | |
| 259 #define DEBUG_FORMAT_NO_OVERWRITE 0x80000000 | |
| 260 #define DEBUG_FORMAT_USER_SMALL_FULL_MEMORY 0x00000001 | |
| 261 #define DEBUG_FORMAT_USER_SMALL_HANDLE_DATA 0x00000002 | |
| 262 #define DEBUG_FORMAT_USER_SMALL_UNLOADED_MODULES 0x00000004 | |
| 263 #define DEBUG_FORMAT_USER_SMALL_INDIRECT_MEMORY 0x00000008 | |
| 264 #define DEBUG_FORMAT_USER_SMALL_DATA_SEGMENTS 0x00000010 | |
| 265 #define DEBUG_FORMAT_USER_SMALL_FILTER_MEMORY 0x00000020 | |
| 266 #define DEBUG_FORMAT_USER_SMALL_FILTER_PATHS 0x00000040 | |
| 267 #define DEBUG_FORMAT_USER_SMALL_PROCESS_THREAD_DATA 0x00000080 | |
| 268 #define DEBUG_FORMAT_USER_SMALL_PRIVATE_READ_WRITE_MEMORY 0x00000100 | |
| 269 | |
| 270 #define DEBUG_DUMP_FILE_BASE 0xffffffff | |
| 271 #define DEBUG_DUMP_FILE_PAGE_FILE_DUMP 0x00000000 | |
| 272 #define DEBUG_DUMP_FILE_LOAD_FAILED_INDEX 0xffffffff | |
| 273 | |
| 274 #undef INTERFACE | |
| 275 #define INTERFACE IDebugClient2 | |
| 276 DECLARE_INTERFACE_(IDebugClient2,IUnknown) { | |
| 277 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 278 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 279 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 280 STDMETHOD(AttachKernel)(THIS_ ULONG Flags,PCSTR ConnectOptions) PURE; | |
| 281 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG OptionsSize) PURE; | |
| 282 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; | |
| 283 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags,PCSTR Options,PVOID Reserved) PURE; | |
| 284 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions,PULONG64 Server) PURE; | |
| 285 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; | |
| 286 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server,PULONG Ids,ULONG Count,PULONG ActualCount) PURE; | |
| 287 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server,PCSTR ExeName,ULONG Flags,PULONG Id) PURE; | |
| 288 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE; | |
| 289 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 290 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags) PURE; | |
| 291 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 292 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; | |
| 293 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; | |
| 294 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; | |
| 295 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; | |
| 296 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; | |
| 297 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile,ULONG Qualifier) PURE; | |
| 298 STDMETHOD(ConnectSession)(THIS_ ULONG Flags,ULONG HistoryLimit) PURE; | |
| 299 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; | |
| 300 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl,PCSTR Machine,ULONG Flags) PURE; | |
| 301 STDMETHOD(TerminateProcesses)(THIS) PURE; | |
| 302 STDMETHOD(DetachProcesses)(THIS) PURE; | |
| 303 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; | |
| 304 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; | |
| 305 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; | |
| 306 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; | |
| 307 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; | |
| 308 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; | |
| 309 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; | |
| 310 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; | |
| 311 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; | |
| 312 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; | |
| 313 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; | |
| 314 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,PULONG Mask) PURE; | |
| 315 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,ULONG Mask) PURE; | |
| 316 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; | |
| 317 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; | |
| 318 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PrefixSize) PURE; | |
| 319 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; | |
| 320 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG IdentitySize) PURE; | |
| 321 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl,ULONG Flags,PCSTR Format) PURE; | |
| 322 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; | |
| 323 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; | |
| 324 STDMETHOD(FlushCallbacks)(THIS) PURE; | |
| 325 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile,ULONG Qualifier,ULONG FormatFlags,PCSTR Comment) PURE; | |
| 326 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile,ULONG Type) PURE; | |
| 327 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE; | |
| 328 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE; | |
| 329 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE; | |
| 330 STDMETHOD(TerminateCurrentProcess)(THIS) PURE; | |
| 331 STDMETHOD(DetachCurrentProcess)(THIS) PURE; | |
| 332 STDMETHOD(AbandonCurrentProcess)(THIS) PURE; | |
| 333 }; | |
| 334 | |
| 335 #undef INTERFACE | |
| 336 #define INTERFACE IDebugClient3 | |
| 337 DECLARE_INTERFACE_(IDebugClient3,IUnknown) { | |
| 338 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 339 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 340 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 341 STDMETHOD(AttachKernel)(THIS_ | |
| 342 ULONG Flags,PCSTR ConnectOptions) PURE; | |
| 343 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG OptionsSize) PURE; | |
| 344 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; | |
| 345 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags,PCSTR Options,PVOID Reserved) PURE; | |
| 346 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions,PULONG64 Server) PURE; | |
| 347 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; | |
| 348 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server,PULONG Ids,ULONG Count,PULONG ActualCount) PURE; | |
| 349 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server,PCSTR ExeName,ULONG Flags,PULONG Id) PURE; | |
| 350 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE; | |
| 351 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 352 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags) PURE; | |
| 353 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 354 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; | |
| 355 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; | |
| 356 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; | |
| 357 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; | |
| 358 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; | |
| 359 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile,ULONG Qualifier) PURE; | |
| 360 STDMETHOD(ConnectSession)(THIS_ ULONG Flags,ULONG HistoryLimit) PURE; | |
| 361 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; | |
| 362 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl,PCSTR Machine,ULONG Flags) PURE; | |
| 363 STDMETHOD(TerminateProcesses)(THIS) PURE; | |
| 364 STDMETHOD(DetachProcesses)(THIS) PURE; | |
| 365 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; | |
| 366 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; | |
| 367 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; | |
| 368 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; | |
| 369 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; | |
| 370 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; | |
| 371 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; | |
| 372 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; | |
| 373 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; | |
| 374 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; | |
| 375 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; | |
| 376 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,PULONG Mask) PURE; | |
| 377 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,ULONG Mask) PURE; | |
| 378 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; | |
| 379 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; | |
| 380 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PrefixSize) PURE; | |
| 381 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; | |
| 382 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG IdentitySize) PURE; | |
| 383 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl,ULONG Flags,PCSTR Format) PURE; | |
| 384 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; | |
| 385 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; | |
| 386 STDMETHOD(FlushCallbacks)(THIS) PURE; | |
| 387 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile,ULONG Qualifier,ULONG FormatFlags,PCSTR Comment) PURE; | |
| 388 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile,ULONG Type) PURE; | |
| 389 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE; | |
| 390 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE; | |
| 391 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE; | |
| 392 STDMETHOD(TerminateCurrentProcess)(THIS) PURE; | |
| 393 STDMETHOD(DetachCurrentProcess)(THIS) PURE; | |
| 394 STDMETHOD(AbandonCurrentProcess)(THIS) PURE; | |
| 395 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server,PCWSTR ExeName,ULONG Flags,PULONG Id) PURE; | |
| 396 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PWSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PWSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE; | |
| 397 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server,PWSTR CommandLine,ULONG CreateFlags) PURE; | |
| 398 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server,PWSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 399 }; | |
| 400 | |
| 401 #undef INTERFACE | |
| 402 #define INTERFACE IDebugClient4 | |
| 403 DECLARE_INTERFACE_(IDebugClient4,IUnknown) { | |
| 404 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 405 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 406 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 407 STDMETHOD(AttachKernel)(THIS_ ULONG Flags,PCSTR ConnectOptions) PURE; | |
| 408 STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG OptionsSize) PURE; | |
| 409 STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; | |
| 410 STDMETHOD(StartProcessServer)(THIS_ ULONG Flags,PCSTR Options,PVOID Reserved) PURE; | |
| 411 STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions,PULONG64 Server) PURE; | |
| 412 STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; | |
| 413 STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server,PULONG Ids,ULONG Count,PULONG ActualCount) PURE; | |
| 414 STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server,PCSTR ExeName,ULONG Flags,PULONG Id) PURE; | |
| 415 STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE; | |
| 416 STDMETHOD(AttachProcess)(THIS_ ULONG64 Server,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 417 STDMETHOD(CreateProcess)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags) PURE; | |
| 418 STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server,PSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 419 STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; | |
| 420 STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; | |
| 421 STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; | |
| 422 STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; | |
| 423 STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; | |
| 424 STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile,ULONG Qualifier) PURE; | |
| 425 STDMETHOD(ConnectSession)(THIS_ ULONG Flags,ULONG HistoryLimit) PURE; | |
| 426 STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; | |
| 427 STDMETHOD(OutputServers)(THIS_ ULONG OutputControl,PCSTR Machine,ULONG Flags) PURE; | |
| 428 STDMETHOD(TerminateProcesses)(THIS) PURE; | |
| 429 STDMETHOD(DetachProcesses)(THIS) PURE; | |
| 430 STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; | |
| 431 STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; | |
| 432 STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; | |
| 433 STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; | |
| 434 STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; | |
| 435 STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; | |
| 436 STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; | |
| 437 STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; | |
| 438 STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; | |
| 439 STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; | |
| 440 STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; | |
| 441 STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,PULONG Mask) PURE; | |
| 442 STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client,ULONG Mask) PURE; | |
| 443 STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; | |
| 444 STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; | |
| 445 STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PrefixSize) PURE; | |
| 446 STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; | |
| 447 STDMETHOD(GetIdentity)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG IdentitySize) PURE; | |
| 448 STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl,ULONG Flags,PCSTR Format) PURE; | |
| 449 STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; | |
| 450 STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; | |
| 451 STDMETHOD(FlushCallbacks)(THIS) PURE; | |
| 452 STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile,ULONG Qualifier,ULONG FormatFlags,PCSTR Comment) PURE; | |
| 453 STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile,ULONG Type) PURE; | |
| 454 STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE; | |
| 455 STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE; | |
| 456 STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE; | |
| 457 STDMETHOD(TerminateCurrentProcess)(THIS) PURE; | |
| 458 STDMETHOD(DetachCurrentProcess)(THIS) PURE; | |
| 459 STDMETHOD(AbandonCurrentProcess)(THIS) PURE; | |
| 460 STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server,PCWSTR ExeName,ULONG Flags,PULONG Id) PURE; | |
| 461 STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server,ULONG SystemId,ULONG Flags,PWSTR ExeName,ULONG ExeNameSize,PULONG ActualExeNameSize,PWSTR Description,ULONG DescriptionSize,PULONG ActualDescriptionSize) PURE; | |
| 462 STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server,PWSTR CommandLine,ULONG CreateFlags) PURE; | |
| 463 STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server,PWSTR CommandLine,ULONG CreateFlags,ULONG ProcessId,ULONG AttachFlags) PURE; | |
| 464 STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName,ULONG64 FileHandle) PURE; | |
| 465 STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName,ULONG64 FileHandle,ULONG Qualifier,ULONG FormatFlags,PCWSTR Comment) PURE; | |
| 466 STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName,ULONG64 FileHandle,ULONG Type) PURE; | |
| 467 STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE; | |
| 468 STDMETHOD(GetDumpFile)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG NameSize,PULONG64 Handle,PULONG Type) PURE; | |
| 469 STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index,PWSTR Buffer,ULONG BufferSize,PULONG NameSize,PULONG64 Handle,PULONG Type) PURE; | |
| 470 }; | |
| 471 | |
| 472 #define DEBUG_STATUS_NO_CHANGE 0 | |
| 473 #define DEBUG_STATUS_GO 1 | |
| 474 #define DEBUG_STATUS_GO_HANDLED 2 | |
| 475 #define DEBUG_STATUS_GO_NOT_HANDLED 3 | |
| 476 #define DEBUG_STATUS_STEP_OVER 4 | |
| 477 #define DEBUG_STATUS_STEP_INTO 5 | |
| 478 #define DEBUG_STATUS_BREAK 6 | |
| 479 #define DEBUG_STATUS_NO_DEBUGGEE 7 | |
| 480 #define DEBUG_STATUS_STEP_BRANCH 8 | |
| 481 #define DEBUG_STATUS_IGNORE_EVENT 9 | |
| 482 | |
| 483 #define DEBUG_STATUS_MASK 0xf | |
| 484 | |
| 485 #define DEBUG_STATUS_INSIDE_WAIT 0x100000000 | |
| 486 #define DEBUG_OUTCTL_THIS_CLIENT 0x00000000 | |
| 487 #define DEBUG_OUTCTL_ALL_CLIENTS 0x00000001 | |
| 488 #define DEBUG_OUTCTL_ALL_OTHER_CLIENTS 0x00000002 | |
| 489 #define DEBUG_OUTCTL_IGNORE 0x00000003 | |
| 490 #define DEBUG_OUTCTL_LOG_ONLY 0x00000004 | |
| 491 #define DEBUG_OUTCTL_SEND_MASK 0x00000007 | |
| 492 #define DEBUG_OUTCTL_NOT_LOGGED 0x00000008 | |
| 493 #define DEBUG_OUTCTL_OVERRIDE_MASK 0x00000010 | |
| 494 #define DEBUG_OUTCTL_AMBIENT 0xffffffff | |
| 495 | |
| 496 #define DEBUG_INTERRUPT_ACTIVE 0 | |
| 497 #define DEBUG_INTERRUPT_PASSIVE 1 | |
| 498 #define DEBUG_INTERRUPT_EXIT 2 | |
| 499 | |
| 500 #define DEBUG_CURRENT_DEFAULT 0x0000000f | |
| 501 #define DEBUG_CURRENT_SYMBOL 0x00000001 | |
| 502 #define DEBUG_CURRENT_DISASM 0x00000002 | |
| 503 #define DEBUG_CURRENT_REGISTERS 0x00000004 | |
| 504 #define DEBUG_CURRENT_SOURCE_LINE 0x00000008 | |
| 505 | |
| 506 #define DEBUG_DISASM_EFFECTIVE_ADDRESS 0x00000001 | |
| 507 #define DEBUG_DISASM_MATCHING_SYMBOLS 0x00000002 | |
| 508 | |
| 509 #define DEBUG_LEVEL_SOURCE 0 | |
| 510 #define DEBUG_LEVEL_ASSEMBLY 1 | |
| 511 | |
| 512 #define DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION 0x00000001 | |
| 513 #define DEBUG_ENGOPT_IGNORE_EXTENSION_VERSIONS 0x00000002 | |
| 514 | |
| 515 #define DEBUG_ENGOPT_ALLOW_NETWORK_PATHS 0x00000004 | |
| 516 #define DEBUG_ENGOPT_DISALLOW_NETWORK_PATHS 0x00000008 | |
| 517 #define DEBUG_ENGOPT_NETWORK_PATHS (0x00000004 | 0x00000008) | |
| 518 #define DEBUG_ENGOPT_IGNORE_LOADER_EXCEPTIONS 0x00000010 | |
| 519 #define DEBUG_ENGOPT_INITIAL_BREAK 0x00000020 | |
| 520 #define DEBUG_ENGOPT_INITIAL_MODULE_BREAK 0x00000040 | |
| 521 #define DEBUG_ENGOPT_FINAL_BREAK 0x00000080 | |
| 522 #define DEBUG_ENGOPT_NO_EXECUTE_REPEAT 0x00000100 | |
| 523 #define DEBUG_ENGOPT_FAIL_INCOMPLETE_INFORMATION 0x00000200 | |
| 524 #define DEBUG_ENGOPT_ALLOW_READ_ONLY_BREAKPOINTS 0x00000400 | |
| 525 #define DEBUG_ENGOPT_SYNCHRONIZE_BREAKPOINTS 0x00000800 | |
| 526 #define DEBUG_ENGOPT_DISALLOW_SHELL_COMMANDS 0x00001000 | |
| 527 #define DEBUG_ENGOPT_ALL 0x00001FFF | |
| 528 | |
| 529 #define DEBUG_ANY_ID 0xffffffff | |
| 530 | |
| 531 typedef struct _DEBUG_STACK_FRAME { | |
| 532 ULONG64 InstructionOffset; | |
| 533 ULONG64 ReturnOffset; | |
| 534 ULONG64 FrameOffset; | |
| 535 ULONG64 StackOffset; | |
| 536 ULONG64 FuncTableEntry; | |
| 537 ULONG64 Params[4]; | |
| 538 ULONG64 Reserved[6]; | |
| 539 WINBOOL Virtual; | |
| 540 ULONG FrameNumber; | |
| 541 } DEBUG_STACK_FRAME,*PDEBUG_STACK_FRAME; | |
| 542 | |
| 543 #define DEBUG_STACK_ARGUMENTS 0x00000001 | |
| 544 #define DEBUG_STACK_FUNCTION_INFO 0x00000002 | |
| 545 #define DEBUG_STACK_SOURCE_LINE 0x00000004 | |
| 546 #define DEBUG_STACK_FRAME_ADDRESSES 0x00000008 | |
| 547 #define DEBUG_STACK_COLUMN_NAMES 0x00000010 | |
| 548 #define DEBUG_STACK_NONVOLATILE_REGISTERS 0x00000020 | |
| 549 #define DEBUG_STACK_FRAME_NUMBERS 0x00000040 | |
| 550 #define DEBUG_STACK_PARAMETERS 0x00000080 | |
| 551 #define DEBUG_STACK_FRAME_ADDRESSES_RA_ONLY 0x00000100 | |
| 552 #define DEBUG_STACK_FRAME_MEMORY_USAGE 0x00000200 | |
| 553 | |
| 554 #define DEBUG_CLASS_UNINITIALIZED 0 | |
| 555 #define DEBUG_CLASS_KERNEL 1 | |
| 556 #define DEBUG_CLASS_USER_WINDOWS 2 | |
| 557 | |
| 558 #define DEBUG_DUMP_SMALL 1024 | |
| 559 #define DEBUG_DUMP_DEFAULT 1025 | |
| 560 #define DEBUG_DUMP_FULL 1026 | |
| 561 | |
| 562 #define DEBUG_KERNEL_CONNECTION 0 | |
| 563 #define DEBUG_KERNEL_LOCAL 1 | |
| 564 #define DEBUG_KERNEL_EXDI_DRIVER 2 | |
| 565 #define DEBUG_KERNEL_SMALL_DUMP DEBUG_DUMP_SMALL | |
| 566 #define DEBUG_KERNEL_DUMP DEBUG_DUMP_DEFAULT | |
| 567 #define DEBUG_KERNEL_FULL_DUMP DEBUG_DUMP_FULL | |
| 568 | |
| 569 #define DEBUG_USER_WINDOWS_PROCESS 0 | |
| 570 #define DEBUG_USER_WINDOWS_PROCESS_SERVER 1 | |
| 571 #define DEBUG_USER_WINDOWS_SMALL_DUMP DEBUG_DUMP_SMALL | |
| 572 #define DEBUG_USER_WINDOWS_DUMP DEBUG_DUMP_DEFAULT | |
| 573 | |
| 574 #define DEBUG_EXTENSION_AT_ENGINE 0x00000000 | |
| 575 | |
| 576 #define DEBUG_EXECUTE_DEFAULT 0x00000000 | |
| 577 #define DEBUG_EXECUTE_ECHO 0x00000001 | |
| 578 #define DEBUG_EXECUTE_NOT_LOGGED 0x00000002 | |
| 579 #define DEBUG_EXECUTE_NO_REPEAT 0x00000004 | |
| 580 | |
| 581 #define DEBUG_FILTER_CREATE_THREAD 0x00000000 | |
| 582 #define DEBUG_FILTER_EXIT_THREAD 0x00000001 | |
| 583 #define DEBUG_FILTER_CREATE_PROCESS 0x00000002 | |
| 584 #define DEBUG_FILTER_EXIT_PROCESS 0x00000003 | |
| 585 #define DEBUG_FILTER_LOAD_MODULE 0x00000004 | |
| 586 #define DEBUG_FILTER_UNLOAD_MODULE 0x00000005 | |
| 587 #define DEBUG_FILTER_SYSTEM_ERROR 0x00000006 | |
| 588 #define DEBUG_FILTER_INITIAL_BREAKPOINT 0x00000007 | |
| 589 #define DEBUG_FILTER_INITIAL_MODULE_LOAD 0x00000008 | |
| 590 #define DEBUG_FILTER_DEBUGGEE_OUTPUT 0x00000009 | |
| 591 | |
| 592 #define DEBUG_FILTER_BREAK 0x00000000 | |
| 593 | |
| 594 #define DEBUG_FILTER_SECOND_CHANCE_BREAK 0x00000001 | |
| 595 #define DEBUG_FILTER_OUTPUT 0x00000002 | |
| 596 #define DEBUG_FILTER_IGNORE 0x00000003 | |
| 597 #define DEBUG_FILTER_REMOVE 0x00000004 | |
| 598 | |
| 599 #define DEBUG_FILTER_GO_HANDLED 0x00000000 | |
| 600 #define DEBUG_FILTER_GO_NOT_HANDLED 0x00000001 | |
| 601 | |
| 602 typedef struct _DEBUG_SPECIFIC_FILTER_PARAMETERS { | |
| 603 ULONG ExecutionOption; | |
| 604 ULONG ContinueOption; | |
| 605 ULONG TextSize; | |
| 606 ULONG CommandSize; | |
| 607 ULONG ArgumentSize; | |
| 608 } DEBUG_SPECIFIC_FILTER_PARAMETERS,*PDEBUG_SPECIFIC_FILTER_PARAMETERS; | |
| 609 | |
| 610 typedef struct _DEBUG_EXCEPTION_FILTER_PARAMETERS { | |
| 611 ULONG ExecutionOption; | |
| 612 ULONG ContinueOption; | |
| 613 ULONG TextSize; | |
| 614 ULONG CommandSize; | |
| 615 ULONG SecondCommandSize; | |
| 616 ULONG ExceptionCode; | |
| 617 } DEBUG_EXCEPTION_FILTER_PARAMETERS,*PDEBUG_EXCEPTION_FILTER_PARAMETERS; | |
| 618 | |
| 619 #define DEBUG_WAIT_DEFAULT 0x00000000 | |
| 620 | |
| 621 typedef struct _DEBUG_LAST_EVENT_INFO_BREAKPOINT { | |
| 622 ULONG Id; | |
| 623 } DEBUG_LAST_EVENT_INFO_BREAKPOINT,*PDEBUG_LAST_EVENT_INFO_BREAKPOINT; | |
| 624 | |
| 625 typedef struct _DEBUG_LAST_EVENT_INFO_EXCEPTION { | |
| 626 EXCEPTION_RECORD64 ExceptionRecord; | |
| 627 ULONG FirstChance; | |
| 628 } DEBUG_LAST_EVENT_INFO_EXCEPTION,*PDEBUG_LAST_EVENT_INFO_EXCEPTION; | |
| 629 | |
| 630 typedef struct _DEBUG_LAST_EVENT_INFO_EXIT_THREAD { | |
| 631 ULONG ExitCode; | |
| 632 } DEBUG_LAST_EVENT_INFO_EXIT_THREAD,*PDEBUG_LAST_EVENT_INFO_EXIT_THREAD; | |
| 633 | |
| 634 typedef struct _DEBUG_LAST_EVENT_INFO_EXIT_PROCESS { | |
| 635 ULONG ExitCode; | |
| 636 } DEBUG_LAST_EVENT_INFO_EXIT_PROCESS,*PDEBUG_LAST_EVENT_INFO_EXIT_PROCESS; | |
| 637 | |
| 638 typedef struct _DEBUG_LAST_EVENT_INFO_LOAD_MODULE { | |
| 639 ULONG64 Base; | |
| 640 } DEBUG_LAST_EVENT_INFO_LOAD_MODULE,*PDEBUG_LAST_EVENT_INFO_LOAD_MODULE; | |
| 641 | |
| 642 typedef struct _DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE { | |
| 643 ULONG64 Base; | |
| 644 } DEBUG_LAST_EVENT_INFO_UNLOAD_MODULE,*PDEBUG_LAST_EVENT_INFO_UNLOAD_MODULE; | |
| 645 | |
| 646 typedef struct _DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR { | |
| 647 ULONG Error; | |
| 648 ULONG Level; | |
| 649 } DEBUG_LAST_EVENT_INFO_SYSTEM_ERROR,*PDEBUG_LAST_EVENT_INFO_SYSTEM_ERROR; | |
| 650 | |
| 651 #define DEBUG_VALUE_INVALID 0 | |
| 652 #define DEBUG_VALUE_INT8 1 | |
| 653 #define DEBUG_VALUE_INT16 2 | |
| 654 #define DEBUG_VALUE_INT32 3 | |
| 655 #define DEBUG_VALUE_INT64 4 | |
| 656 #define DEBUG_VALUE_FLOAT32 5 | |
| 657 #define DEBUG_VALUE_FLOAT64 6 | |
| 658 #define DEBUG_VALUE_FLOAT80 7 | |
| 659 #define DEBUG_VALUE_FLOAT82 8 | |
| 660 #define DEBUG_VALUE_FLOAT128 9 | |
| 661 #define DEBUG_VALUE_VECTOR64 10 | |
| 662 #define DEBUG_VALUE_VECTOR128 11 | |
| 663 | |
| 664 #define DEBUG_VALUE_TYPES 12 | |
| 665 | |
| 666 typedef struct _DEBUG_VALUE { | |
| 667 __MINGW_EXTENSION union { | |
| 668 UCHAR I8; | |
| 669 USHORT I16; | |
| 670 ULONG I32; | |
| 671 __MINGW_EXTENSION struct { | |
| 672 ULONG64 I64; | |
| 673 WINBOOL Nat; | |
| 674 }; | |
| 675 float F32; | |
| 676 double F64; | |
| 677 UCHAR F80Bytes[10]; | |
| 678 UCHAR F82Bytes[11]; | |
| 679 UCHAR F128Bytes[16]; | |
| 680 UCHAR VI8[16]; | |
| 681 USHORT VI16[8]; | |
| 682 ULONG VI32[4]; | |
| 683 ULONG64 VI64[2]; | |
| 684 float VF32[4]; | |
| 685 double VF64[2]; | |
| 686 struct { | |
| 687 ULONG LowPart; | |
| 688 ULONG HighPart; | |
| 689 } I64Parts32; | |
| 690 struct { | |
| 691 ULONG64 LowPart; | |
| 692 LONG64 HighPart; | |
| 693 } F128Parts64; | |
| 694 UCHAR RawBytes[24]; | |
| 695 }; | |
| 696 ULONG TailOfRawBytes; | |
| 697 ULONG Type; | |
| 698 } DEBUG_VALUE,*PDEBUG_VALUE; | |
| 699 | |
| 700 #undef INTERFACE | |
| 701 #define INTERFACE IDebugControl | |
| 702 DECLARE_INTERFACE_(IDebugControl,IUnknown) { | |
| 703 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 704 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 705 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 706 STDMETHOD(GetInterrupt)(THIS) PURE; | |
| 707 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE; | |
| 708 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE; | |
| 709 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE; | |
| 710 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG FileSize,PBOOL Append) PURE; | |
| 711 STDMETHOD(OpenLogFile)(THIS_ PCSTR File,WINBOOL Append) PURE; | |
| 712 STDMETHOD(CloseLogFile)(THIS) PURE; | |
| 713 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE; | |
| 714 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE; | |
| 715 STDMETHOD(Input)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG InputSize) PURE; | |
| 716 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE; | |
| 717 STDMETHODV(Output)(THIS_ ULONG Mask,PCSTR Format,...) PURE; | |
| 718 STDMETHOD(OutputVaList)(THIS_ ULONG Mask,PCSTR Format,va_list Args) PURE; | |
| 719 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,...) PURE; | |
| 720 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,va_list Args) PURE; | |
| 721 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl,PCSTR Format,...) PURE; | |
| 722 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl,PCSTR Format,va_list Args) PURE; | |
| 723 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE; | |
| 724 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl,ULONG Flags) PURE; | |
| 725 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE; | |
| 726 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE; | |
| 727 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE; | |
| 728 STDMETHOD(Assemble)(THIS_ ULONG64 Offset,PCSTR Instr,PULONG64 EndOffset) PURE; | |
| 729 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset,ULONG Flags,PSTR Buffer,ULONG BufferSize,PULONG DisassemblySize,PULONG64 EndOffset) PURE; | |
| 730 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE; | |
| 731 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG Flags,PULONG64 EndOffset) PURE; | |
| 732 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl,ULONG PreviousLines,ULONG TotalLines,ULONG64 Offset,ULONG Flags,PULONG OffsetLine,PULONG64 StartOffset,PULONG64 EndOffset,PULONG64 LineOffsets) PURE; | |
| 733 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset,LONG Delta,PULONG64 NearOffset) PURE; | |
| 734 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset,ULONG64 StackOffset,ULONG64 InstructionOffset,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,PULONG FramesFilled) PURE; | |
| 735 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE; | |
| 736 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,ULONG Flags) PURE; | |
| 737 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class,PULONG Qualifier) PURE; | |
| 738 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE; | |
| 739 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE; | |
| 740 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE; | |
| 741 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE; | |
| 742 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE; | |
| 743 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId,PULONG Major,PULONG Minor,PSTR ServicePackString,ULONG ServicePackStringSize,PULONG ServicePackStringUsed,PULONG ServicePackNumber,PSTR BuildString,ULONG BuildStringSize,PULONG BuildStringUsed) PURE; | |
| 744 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE; | |
| 745 STDMETHOD(IsPointer64Bit)(THIS) PURE; | |
| 746 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code,PULONG64 Arg1,PULONG64 Arg2,PULONG64 Arg3,PULONG64 Arg4) PURE; | |
| 747 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE; | |
| 748 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE; | |
| 749 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type,PSTR FullNameBuffer,ULONG FullNameBufferSize,PULONG FullNameSize,PSTR AbbrevNameBuffer,ULONG AbbrevNameBufferSize,PULONG AbbrevNameSize) PURE; | |
| 750 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE; | |
| 751 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE; | |
| 752 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE; | |
| 753 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE; | |
| 754 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE; | |
| 755 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE; | |
| 756 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE; | |
| 757 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE; | |
| 758 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE; | |
| 759 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE; | |
| 760 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel,PULONG BreakLevel) PURE; | |
| 761 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel,ULONG BreakLevel) PURE; | |
| 762 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot,PSTR Buffer,ULONG BufferSize,PULONG MacroSize) PURE; | |
| 763 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot,PCSTR Macro) PURE; | |
| 764 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE; | |
| 765 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE; | |
| 766 STDMETHOD(Evaluate)(THIS_ PCSTR Expression,ULONG DesiredType,PDEBUG_VALUE Value,PULONG RemainderIndex) PURE; | |
| 767 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In,ULONG OutType,PDEBUG_VALUE Out) PURE; | |
| 768 STDMETHOD(CoerceValues)(THIS_ ULONG Count,PDEBUG_VALUE In,PULONG OutTypes,PDEBUG_VALUE Out) PURE; | |
| 769 STDMETHOD(Execute)(THIS_ ULONG OutputControl,PCSTR Command,ULONG Flags) PURE; | |
| 770 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl,PCSTR CommandFile,ULONG Flags) PURE; | |
| 771 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE; | |
| 772 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 773 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 774 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count,PULONG Ids,ULONG Start,PDEBUG_BREAKPOINT_PARAMETERS Params) PURE; | |
| 775 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type,ULONG DesiredId,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 776 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE; | |
| 777 STDMETHOD(AddExtension)(THIS_ PCSTR Path,ULONG Flags,PULONG64 Handle) PURE; | |
| 778 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE; | |
| 779 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path,PULONG64 Handle) PURE; | |
| 780 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle,PCSTR Function,PCSTR Arguments) PURE; | |
| 781 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle,PCSTR FuncName,FARPROC *Function) PURE; | |
| 782 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE; | |
| 783 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE; | |
| 784 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents,PULONG SpecificExceptions,PULONG ArbitraryExceptions) PURE; | |
| 785 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE; | |
| 786 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE; | |
| 787 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index,PCSTR Command) PURE; | |
| 788 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE; | |
| 789 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE; | |
| 790 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ArgumentSize) PURE; | |
| 791 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index,PCSTR Argument) PURE; | |
| 792 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count,PULONG Codes,ULONG Start,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE; | |
| 793 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE; | |
| 794 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE; | |
| 795 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index,PCSTR Command) PURE; | |
| 796 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags,ULONG Timeout) PURE; | |
| 797 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type,PULONG ProcessId,PULONG ThreadId,PVOID ExtraInformation,ULONG ExtraInformationSize,PULONG ExtraInformationUsed,PSTR Description,ULONG DescriptionSize,PULONG DescriptionUsed) PURE; | |
| 798 }; | |
| 799 | |
| 800 #define DEBUG_OUT_TEXT_REPL_DEFAULT 0x00000000 | |
| 801 | |
| 802 #undef INTERFACE | |
| 803 #define INTERFACE IDebugControl2 | |
| 804 DECLARE_INTERFACE_(IDebugControl2,IUnknown) { | |
| 805 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 806 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 807 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 808 STDMETHOD(GetInterrupt)(THIS) PURE; | |
| 809 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE; | |
| 810 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE; | |
| 811 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE; | |
| 812 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG FileSize,PBOOL Append) PURE; | |
| 813 STDMETHOD(OpenLogFile)(THIS_ PCSTR File,WINBOOL Append) PURE; | |
| 814 STDMETHOD(CloseLogFile)(THIS) PURE; | |
| 815 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE; | |
| 816 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE; | |
| 817 STDMETHOD(Input)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG InputSize) PURE; | |
| 818 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE; | |
| 819 STDMETHODV(Output)(THIS_ ULONG Mask,PCSTR Format,...) PURE; | |
| 820 STDMETHOD(OutputVaList)(THIS_ ULONG Mask,PCSTR Format,va_list Args) PURE; | |
| 821 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,...) PURE; | |
| 822 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,va_list Args) PURE; | |
| 823 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl,PCSTR Format,...) PURE; | |
| 824 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl,PCSTR Format,va_list Args) PURE; | |
| 825 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE; | |
| 826 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl,ULONG Flags) PURE; | |
| 827 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE; | |
| 828 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE; | |
| 829 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE; | |
| 830 STDMETHOD(Assemble)(THIS_ ULONG64 Offset,PCSTR Instr,PULONG64 EndOffset) PURE; | |
| 831 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset,ULONG Flags,PSTR Buffer,ULONG BufferSize,PULONG DisassemblySize,PULONG64 EndOffset) PURE; | |
| 832 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE; | |
| 833 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG Flags,PULONG64 EndOffset) PURE; | |
| 834 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl,ULONG PreviousLines,ULONG TotalLines,ULONG64 Offset,ULONG Flags,PULONG OffsetLine,PULONG64 StartOffset,PULONG64 EndOffset,PULONG64 LineOffsets) PURE; | |
| 835 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset,LONG Delta,PULONG64 NearOffset) PURE; | |
| 836 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset,ULONG64 StackOffset,ULONG64 InstructionOffset,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,PULONG FramesFilled) PURE; | |
| 837 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE; | |
| 838 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,ULONG Flags) PURE; | |
| 839 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class,PULONG Qualifier) PURE; | |
| 840 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE; | |
| 841 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE; | |
| 842 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE; | |
| 843 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE; | |
| 844 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE; | |
| 845 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId,PULONG Major,PULONG Minor,PSTR ServicePackString,ULONG ServicePackStringSize,PULONG ServicePackStringUsed,PULONG ServicePackNumber,PSTR BuildString,ULONG BuildStringSize,PULONG BuildStringUsed) PURE; | |
| 846 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE; | |
| 847 STDMETHOD(IsPointer64Bit)(THIS) PURE; | |
| 848 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code,PULONG64 Arg1,PULONG64 Arg2,PULONG64 Arg3,PULONG64 Arg4) PURE; | |
| 849 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE; | |
| 850 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE; | |
| 851 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type,PSTR FullNameBuffer,ULONG FullNameBufferSize,PULONG FullNameSize,PSTR AbbrevNameBuffer,ULONG AbbrevNameBufferSize,PULONG AbbrevNameSize) PURE; | |
| 852 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE; | |
| 853 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE; | |
| 854 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE; | |
| 855 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE; | |
| 856 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE; | |
| 857 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE; | |
| 858 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE; | |
| 859 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE; | |
| 860 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE; | |
| 861 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE; | |
| 862 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel,PULONG BreakLevel) PURE; | |
| 863 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel,ULONG BreakLevel) PURE; | |
| 864 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot,PSTR Buffer,ULONG BufferSize,PULONG MacroSize) PURE; | |
| 865 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot,PCSTR Macro) PURE; | |
| 866 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE; | |
| 867 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE; | |
| 868 STDMETHOD(Evaluate)(THIS_ PCSTR Expression,ULONG DesiredType,PDEBUG_VALUE Value,PULONG RemainderIndex) PURE; | |
| 869 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In,ULONG OutType,PDEBUG_VALUE Out) PURE; | |
| 870 STDMETHOD(CoerceValues)(THIS_ ULONG Count,PDEBUG_VALUE In,PULONG OutTypes,PDEBUG_VALUE Out) PURE; | |
| 871 STDMETHOD(Execute)(THIS_ ULONG OutputControl,PCSTR Command,ULONG Flags) PURE; | |
| 872 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl,PCSTR CommandFile,ULONG Flags) PURE; | |
| 873 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE; | |
| 874 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 875 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 876 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count,PULONG Ids,ULONG Start,PDEBUG_BREAKPOINT_PARAMETERS Params) PURE; | |
| 877 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type,ULONG DesiredId,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 878 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE; | |
| 879 STDMETHOD(AddExtension)(THIS_ PCSTR Path,ULONG Flags,PULONG64 Handle) PURE; | |
| 880 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE; | |
| 881 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path,PULONG64 Handle) PURE; | |
| 882 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle,PCSTR Function,PCSTR Arguments) PURE; | |
| 883 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle,PCSTR FuncName,FARPROC *Function) PURE; | |
| 884 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE; | |
| 885 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE; | |
| 886 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents,PULONG SpecificExceptions,PULONG ArbitraryExceptions) PURE; | |
| 887 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE; | |
| 888 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE; | |
| 889 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index,PCSTR Command) PURE; | |
| 890 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE; | |
| 891 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE; | |
| 892 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ArgumentSize) PURE; | |
| 893 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index,PCSTR Argument) PURE; | |
| 894 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count,PULONG Codes,ULONG Start,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE; | |
| 895 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE; | |
| 896 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE; | |
| 897 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index,PCSTR Command) PURE; | |
| 898 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags,ULONG Timeout) PURE; | |
| 899 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type,PULONG ProcessId,PULONG ThreadId,PVOID ExtraInformation,ULONG ExtraInformationSize,PULONG ExtraInformationUsed,PSTR Description,ULONG DescriptionSize,PULONG DescriptionUsed) PURE; | |
| 900 STDMETHOD(GetCurrentTimeDate)(THIS_ PULONG TimeDate) PURE; | |
| 901 STDMETHOD(GetCurrentSystemUpTime)(THIS_ PULONG UpTime) PURE; | |
| 902 STDMETHOD(GetDumpFormatFlags)(THIS_ PULONG FormatFlags) PURE; | |
| 903 STDMETHOD(GetNumberTextReplacements)(THIS_ PULONG NumRepl) PURE; | |
| 904 STDMETHOD(GetTextReplacement)(THIS_ PCSTR SrcText,ULONG Index,PSTR SrcBuffer,ULONG SrcBufferSize,PULONG SrcSize,PSTR DstBuffer,ULONG DstBufferSize,PULONG DstSize) PURE; | |
| 905 STDMETHOD(SetTextReplacement)(THIS_ PCSTR SrcText,PCSTR DstText) PURE; | |
| 906 STDMETHOD(RemoveTextReplacements)(THIS) PURE; | |
| 907 STDMETHOD(OutputTextReplacements)(THIS_ ULONG OutputControl,ULONG Flags) PURE; | |
| 908 }; | |
| 909 | |
| 910 #define DEBUG_ASMOPT_DEFAULT 0x00000000 | |
| 911 #define DEBUG_ASMOPT_VERBOSE 0x00000001 | |
| 912 #define DEBUG_ASMOPT_NO_CODE_BYTES 0x00000002 | |
| 913 #define DEBUG_ASMOPT_IGNORE_OUTPUT_WIDTH 0x00000004 | |
| 914 | |
| 915 #define DEBUG_EXPR_MASM 0x00000000 | |
| 916 #define DEBUG_EXPR_CPLUSPLUS 0x00000001 | |
| 917 | |
| 918 #define DEBUG_EINDEX_NAME 0x00000000 | |
| 919 #define DEBUG_EINDEX_FROM_START 0x00000000 | |
| 920 #define DEBUG_EINDEX_FROM_END 0x00000001 | |
| 921 #define DEBUG_EINDEX_FROM_CURRENT 0x00000002 | |
| 922 | |
| 923 #undef INTERFACE | |
| 924 #define INTERFACE IDebugControl3 | |
| 925 DECLARE_INTERFACE_(IDebugControl3,IUnknown) { | |
| 926 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 927 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 928 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 929 STDMETHOD(GetInterrupt)(THIS) PURE; | |
| 930 STDMETHOD(SetInterrupt)(THIS_ ULONG Flags) PURE; | |
| 931 STDMETHOD(GetInterruptTimeout)(THIS_ PULONG Seconds) PURE; | |
| 932 STDMETHOD(SetInterruptTimeout)(THIS_ ULONG Seconds) PURE; | |
| 933 STDMETHOD(GetLogFile)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG FileSize,PBOOL Append) PURE; | |
| 934 STDMETHOD(OpenLogFile)(THIS_ PCSTR File,WINBOOL Append) PURE; | |
| 935 STDMETHOD(CloseLogFile)(THIS) PURE; | |
| 936 STDMETHOD(GetLogMask)(THIS_ PULONG Mask) PURE; | |
| 937 STDMETHOD(SetLogMask)(THIS_ ULONG Mask) PURE; | |
| 938 STDMETHOD(Input)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG InputSize) PURE; | |
| 939 STDMETHOD(ReturnInput)(THIS_ PCSTR Buffer) PURE; | |
| 940 STDMETHODV(Output)(THIS_ ULONG Mask,PCSTR Format,...) PURE; | |
| 941 STDMETHOD(OutputVaList)(THIS_ ULONG Mask,PCSTR Format,va_list Args) PURE; | |
| 942 STDMETHODV(ControlledOutput)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,...) PURE; | |
| 943 STDMETHOD(ControlledOutputVaList)(THIS_ ULONG OutputControl,ULONG Mask,PCSTR Format,va_list Args) PURE; | |
| 944 STDMETHODV(OutputPrompt)(THIS_ ULONG OutputControl,PCSTR Format,...) PURE; | |
| 945 STDMETHOD(OutputPromptVaList)(THIS_ ULONG OutputControl,PCSTR Format,va_list Args) PURE; | |
| 946 STDMETHOD(GetPromptText)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE; | |
| 947 STDMETHOD(OutputCurrentState)(THIS_ ULONG OutputControl,ULONG Flags) PURE; | |
| 948 STDMETHOD(OutputVersionInformation)(THIS_ ULONG OutputControl) PURE; | |
| 949 STDMETHOD(GetNotifyEventHandle)(THIS_ PULONG64 Handle) PURE; | |
| 950 STDMETHOD(SetNotifyEventHandle)(THIS_ ULONG64 Handle) PURE; | |
| 951 STDMETHOD(Assemble)(THIS_ ULONG64 Offset,PCSTR Instr,PULONG64 EndOffset) PURE; | |
| 952 STDMETHOD(Disassemble)(THIS_ ULONG64 Offset,ULONG Flags,PSTR Buffer,ULONG BufferSize,PULONG DisassemblySize,PULONG64 EndOffset) PURE; | |
| 953 STDMETHOD(GetDisassembleEffectiveOffset)(THIS_ PULONG64 Offset) PURE; | |
| 954 STDMETHOD(OutputDisassembly)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG Flags,PULONG64 EndOffset) PURE; | |
| 955 STDMETHOD(OutputDisassemblyLines)(THIS_ ULONG OutputControl,ULONG PreviousLines,ULONG TotalLines,ULONG64 Offset,ULONG Flags,PULONG OffsetLine,PULONG64 StartOffset,PULONG64 EndOffset,PULONG64 LineOffsets) PURE; | |
| 956 STDMETHOD(GetNearInstruction)(THIS_ ULONG64 Offset,LONG Delta,PULONG64 NearOffset) PURE; | |
| 957 STDMETHOD(GetStackTrace)(THIS_ ULONG64 FrameOffset,ULONG64 StackOffset,ULONG64 InstructionOffset,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,PULONG FramesFilled) PURE; | |
| 958 STDMETHOD(GetReturnOffset)(THIS_ PULONG64 Offset) PURE; | |
| 959 STDMETHOD(OutputStackTrace)(THIS_ ULONG OutputControl,PDEBUG_STACK_FRAME Frames,ULONG FramesSize,ULONG Flags) PURE; | |
| 960 STDMETHOD(GetDebuggeeType)(THIS_ PULONG Class,PULONG Qualifier) PURE; | |
| 961 STDMETHOD(GetActualProcessorType)(THIS_ PULONG Type) PURE; | |
| 962 STDMETHOD(GetExecutingProcessorType)(THIS_ PULONG Type) PURE; | |
| 963 STDMETHOD(GetNumberPossibleExecutingProcessorTypes)(THIS_ PULONG Number) PURE; | |
| 964 STDMETHOD(GetPossibleExecutingProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE; | |
| 965 STDMETHOD(GetNumberProcessors)(THIS_ PULONG Number) PURE; | |
| 966 STDMETHOD(GetSystemVersion)(THIS_ PULONG PlatformId,PULONG Major,PULONG Minor,PSTR ServicePackString,ULONG ServicePackStringSize,PULONG ServicePackStringUsed,PULONG ServicePackNumber,PSTR BuildString,ULONG BuildStringSize,PULONG BuildStringUsed) PURE; | |
| 967 STDMETHOD(GetPageSize)(THIS_ PULONG Size) PURE; | |
| 968 STDMETHOD(IsPointer64Bit)(THIS) PURE; | |
| 969 STDMETHOD(ReadBugCheckData)(THIS_ PULONG Code,PULONG64 Arg1,PULONG64 Arg2,PULONG64 Arg3,PULONG64 Arg4) PURE; | |
| 970 STDMETHOD(GetNumberSupportedProcessorTypes)(THIS_ PULONG Number) PURE; | |
| 971 STDMETHOD(GetSupportedProcessorTypes)(THIS_ ULONG Start,ULONG Count,PULONG Types) PURE; | |
| 972 STDMETHOD(GetProcessorTypeNames)(THIS_ ULONG Type,PSTR FullNameBuffer,ULONG FullNameBufferSize,PULONG FullNameSize,PSTR AbbrevNameBuffer,ULONG AbbrevNameBufferSize,PULONG AbbrevNameSize) PURE; | |
| 973 STDMETHOD(GetEffectiveProcessorType)(THIS_ PULONG Type) PURE; | |
| 974 STDMETHOD(SetEffectiveProcessorType)(THIS_ ULONG Type) PURE; | |
| 975 STDMETHOD(GetExecutionStatus)(THIS_ PULONG Status) PURE; | |
| 976 STDMETHOD(SetExecutionStatus)(THIS_ ULONG Status) PURE; | |
| 977 STDMETHOD(GetCodeLevel)(THIS_ PULONG Level) PURE; | |
| 978 STDMETHOD(SetCodeLevel)(THIS_ ULONG Level) PURE; | |
| 979 STDMETHOD(GetEngineOptions)(THIS_ PULONG Options) PURE; | |
| 980 STDMETHOD(AddEngineOptions)(THIS_ ULONG Options) PURE; | |
| 981 STDMETHOD(RemoveEngineOptions)(THIS_ ULONG Options) PURE; | |
| 982 STDMETHOD(SetEngineOptions)(THIS_ ULONG Options) PURE; | |
| 983 STDMETHOD(GetSystemErrorControl)(THIS_ PULONG OutputLevel,PULONG BreakLevel) PURE; | |
| 984 STDMETHOD(SetSystemErrorControl)(THIS_ ULONG OutputLevel,ULONG BreakLevel) PURE; | |
| 985 STDMETHOD(GetTextMacro)(THIS_ ULONG Slot,PSTR Buffer,ULONG BufferSize,PULONG MacroSize) PURE; | |
| 986 STDMETHOD(SetTextMacro)(THIS_ ULONG Slot,PCSTR Macro) PURE; | |
| 987 STDMETHOD(GetRadix)(THIS_ PULONG Radix) PURE; | |
| 988 STDMETHOD(SetRadix)(THIS_ ULONG Radix) PURE; | |
| 989 STDMETHOD(Evaluate)(THIS_ PCSTR Expression,ULONG DesiredType,PDEBUG_VALUE Value,PULONG RemainderIndex) PURE; | |
| 990 STDMETHOD(CoerceValue)(THIS_ PDEBUG_VALUE In,ULONG OutType,PDEBUG_VALUE Out) PURE; | |
| 991 STDMETHOD(CoerceValues)(THIS_ ULONG Count,PDEBUG_VALUE In,PULONG OutTypes,PDEBUG_VALUE Out) PURE; | |
| 992 STDMETHOD(Execute)(THIS_ ULONG OutputControl,PCSTR Command,ULONG Flags) PURE; | |
| 993 STDMETHOD(ExecuteCommandFile)(THIS_ ULONG OutputControl,PCSTR CommandFile,ULONG Flags) PURE; | |
| 994 STDMETHOD(GetNumberBreakpoints)(THIS_ PULONG Number) PURE; | |
| 995 STDMETHOD(GetBreakpointByIndex)(THIS_ ULONG Index,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 996 STDMETHOD(GetBreakpointById)(THIS_ ULONG Id,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 997 STDMETHOD(GetBreakpointParameters)(THIS_ ULONG Count,PULONG Ids,ULONG Start,PDEBUG_BREAKPOINT_PARAMETERS Params) PURE; | |
| 998 STDMETHOD(AddBreakpoint)(THIS_ ULONG Type,ULONG DesiredId,PDEBUG_BREAKPOINT *Bp) PURE; | |
| 999 STDMETHOD(RemoveBreakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE; | |
| 1000 STDMETHOD(AddExtension)(THIS_ PCSTR Path,ULONG Flags,PULONG64 Handle) PURE; | |
| 1001 STDMETHOD(RemoveExtension)(THIS_ ULONG64 Handle) PURE; | |
| 1002 STDMETHOD(GetExtensionByPath)(THIS_ PCSTR Path,PULONG64 Handle) PURE; | |
| 1003 STDMETHOD(CallExtension)(THIS_ ULONG64 Handle,PCSTR Function,PCSTR Arguments) PURE; | |
| 1004 STDMETHOD(GetExtensionFunction)(THIS_ ULONG64 Handle,PCSTR FuncName,FARPROC *Function) PURE; | |
| 1005 STDMETHOD(GetWindbgExtensionApis32)(THIS_ PWINDBG_EXTENSION_APIS32 Api) PURE; | |
| 1006 STDMETHOD(GetWindbgExtensionApis64)(THIS_ PWINDBG_EXTENSION_APIS64 Api) PURE; | |
| 1007 STDMETHOD(GetNumberEventFilters)(THIS_ PULONG SpecificEvents,PULONG SpecificExceptions,PULONG ArbitraryExceptions) PURE; | |
| 1008 STDMETHOD(GetEventFilterText)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG TextSize) PURE; | |
| 1009 STDMETHOD(GetEventFilterCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE; | |
| 1010 STDMETHOD(SetEventFilterCommand)(THIS_ ULONG Index,PCSTR Command) PURE; | |
| 1011 STDMETHOD(GetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE; | |
| 1012 STDMETHOD(SetSpecificFilterParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SPECIFIC_FILTER_PARAMETERS Params) PURE; | |
| 1013 STDMETHOD(GetSpecificFilterArgument)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ArgumentSize) PURE; | |
| 1014 STDMETHOD(SetSpecificFilterArgument)(THIS_ ULONG Index,PCSTR Argument) PURE; | |
| 1015 STDMETHOD(GetExceptionFilterParameters)(THIS_ ULONG Count,PULONG Codes,ULONG Start,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE; | |
| 1016 STDMETHOD(SetExceptionFilterParameters)(THIS_ ULONG Count,PDEBUG_EXCEPTION_FILTER_PARAMETERS Params) PURE; | |
| 1017 STDMETHOD(GetExceptionFilterSecondCommand)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG CommandSize) PURE; | |
| 1018 STDMETHOD(SetExceptionFilterSecondCommand)(THIS_ ULONG Index,PCSTR Command) PURE; | |
| 1019 STDMETHOD(WaitForEvent)(THIS_ ULONG Flags,ULONG Timeout) PURE; | |
| 1020 STDMETHOD(GetLastEventInformation)(THIS_ PULONG Type,PULONG ProcessId,PULONG ThreadId,PVOID ExtraInformation,ULONG ExtraInformationSize,PULONG ExtraInformationUsed,PSTR Description,ULONG DescriptionSize,PULONG DescriptionUsed) PURE; | |
| 1021 STDMETHOD(GetCurrentTimeDate)(THIS_ PULONG TimeDate) PURE; | |
| 1022 STDMETHOD(GetCurrentSystemUpTime)(THIS_ PULONG UpTime) PURE; | |
| 1023 STDMETHOD(GetDumpFormatFlags)(THIS_ PULONG FormatFlags) PURE; | |
| 1024 STDMETHOD(GetNumberTextReplacements)(THIS_ PULONG NumRepl) PURE; | |
| 1025 STDMETHOD(GetTextReplacement)(THIS_ PCSTR SrcText,ULONG Index,PSTR SrcBuffer,ULONG SrcBufferSize,PULONG SrcSize,PSTR DstBuffer,ULONG DstBufferSize,PULONG DstSize) PURE; | |
| 1026 STDMETHOD(SetTextReplacement)(THIS_ PCSTR SrcText,PCSTR DstText) PURE; | |
| 1027 STDMETHOD(RemoveTextReplacements)(THIS) PURE; | |
| 1028 STDMETHOD(OutputTextReplacements)(THIS_ ULONG OutputControl,ULONG Flags) PURE; | |
| 1029 STDMETHOD(GetAssemblyOptions)(THIS_ PULONG Options) PURE; | |
| 1030 STDMETHOD(AddAssemblyOptions)(THIS_ ULONG Options) PURE; | |
| 1031 STDMETHOD(RemoveAssemblyOptions)(THIS_ ULONG Options) PURE; | |
| 1032 STDMETHOD(SetAssemblyOptions)(THIS_ ULONG Options) PURE; | |
| 1033 STDMETHOD(GetExpressionSyntax)(THIS_ PULONG Flags) PURE; | |
| 1034 STDMETHOD(SetExpressionSyntax)(THIS_ ULONG Flags) PURE; | |
| 1035 STDMETHOD(SetExpressionSyntaxByName)(THIS_ PCSTR AbbrevName) PURE; | |
| 1036 STDMETHOD(GetNumberExpressionSyntaxes)(THIS_ PULONG Number) PURE; | |
| 1037 STDMETHOD(GetExpressionSyntaxNames)(THIS_ ULONG Index,PSTR FullNameBuffer,ULONG FullNameBufferSize,PULONG FullNameSize,PSTR AbbrevNameBuffer,ULONG AbbrevNameBufferSize,PULONG AbbrevNameSize) PURE; | |
| 1038 STDMETHOD(GetNumberEvents)(THIS_ PULONG Events) PURE; | |
| 1039 STDMETHOD(GetEventIndexDescription)(THIS_ ULONG Index,ULONG Which,PSTR Buffer,ULONG BufferSize,PULONG DescSize) PURE; | |
| 1040 STDMETHOD(GetCurrentEventIndex)(THIS_ PULONG Index) PURE; | |
| 1041 STDMETHOD(SetNextEventIndex)(THIS_ ULONG Relation,ULONG Value,PULONG NextIndex) PURE; | |
| 1042 }; | |
| 1043 | |
| 1044 #define DEBUG_DATA_SPACE_VIRTUAL 0 | |
| 1045 #define DEBUG_DATA_SPACE_PHYSICAL 1 | |
| 1046 #define DEBUG_DATA_SPACE_CONTROL 2 | |
| 1047 #define DEBUG_DATA_SPACE_IO 3 | |
| 1048 #define DEBUG_DATA_SPACE_MSR 4 | |
| 1049 #define DEBUG_DATA_SPACE_BUS_DATA 5 | |
| 1050 #define DEBUG_DATA_SPACE_DEBUGGER_DATA 6 | |
| 1051 #define DEBUG_DATA_SPACE_COUNT 7 | |
| 1052 | |
| 1053 #define DEBUG_DATA_KernBase 24 | |
| 1054 #define DEBUG_DATA_BreakpointWithStatusAddr 32 | |
| 1055 #define DEBUG_DATA_SavedContextAddr 40 | |
| 1056 #define DEBUG_DATA_KiCallUserModeAddr 56 | |
| 1057 #define DEBUG_DATA_KeUserCallbackDispatcherAddr 64 | |
| 1058 #define DEBUG_DATA_PsLoadedModuleListAddr 72 | |
| 1059 #define DEBUG_DATA_PsActiveProcessHeadAddr 80 | |
| 1060 #define DEBUG_DATA_PspCidTableAddr 88 | |
| 1061 #define DEBUG_DATA_ExpSystemResourcesListAddr 96 | |
| 1062 #define DEBUG_DATA_ExpPagedPoolDescriptorAddr 104 | |
| 1063 #define DEBUG_DATA_ExpNumberOfPagedPoolsAddr 112 | |
| 1064 #define DEBUG_DATA_KeTimeIncrementAddr 120 | |
| 1065 #define DEBUG_DATA_KeBugCheckCallbackListHeadAddr 128 | |
| 1066 #define DEBUG_DATA_KiBugcheckDataAddr 136 | |
| 1067 #define DEBUG_DATA_IopErrorLogListHeadAddr 144 | |
| 1068 #define DEBUG_DATA_ObpRootDirectoryObjectAddr 152 | |
| 1069 #define DEBUG_DATA_ObpTypeObjectTypeAddr 160 | |
| 1070 #define DEBUG_DATA_MmSystemCacheStartAddr 168 | |
| 1071 #define DEBUG_DATA_MmSystemCacheEndAddr 176 | |
| 1072 #define DEBUG_DATA_MmSystemCacheWsAddr 184 | |
| 1073 #define DEBUG_DATA_MmPfnDatabaseAddr 192 | |
| 1074 #define DEBUG_DATA_MmSystemPtesStartAddr 200 | |
| 1075 #define DEBUG_DATA_MmSystemPtesEndAddr 208 | |
| 1076 #define DEBUG_DATA_MmSubsectionBaseAddr 216 | |
| 1077 #define DEBUG_DATA_MmNumberOfPagingFilesAddr 224 | |
| 1078 #define DEBUG_DATA_MmLowestPhysicalPageAddr 232 | |
| 1079 #define DEBUG_DATA_MmHighestPhysicalPageAddr 240 | |
| 1080 #define DEBUG_DATA_MmNumberOfPhysicalPagesAddr 248 | |
| 1081 #define DEBUG_DATA_MmMaximumNonPagedPoolInBytesAddr 256 | |
| 1082 #define DEBUG_DATA_MmNonPagedSystemStartAddr 264 | |
| 1083 #define DEBUG_DATA_MmNonPagedPoolStartAddr 272 | |
| 1084 #define DEBUG_DATA_MmNonPagedPoolEndAddr 280 | |
| 1085 #define DEBUG_DATA_MmPagedPoolStartAddr 288 | |
| 1086 #define DEBUG_DATA_MmPagedPoolEndAddr 296 | |
| 1087 #define DEBUG_DATA_MmPagedPoolInformationAddr 304 | |
| 1088 #define DEBUG_DATA_MmPageSize 312 | |
| 1089 #define DEBUG_DATA_MmSizeOfPagedPoolInBytesAddr 320 | |
| 1090 #define DEBUG_DATA_MmTotalCommitLimitAddr 328 | |
| 1091 #define DEBUG_DATA_MmTotalCommittedPagesAddr 336 | |
| 1092 #define DEBUG_DATA_MmSharedCommitAddr 344 | |
| 1093 #define DEBUG_DATA_MmDriverCommitAddr 352 | |
| 1094 #define DEBUG_DATA_MmProcessCommitAddr 360 | |
| 1095 #define DEBUG_DATA_MmPagedPoolCommitAddr 368 | |
| 1096 #define DEBUG_DATA_MmExtendedCommitAddr 376 | |
| 1097 #define DEBUG_DATA_MmZeroedPageListHeadAddr 384 | |
| 1098 #define DEBUG_DATA_MmFreePageListHeadAddr 392 | |
| 1099 #define DEBUG_DATA_MmStandbyPageListHeadAddr 400 | |
| 1100 #define DEBUG_DATA_MmModifiedPageListHeadAddr 408 | |
| 1101 #define DEBUG_DATA_MmModifiedNoWritePageListHeadAddr 416 | |
| 1102 #define DEBUG_DATA_MmAvailablePagesAddr 424 | |
| 1103 #define DEBUG_DATA_MmResidentAvailablePagesAddr 432 | |
| 1104 #define DEBUG_DATA_PoolTrackTableAddr 440 | |
| 1105 #define DEBUG_DATA_NonPagedPoolDescriptorAddr 448 | |
| 1106 #define DEBUG_DATA_MmHighestUserAddressAddr 456 | |
| 1107 #define DEBUG_DATA_MmSystemRangeStartAddr 464 | |
| 1108 #define DEBUG_DATA_MmUserProbeAddressAddr 472 | |
| 1109 #define DEBUG_DATA_KdPrintCircularBufferAddr 480 | |
| 1110 #define DEBUG_DATA_KdPrintCircularBufferEndAddr 488 | |
| 1111 #define DEBUG_DATA_KdPrintWritePointerAddr 496 | |
| 1112 #define DEBUG_DATA_KdPrintRolloverCountAddr 504 | |
| 1113 #define DEBUG_DATA_MmLoadedUserImageListAddr 512 | |
| 1114 #define DEBUG_DATA_NtBuildLabAddr 520 | |
| 1115 #define DEBUG_DATA_KiNormalSystemCall 528 | |
| 1116 #define DEBUG_DATA_KiProcessorBlockAddr 536 | |
| 1117 #define DEBUG_DATA_MmUnloadedDriversAddr 544 | |
| 1118 #define DEBUG_DATA_MmLastUnloadedDriverAddr 552 | |
| 1119 #define DEBUG_DATA_MmTriageActionTakenAddr 560 | |
| 1120 #define DEBUG_DATA_MmSpecialPoolTagAddr 568 | |
| 1121 #define DEBUG_DATA_KernelVerifierAddr 576 | |
| 1122 #define DEBUG_DATA_MmVerifierDataAddr 584 | |
| 1123 #define DEBUG_DATA_MmAllocatedNonPagedPoolAddr 592 | |
| 1124 #define DEBUG_DATA_MmPeakCommitmentAddr 600 | |
| 1125 #define DEBUG_DATA_MmTotalCommitLimitMaximumAddr 608 | |
| 1126 #define DEBUG_DATA_CmNtCSDVersionAddr 616 | |
| 1127 #define DEBUG_DATA_MmPhysicalMemoryBlockAddr 624 | |
| 1128 #define DEBUG_DATA_MmSessionBase 632 | |
| 1129 #define DEBUG_DATA_MmSessionSize 640 | |
| 1130 #define DEBUG_DATA_MmSystemParentTablePage 648 | |
| 1131 #define DEBUG_DATA_MmVirtualTranslationBase 656 | |
| 1132 #define DEBUG_DATA_OffsetKThreadNextProcessor 664 | |
| 1133 #define DEBUG_DATA_OffsetKThreadTeb 666 | |
| 1134 #define DEBUG_DATA_OffsetKThreadKernelStack 668 | |
| 1135 #define DEBUG_DATA_OffsetKThreadInitialStack 670 | |
| 1136 #define DEBUG_DATA_OffsetKThreadApcProcess 672 | |
| 1137 #define DEBUG_DATA_OffsetKThreadState 674 | |
| 1138 #define DEBUG_DATA_OffsetKThreadBStore 676 | |
| 1139 #define DEBUG_DATA_OffsetKThreadBStoreLimit 678 | |
| 1140 #define DEBUG_DATA_SizeEProcess 680 | |
| 1141 #define DEBUG_DATA_OffsetEprocessPeb 682 | |
| 1142 #define DEBUG_DATA_OffsetEprocessParentCID 684 | |
| 1143 #define DEBUG_DATA_OffsetEprocessDirectoryTableBase 686 | |
| 1144 #define DEBUG_DATA_SizePrcb 688 | |
| 1145 #define DEBUG_DATA_OffsetPrcbDpcRoutine 690 | |
| 1146 #define DEBUG_DATA_OffsetPrcbCurrentThread 692 | |
| 1147 #define DEBUG_DATA_OffsetPrcbMhz 694 | |
| 1148 #define DEBUG_DATA_OffsetPrcbCpuType 696 | |
| 1149 #define DEBUG_DATA_OffsetPrcbVendorString 698 | |
| 1150 #define DEBUG_DATA_OffsetPrcbProcessorState 700 | |
| 1151 #define DEBUG_DATA_OffsetPrcbNumber 702 | |
| 1152 #define DEBUG_DATA_SizeEThread 704 | |
| 1153 #define DEBUG_DATA_KdPrintCircularBufferPtrAddr 712 | |
| 1154 #define DEBUG_DATA_KdPrintBufferSizeAddr 720 | |
| 1155 | |
| 1156 #define DEBUG_DATA_PaeEnabled 100000 | |
| 1157 #define DEBUG_DATA_SharedUserData 100008 | |
| 1158 #define DEBUG_DATA_ProductType 100016 | |
| 1159 #define DEBUG_DATA_SuiteMask 100024 | |
| 1160 | |
| 1161 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_ALPHA { | |
| 1162 ULONG Type; | |
| 1163 ULONG Revision; | |
| 1164 } DEBUG_PROCESSOR_IDENTIFICATION_ALPHA,*PDEBUG_PROCESSOR_IDENTIFICATION_ALPHA; | |
| 1165 | |
| 1166 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_AMD64 { | |
| 1167 ULONG Family; | |
| 1168 ULONG Model; | |
| 1169 ULONG Stepping; | |
| 1170 CHAR VendorString[16]; | |
| 1171 } DEBUG_PROCESSOR_IDENTIFICATION_AMD64,*PDEBUG_PROCESSOR_IDENTIFICATION_AMD64; | |
| 1172 | |
| 1173 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_IA64 { | |
| 1174 ULONG Model; | |
| 1175 ULONG Revision; | |
| 1176 ULONG Family; | |
| 1177 ULONG ArchRev; | |
| 1178 CHAR VendorString[16]; | |
| 1179 } DEBUG_PROCESSOR_IDENTIFICATION_IA64,*PDEBUG_PROCESSOR_IDENTIFICATION_IA64; | |
| 1180 | |
| 1181 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_X86 { | |
| 1182 ULONG Family; | |
| 1183 ULONG Model; | |
| 1184 ULONG Stepping; | |
| 1185 CHAR VendorString[16]; | |
| 1186 } DEBUG_PROCESSOR_IDENTIFICATION_X86,*PDEBUG_PROCESSOR_IDENTIFICATION_X86; | |
| 1187 | |
| 1188 typedef struct _DEBUG_PROCESSOR_IDENTIFICATION_ARM { | |
| 1189 ULONG Type; | |
| 1190 ULONG Revision; | |
| 1191 } DEBUG_PROCESSOR_IDENTIFICATION_ARM,*PDEBUG_PROCESSOR_IDENTIFICATION_ARM; | |
| 1192 | |
| 1193 typedef union _DEBUG_PROCESSOR_IDENTIFICATION_ALL { | |
| 1194 DEBUG_PROCESSOR_IDENTIFICATION_ALPHA Alpha; | |
| 1195 DEBUG_PROCESSOR_IDENTIFICATION_AMD64 Amd64; | |
| 1196 DEBUG_PROCESSOR_IDENTIFICATION_IA64 Ia64; | |
| 1197 DEBUG_PROCESSOR_IDENTIFICATION_X86 X86; | |
| 1198 DEBUG_PROCESSOR_IDENTIFICATION_ARM Arm; | |
| 1199 } DEBUG_PROCESSOR_IDENTIFICATION_ALL,*PDEBUG_PROCESSOR_IDENTIFICATION_ALL; | |
| 1200 | |
| 1201 #define DEBUG_DATA_KPCR_OFFSET 0 | |
| 1202 #define DEBUG_DATA_KPRCB_OFFSET 1 | |
| 1203 #define DEBUG_DATA_KTHREAD_OFFSET 2 | |
| 1204 #define DEBUG_DATA_BASE_TRANSLATION_VIRTUAL_OFFSET 3 | |
| 1205 #define DEBUG_DATA_PROCESSOR_IDENTIFICATION 4 | |
| 1206 #define DEBUG_DATA_PROCESSOR_SPEED 5 | |
| 1207 | |
| 1208 #undef INTERFACE | |
| 1209 #define INTERFACE IDebugDataSpaces | |
| 1210 DECLARE_INTERFACE_(IDebugDataSpaces,IUnknown) { | |
| 1211 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1212 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1213 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1214 STDMETHOD(ReadVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1215 STDMETHOD(WriteVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1216 STDMETHOD(SearchVirtual)(THIS_ ULONG64 Offset,ULONG64 Length,PVOID Pattern,ULONG PatternSize,ULONG PatternGranularity,PULONG64 MatchOffset) PURE; | |
| 1217 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1218 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1219 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE; | |
| 1220 STDMETHOD(WritePointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE; | |
| 1221 STDMETHOD(ReadPhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1222 STDMETHOD(WritePhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1223 STDMETHOD(ReadControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1224 STDMETHOD(WriteControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1225 STDMETHOD(ReadIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1226 STDMETHOD(WriteIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1227 STDMETHOD(ReadMsr)(THIS_ ULONG Msr,PULONG64 Value) PURE; | |
| 1228 STDMETHOD(WriteMsr)(THIS_ ULONG Msr,ULONG64 Value) PURE; | |
| 1229 STDMETHOD(ReadBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1230 STDMETHOD(WriteBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1231 STDMETHOD(CheckLowMemory)(THIS) PURE; | |
| 1232 STDMETHOD(ReadDebuggerData)(THIS_ ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE; | |
| 1233 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG Processor,ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE; | |
| 1234 }; | |
| 1235 | |
| 1236 #define DEBUG_HANDLE_DATA_TYPE_BASIC 0 | |
| 1237 #define DEBUG_HANDLE_DATA_TYPE_TYPE_NAME 1 | |
| 1238 #define DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME 2 | |
| 1239 #define DEBUG_HANDLE_DATA_TYPE_HANDLE_COUNT 3 | |
| 1240 #define DEBUG_HANDLE_DATA_TYPE_TYPE_NAME_WIDE 4 | |
| 1241 #define DEBUG_HANDLE_DATA_TYPE_OBJECT_NAME_WIDE 5 | |
| 1242 | |
| 1243 typedef struct _DEBUG_HANDLE_DATA_BASIC { | |
| 1244 ULONG TypeNameSize; | |
| 1245 ULONG ObjectNameSize; | |
| 1246 ULONG Attributes; | |
| 1247 ULONG GrantedAccess; | |
| 1248 ULONG HandleCount; | |
| 1249 ULONG PointerCount; | |
| 1250 } DEBUG_HANDLE_DATA_BASIC,*PDEBUG_HANDLE_DATA_BASIC; | |
| 1251 | |
| 1252 #undef INTERFACE | |
| 1253 #define INTERFACE IDebugDataSpaces2 | |
| 1254 DECLARE_INTERFACE_(IDebugDataSpaces2,IUnknown) { | |
| 1255 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1256 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1257 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1258 STDMETHOD(ReadVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1259 STDMETHOD(WriteVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1260 STDMETHOD(SearchVirtual)(THIS_ ULONG64 Offset,ULONG64 Length,PVOID Pattern,ULONG PatternSize,ULONG PatternGranularity,PULONG64 MatchOffset) PURE; | |
| 1261 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1262 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1263 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE; | |
| 1264 STDMETHOD(WritePointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE; | |
| 1265 STDMETHOD(ReadPhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1266 STDMETHOD(WritePhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1267 STDMETHOD(ReadControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1268 STDMETHOD(WriteControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1269 STDMETHOD(ReadIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1270 STDMETHOD(WriteIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1271 STDMETHOD(ReadMsr)(THIS_ ULONG Msr,PULONG64 Value) PURE; | |
| 1272 STDMETHOD(WriteMsr)(THIS_ ULONG Msr,ULONG64 Value) PURE; | |
| 1273 STDMETHOD(ReadBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1274 STDMETHOD(WriteBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1275 STDMETHOD(CheckLowMemory)(THIS) PURE; | |
| 1276 STDMETHOD(ReadDebuggerData)(THIS_ ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE; | |
| 1277 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG Processor,ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE; | |
| 1278 STDMETHOD(VirtualToPhysical)(THIS_ ULONG64 Virtual,PULONG64 Physical) PURE; | |
| 1279 STDMETHOD(GetVirtualTranslationPhysicalOffsets)(THIS_ ULONG64 Virtual,PULONG64 Offsets,ULONG OffsetsSize,PULONG Levels) PURE; | |
| 1280 STDMETHOD(ReadHandleData)(THIS_ ULONG64 Handle,ULONG DataType,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE; | |
| 1281 STDMETHOD(FillVirtual)(THIS_ ULONG64 Start,ULONG Size,PVOID Pattern,ULONG PatternSize,PULONG Filled) PURE; | |
| 1282 STDMETHOD(FillPhysical)(THIS_ ULONG64 Start,ULONG Size,PVOID Pattern,ULONG PatternSize,PULONG Filled) PURE; | |
| 1283 STDMETHOD(QueryVirtual)(THIS_ ULONG64 Offset,PMEMORY_BASIC_INFORMATION64 Info) PURE; | |
| 1284 }; | |
| 1285 | |
| 1286 #undef INTERFACE | |
| 1287 #define INTERFACE IDebugDataSpaces3 | |
| 1288 DECLARE_INTERFACE_(IDebugDataSpaces3,IUnknown) { | |
| 1289 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1290 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1291 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1292 STDMETHOD(ReadVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1293 STDMETHOD(WriteVirtual)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1294 STDMETHOD(SearchVirtual)(THIS_ ULONG64 Offset,ULONG64 Length,PVOID Pattern,ULONG PatternSize,ULONG PatternGranularity,PULONG64 MatchOffset) PURE; | |
| 1295 STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1296 STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1297 STDMETHOD(ReadPointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE; | |
| 1298 STDMETHOD(WritePointersVirtual)(THIS_ ULONG Count,ULONG64 Offset,PULONG64 Ptrs) PURE; | |
| 1299 STDMETHOD(ReadPhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1300 STDMETHOD(WritePhysical)(THIS_ ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1301 STDMETHOD(ReadControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1302 STDMETHOD(WriteControl)(THIS_ ULONG Processor,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1303 STDMETHOD(ReadIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1304 STDMETHOD(WriteIo)(THIS_ ULONG InterfaceType,ULONG BusNumber,ULONG AddressSpace,ULONG64 Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1305 STDMETHOD(ReadMsr)(THIS_ ULONG Msr,PULONG64 Value) PURE; | |
| 1306 STDMETHOD(WriteMsr)(THIS_ ULONG Msr,ULONG64 Value) PURE; | |
| 1307 STDMETHOD(ReadBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1308 STDMETHOD(WriteBusData)(THIS_ ULONG BusDataType,ULONG BusNumber,ULONG SlotNumber,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1309 STDMETHOD(CheckLowMemory)(THIS) PURE; | |
| 1310 STDMETHOD(ReadDebuggerData)(THIS_ | |
| 1311 ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE; | |
| 1312 STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG Processor,ULONG Index,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE; | |
| 1313 STDMETHOD(VirtualToPhysical)(THIS_ ULONG64 Virtual,PULONG64 Physical) PURE; | |
| 1314 STDMETHOD(GetVirtualTranslationPhysicalOffsets)(THIS_ ULONG64 Virtual,PULONG64 Offsets,ULONG OffsetsSize,PULONG Levels) PURE; | |
| 1315 STDMETHOD(ReadHandleData)(THIS_ ULONG64 Handle,ULONG DataType,PVOID Buffer,ULONG BufferSize,PULONG DataSize) PURE; | |
| 1316 STDMETHOD(FillVirtual)(THIS_ ULONG64 Start,ULONG Size,PVOID Pattern,ULONG PatternSize,PULONG Filled) PURE; | |
| 1317 STDMETHOD(FillPhysical)(THIS_ ULONG64 Start,ULONG Size,PVOID Pattern,ULONG PatternSize,PULONG Filled) PURE; | |
| 1318 STDMETHOD(QueryVirtual)(THIS_ ULONG64 Offset,PMEMORY_BASIC_INFORMATION64 Info) PURE; | |
| 1319 STDMETHOD(ReadImageNtHeaders)(THIS_ ULONG64 ImageBase,PIMAGE_NT_HEADERS64 Headers) PURE; | |
| 1320 STDMETHOD(ReadTagged)(THIS_ LPGUID Tag,ULONG Offset,PVOID Buffer,ULONG BufferSize,PULONG TotalSize) PURE; | |
| 1321 STDMETHOD(StartEnumTagged)(THIS_ PULONG64 Handle) PURE; | |
| 1322 STDMETHOD(GetNextTagged)(THIS_ ULONG64 Handle,LPGUID Tag,PULONG Size) PURE; | |
| 1323 STDMETHOD(EndEnumTagged)(THIS_ ULONG64 Handle) PURE; | |
| 1324 }; | |
| 1325 | |
| 1326 #define DEBUG_EVENT_BREAKPOINT 0x00000001 | |
| 1327 #define DEBUG_EVENT_EXCEPTION 0x00000002 | |
| 1328 #define DEBUG_EVENT_CREATE_THREAD 0x00000004 | |
| 1329 #define DEBUG_EVENT_EXIT_THREAD 0x00000008 | |
| 1330 #define DEBUG_EVENT_CREATE_PROCESS 0x00000010 | |
| 1331 #define DEBUG_EVENT_EXIT_PROCESS 0x00000020 | |
| 1332 #define DEBUG_EVENT_LOAD_MODULE 0x00000040 | |
| 1333 #define DEBUG_EVENT_UNLOAD_MODULE 0x00000080 | |
| 1334 #define DEBUG_EVENT_SYSTEM_ERROR 0x00000100 | |
| 1335 #define DEBUG_EVENT_SESSION_STATUS 0x00000200 | |
| 1336 #define DEBUG_EVENT_CHANGE_DEBUGGEE_STATE 0x00000400 | |
| 1337 #define DEBUG_EVENT_CHANGE_ENGINE_STATE 0x00000800 | |
| 1338 #define DEBUG_EVENT_CHANGE_SYMBOL_STATE 0x00001000 | |
| 1339 | |
| 1340 #define DEBUG_SESSION_ACTIVE 0x00000000 | |
| 1341 | |
| 1342 #define DEBUG_SESSION_END_SESSION_ACTIVE_TERMINATE 0x00000001 | |
| 1343 #define DEBUG_SESSION_END_SESSION_ACTIVE_DETACH 0x00000002 | |
| 1344 #define DEBUG_SESSION_END_SESSION_PASSIVE 0x00000003 | |
| 1345 #define DEBUG_SESSION_END 0x00000004 | |
| 1346 #define DEBUG_SESSION_REBOOT 0x00000005 | |
| 1347 #define DEBUG_SESSION_HIBERNATE 0x00000006 | |
| 1348 #define DEBUG_SESSION_FAILURE 0x00000007 | |
| 1349 | |
| 1350 #define DEBUG_CDS_ALL 0xffffffff | |
| 1351 | |
| 1352 #define DEBUG_CDS_REGISTERS 0x00000001 | |
| 1353 #define DEBUG_CDS_DATA 0x00000002 | |
| 1354 | |
| 1355 #define DEBUG_CES_ALL 0xffffffff | |
| 1356 | |
| 1357 #define DEBUG_CES_CURRENT_THREAD 0x00000001 | |
| 1358 #define DEBUG_CES_EFFECTIVE_PROCESSOR 0x00000002 | |
| 1359 #define DEBUG_CES_BREAKPOINTS 0x00000004 | |
| 1360 #define DEBUG_CES_CODE_LEVEL 0x00000008 | |
| 1361 #define DEBUG_CES_EXECUTION_STATUS 0x00000010 | |
| 1362 #define DEBUG_CES_ENGINE_OPTIONS 0x00000020 | |
| 1363 #define DEBUG_CES_LOG_FILE 0x00000040 | |
| 1364 #define DEBUG_CES_RADIX 0x00000080 | |
| 1365 #define DEBUG_CES_EVENT_FILTERS 0x00000100 | |
| 1366 #define DEBUG_CES_PROCESS_OPTIONS 0x00000200 | |
| 1367 #define DEBUG_CES_EXTENSIONS 0x00000400 | |
| 1368 #define DEBUG_CES_SYSTEMS 0x00000800 | |
| 1369 #define DEBUG_CES_ASSEMBLY_OPTIONS 0x00001000 | |
| 1370 #define DEBUG_CES_EXPRESSION_SYNTAX 0x00002000 | |
| 1371 #define DEBUG_CES_TEXT_REPLACEMENTS 0x00004000 | |
| 1372 | |
| 1373 #define DEBUG_CSS_ALL 0xffffffff | |
| 1374 | |
| 1375 #define DEBUG_CSS_LOADS 0x00000001 | |
| 1376 #define DEBUG_CSS_UNLOADS 0x00000002 | |
| 1377 #define DEBUG_CSS_SCOPE 0x00000004 | |
| 1378 #define DEBUG_CSS_PATHS 0x00000008 | |
| 1379 #define DEBUG_CSS_SYMBOL_OPTIONS 0x00000010 | |
| 1380 #define DEBUG_CSS_TYPE_OPTIONS 0x00000020 | |
| 1381 | |
| 1382 #undef INTERFACE | |
| 1383 #define INTERFACE IDebugEventCallbacks | |
| 1384 DECLARE_INTERFACE_(IDebugEventCallbacks,IUnknown) { | |
| 1385 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1386 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1387 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1388 STDMETHOD(GetInterestMask)(THIS_ PULONG Mask) PURE; | |
| 1389 STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) PURE; | |
| 1390 STDMETHOD(Exception)(THIS_ PEXCEPTION_RECORD64 Exception,ULONG FirstChance) PURE; | |
| 1391 STDMETHOD(CreateThread)(THIS_ ULONG64 Handle,ULONG64 DataOffset,ULONG64 StartOffset) PURE; | |
| 1392 STDMETHOD(ExitThread)(THIS_ ULONG ExitCode) PURE; | |
| 1393 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; | |
| 1394 STDMETHOD(ExitProcess)(THIS_ ULONG ExitCode) PURE; | |
| 1395 STDMETHOD(LoadModule)(THIS_ ULONG64 ImageFileHandle,ULONG64 BaseOffset,ULONG ModuleSize,PCSTR ModuleName,PCSTR ImageName,ULONG CheckSum,ULONG TimeDateStamp) PURE; | |
| 1396 STDMETHOD(UnloadModule)(THIS_ PCSTR ImageBaseName,ULONG64 BaseOffset) PURE; | |
| 1397 STDMETHOD(SystemError)(THIS_ ULONG Error,ULONG Level) PURE; | |
| 1398 STDMETHOD(SessionStatus)(THIS_ ULONG Status) PURE; | |
| 1399 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG Flags,ULONG64 Argument) PURE; | |
| 1400 STDMETHOD(ChangeEngineState)(THIS_ ULONG Flags,ULONG64 Argument) PURE; | |
| 1401 STDMETHOD(ChangeSymbolState)(THIS_ ULONG Flags,ULONG64 Argument) PURE; | |
| 1402 }; | |
| 1403 | |
| 1404 #undef INTERFACE | |
| 1405 #define INTERFACE IDebugInputCallbacks | |
| 1406 DECLARE_INTERFACE_(IDebugInputCallbacks,IUnknown) { | |
| 1407 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1408 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1409 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1410 STDMETHOD(StartInput)(THIS_ ULONG BufferSize) PURE; | |
| 1411 STDMETHOD(EndInput)(THIS) PURE; | |
| 1412 }; | |
| 1413 | |
| 1414 #undef INTERFACE | |
| 1415 #define INTERFACE IDebugOutputCallbacks | |
| 1416 DECLARE_INTERFACE_(IDebugOutputCallbacks,IUnknown) { | |
| 1417 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1418 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1419 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1420 STDMETHOD(Output)(THIS_ ULONG Mask,PCSTR Text) PURE; | |
| 1421 }; | |
| 1422 | |
| 1423 #define DEBUG_REGISTER_SUB_REGISTER 0x00000001 | |
| 1424 | |
| 1425 #define DEBUG_REGISTERS_DEFAULT 0x00000000 | |
| 1426 #define DEBUG_REGISTERS_INT32 0x00000001 | |
| 1427 #define DEBUG_REGISTERS_INT64 0x00000002 | |
| 1428 #define DEBUG_REGISTERS_FLOAT 0x00000004 | |
| 1429 #define DEBUG_REGISTERS_ALL 0x00000007 | |
| 1430 | |
| 1431 typedef struct _DEBUG_REGISTER_DESCRIPTION { | |
| 1432 ULONG Type; | |
| 1433 ULONG Flags; | |
| 1434 ULONG SubregMaster; | |
| 1435 ULONG SubregLength; | |
| 1436 ULONG64 SubregMask; | |
| 1437 ULONG SubregShift; | |
| 1438 ULONG Reserved0; | |
| 1439 } DEBUG_REGISTER_DESCRIPTION,*PDEBUG_REGISTER_DESCRIPTION; | |
| 1440 | |
| 1441 #undef INTERFACE | |
| 1442 #define INTERFACE IDebugRegisters | |
| 1443 DECLARE_INTERFACE_(IDebugRegisters,IUnknown) { | |
| 1444 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1445 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1446 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1447 STDMETHOD(GetNumberRegisters)(THIS_ PULONG Number) PURE; | |
| 1448 STDMETHOD(GetDescription)(THIS_ ULONG Register,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PDEBUG_REGISTER_DESCRIPTION Desc) PURE; | |
| 1449 STDMETHOD(GetIndexByName)(THIS_ PCSTR Name,PULONG Index) PURE; | |
| 1450 STDMETHOD(GetValue)(THIS_ ULONG Register,PDEBUG_VALUE Value) PURE; | |
| 1451 STDMETHOD(SetValue)(THIS_ ULONG Register,PDEBUG_VALUE Value) PURE; | |
| 1452 STDMETHOD(GetValues)(THIS_ ULONG Count,PULONG Indices,ULONG Start,PDEBUG_VALUE Values) PURE; | |
| 1453 STDMETHOD(SetValues)(THIS_ ULONG Count,PULONG Indices,ULONG Start,PDEBUG_VALUE Values) PURE; | |
| 1454 STDMETHOD(OutputRegisters)(THIS_ ULONG OutputControl,ULONG Flags) PURE; | |
| 1455 STDMETHOD(GetInstructionOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1456 STDMETHOD(GetStackOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1457 STDMETHOD(GetFrameOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1458 }; | |
| 1459 | |
| 1460 #define DEBUG_OUTPUT_SYMBOLS_DEFAULT 0x00000000 | |
| 1461 #define DEBUG_OUTPUT_SYMBOLS_NO_NAMES 0x00000001 | |
| 1462 #define DEBUG_OUTPUT_SYMBOLS_NO_OFFSETS 0x00000002 | |
| 1463 #define DEBUG_OUTPUT_SYMBOLS_NO_VALUES 0x00000004 | |
| 1464 #define DEBUG_OUTPUT_SYMBOLS_NO_TYPES 0x00000010 | |
| 1465 | |
| 1466 #define DEBUG_OUTPUT_NAME_END "**NAME**" | |
| 1467 #define DEBUG_OUTPUT_OFFSET_END "**OFF**" | |
| 1468 #define DEBUG_OUTPUT_VALUE_END "**VALUE**" | |
| 1469 #define DEBUG_OUTPUT_TYPE_END "**TYPE**" | |
| 1470 | |
| 1471 #define DEBUG_SYMBOL_EXPANSION_LEVEL_MASK 0x0000000f | |
| 1472 #define DEBUG_SYMBOL_EXPANDED 0x00000010 | |
| 1473 #define DEBUG_SYMBOL_READ_ONLY 0x00000020 | |
| 1474 #define DEBUG_SYMBOL_IS_ARRAY 0x00000040 | |
| 1475 #define DEBUG_SYMBOL_IS_FLOAT 0x00000080 | |
| 1476 #define DEBUG_SYMBOL_IS_ARGUMENT 0x00000100 | |
| 1477 #define DEBUG_SYMBOL_IS_LOCAL 0x00000200 | |
| 1478 | |
| 1479 typedef struct _DEBUG_SYMBOL_PARAMETERS { | |
| 1480 ULONG64 Module; | |
| 1481 ULONG TypeId; | |
| 1482 ULONG ParentSymbol; | |
| 1483 ULONG SubElements; | |
| 1484 ULONG Flags; | |
| 1485 ULONG64 Reserved; | |
| 1486 } DEBUG_SYMBOL_PARAMETERS,*PDEBUG_SYMBOL_PARAMETERS; | |
| 1487 | |
| 1488 #undef INTERFACE | |
| 1489 #define INTERFACE IDebugSymbolGroup | |
| 1490 DECLARE_INTERFACE_(IDebugSymbolGroup,IUnknown) { | |
| 1491 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1492 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1493 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1494 STDMETHOD(GetNumberSymbols)(THIS_ PULONG Number) PURE; | |
| 1495 STDMETHOD(AddSymbol)(THIS_ PCSTR Name,PULONG Index) PURE; | |
| 1496 STDMETHOD(RemoveSymbolByName)(THIS_ PCSTR Name) PURE; | |
| 1497 STDMETHOD(RemoveSymbolByIndex)(THIS_ ULONG Index) PURE; | |
| 1498 STDMETHOD(GetSymbolName)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG NameSize) PURE; | |
| 1499 STDMETHOD(GetSymbolParameters)(THIS_ ULONG Start,ULONG Count,PDEBUG_SYMBOL_PARAMETERS Params) PURE; | |
| 1500 STDMETHOD(ExpandSymbol)(THIS_ ULONG Index,WINBOOL Expand) PURE; | |
| 1501 STDMETHOD(OutputSymbols)(THIS_ ULONG OutputControl,ULONG Flags,ULONG Start,ULONG Count) PURE; | |
| 1502 STDMETHOD(WriteSymbol)(THIS_ ULONG Index,PCSTR Value) PURE; | |
| 1503 STDMETHOD(OutputAsType)(THIS_ ULONG Index,PCSTR Type) PURE; | |
| 1504 }; | |
| 1505 | |
| 1506 #define DEBUG_MODULE_LOADED 0x00000000 | |
| 1507 #define DEBUG_MODULE_UNLOADED 0x00000001 | |
| 1508 #define DEBUG_MODULE_USER_MODE 0x00000002 | |
| 1509 #define DEBUG_MODULE_SYM_BAD_CHECKSUM 0x00010000 | |
| 1510 | |
| 1511 #define DEBUG_SYMTYPE_NONE 0 | |
| 1512 #define DEBUG_SYMTYPE_COFF 1 | |
| 1513 #define DEBUG_SYMTYPE_CODEVIEW 2 | |
| 1514 #define DEBUG_SYMTYPE_PDB 3 | |
| 1515 #define DEBUG_SYMTYPE_EXPORT 4 | |
| 1516 #define DEBUG_SYMTYPE_DEFERRED 5 | |
| 1517 #define DEBUG_SYMTYPE_SYM 6 | |
| 1518 #define DEBUG_SYMTYPE_DIA 7 | |
| 1519 | |
| 1520 typedef struct _DEBUG_MODULE_PARAMETERS { | |
| 1521 ULONG64 Base; | |
| 1522 ULONG Size; | |
| 1523 ULONG TimeDateStamp; | |
| 1524 ULONG Checksum; | |
| 1525 ULONG Flags; | |
| 1526 ULONG SymbolType; | |
| 1527 ULONG ImageNameSize; | |
| 1528 ULONG ModuleNameSize; | |
| 1529 ULONG LoadedImageNameSize; | |
| 1530 ULONG SymbolFileNameSize; | |
| 1531 ULONG MappedImageNameSize; | |
| 1532 ULONG64 Reserved[2]; | |
| 1533 } DEBUG_MODULE_PARAMETERS,*PDEBUG_MODULE_PARAMETERS; | |
| 1534 | |
| 1535 #define DEBUG_SCOPE_GROUP_ARGUMENTS 0x00000001 | |
| 1536 #define DEBUG_SCOPE_GROUP_LOCALS 0x00000002 | |
| 1537 #define DEBUG_SCOPE_GROUP_ALL 0x00000003 | |
| 1538 | |
| 1539 #define DEBUG_OUTTYPE_DEFAULT 0x00000000 | |
| 1540 #define DEBUG_OUTTYPE_NO_INDENT 0x00000001 | |
| 1541 #define DEBUG_OUTTYPE_NO_OFFSET 0x00000002 | |
| 1542 #define DEBUG_OUTTYPE_VERBOSE 0x00000004 | |
| 1543 #define DEBUG_OUTTYPE_COMPACT_OUTPUT 0x00000008 | |
| 1544 #define DEBUG_OUTTYPE_RECURSION_LEVEL(Max) (((Max) & 0xf) << 4) | |
| 1545 #define DEBUG_OUTTYPE_ADDRESS_OF_FIELD 0x00010000 | |
| 1546 #define DEBUG_OUTTYPE_ADDRESS_AT_END 0x00020000 | |
| 1547 #define DEBUG_OUTTYPE_BLOCK_RECURSE 0x00200000 | |
| 1548 | |
| 1549 #define DEBUG_FIND_SOURCE_DEFAULT 0x00000000 | |
| 1550 #define DEBUG_FIND_SOURCE_FULL_PATH 0x00000001 | |
| 1551 #define DEBUG_FIND_SOURCE_BEST_MATCH 0x00000002 | |
| 1552 | |
| 1553 #define DEBUG_INVALID_OFFSET ((ULONG64)-1) | |
| 1554 | |
| 1555 #undef INTERFACE | |
| 1556 #define INTERFACE IDebugSymbols | |
| 1557 DECLARE_INTERFACE_(IDebugSymbols,IUnknown) { | |
| 1558 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1559 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1560 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1561 STDMETHOD(GetSymbolOptions)(THIS_ PULONG Options) PURE; | |
| 1562 STDMETHOD(AddSymbolOptions)(THIS_ ULONG Options) PURE; | |
| 1563 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG Options) PURE; | |
| 1564 STDMETHOD(SetSymbolOptions)(THIS_ ULONG Options) PURE; | |
| 1565 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 Offset,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PULONG64 Displacement) PURE; | |
| 1566 STDMETHOD(GetOffsetByName)(THIS_ PCSTR Symbol,PULONG64 Offset) PURE; | |
| 1567 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 Offset,LONG Delta,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PULONG64 Displacement) PURE; | |
| 1568 STDMETHOD(GetLineByOffset)(THIS_ ULONG64 Offset,PULONG Line,PSTR FileBuffer,ULONG FileBufferSize,PULONG FileSize,PULONG64 Displacement) PURE; | |
| 1569 STDMETHOD(GetOffsetByLine)(THIS_ ULONG Line,PCSTR File,PULONG64 Offset) PURE; | |
| 1570 STDMETHOD(GetNumberModules)(THIS_ PULONG Loaded,PULONG Unloaded) PURE; | |
| 1571 STDMETHOD(GetModuleByIndex)(THIS_ ULONG Index,PULONG64 Base) PURE; | |
| 1572 STDMETHOD(GetModuleByModuleName)(THIS_ PCSTR Name,ULONG StartIndex,PULONG Index,PULONG64 Base) PURE; | |
| 1573 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 Offset,ULONG StartIndex,PULONG Index,PULONG64 Base) PURE; | |
| 1574 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; | |
| 1575 STDMETHOD(GetModuleParameters)(THIS_ ULONG Count,PULONG64 Bases,ULONG Start,PDEBUG_MODULE_PARAMETERS Params) PURE; | |
| 1576 STDMETHOD(GetSymbolModule)(THIS_ PCSTR Symbol,PULONG64 Base) PURE; | |
| 1577 STDMETHOD(GetTypeName)(THIS_ ULONG64 Module,ULONG TypeId,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize) PURE; | |
| 1578 STDMETHOD(GetTypeId)(THIS_ ULONG64 Module,PCSTR Name,PULONG TypeId) PURE; | |
| 1579 STDMETHOD(GetTypeSize)(THIS_ ULONG64 Module,ULONG TypeId,PULONG Size) PURE; | |
| 1580 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 Module,ULONG TypeId,PCSTR Field,PULONG Offset) PURE; | |
| 1581 STDMETHOD(GetSymbolTypeId)(THIS_ PCSTR Symbol,PULONG TypeId,PULONG64 Module) PURE; | |
| 1582 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 Offset,PULONG TypeId,PULONG64 Module) PURE; | |
| 1583 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1584 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1585 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG64 Module,ULONG TypeId,ULONG Flags) PURE; | |
| 1586 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1587 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1588 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG64 Module,ULONG TypeId,ULONG Flags) PURE; | |
| 1589 STDMETHOD(GetScope)(THIS_ PULONG64 InstructionOffset,PDEBUG_STACK_FRAME ScopeFrame,PVOID ScopeContext,ULONG ScopeContextSize) PURE; | |
| 1590 STDMETHOD(SetScope)(THIS_ ULONG64 InstructionOffset,PDEBUG_STACK_FRAME ScopeFrame,PVOID ScopeContext,ULONG ScopeContextSize) PURE; | |
| 1591 STDMETHOD(ResetScope)(THIS) PURE; | |
| 1592 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG Flags,PDEBUG_SYMBOL_GROUP Update,PDEBUG_SYMBOL_GROUP *Symbols) PURE; | |
| 1593 STDMETHOD(CreateSymbolGroup)(THIS_ PDEBUG_SYMBOL_GROUP *Group) PURE; | |
| 1594 STDMETHOD(StartSymbolMatch)(THIS_ PCSTR Pattern,PULONG64 Handle) PURE; | |
| 1595 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 Handle,PSTR Buffer,ULONG BufferSize,PULONG MatchSize,PULONG64 Offset) PURE; | |
| 1596 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 Handle) PURE; | |
| 1597 STDMETHOD(Reload)(THIS_ PCSTR Module) PURE; | |
| 1598 STDMETHOD(GetSymbolPath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE; | |
| 1599 STDMETHOD(SetSymbolPath)(THIS_ PCSTR Path) PURE; | |
| 1600 STDMETHOD(AppendSymbolPath)(THIS_ PCSTR Addition) PURE; | |
| 1601 STDMETHOD(GetImagePath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE; | |
| 1602 STDMETHOD(SetImagePath)(THIS_ PCSTR Path) PURE; | |
| 1603 STDMETHOD(AppendImagePath)(THIS_ PCSTR Addition) PURE; | |
| 1604 STDMETHOD(GetSourcePath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE; | |
| 1605 STDMETHOD(GetSourcePathElement)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ElementSize) PURE; | |
| 1606 STDMETHOD(SetSourcePath)(THIS_ PCSTR Path) PURE; | |
| 1607 STDMETHOD(AppendSourcePath)(THIS_ PCSTR Addition) PURE; | |
| 1608 STDMETHOD(FindSourceFile)(THIS_ ULONG StartElement,PCSTR File,ULONG Flags,PULONG FoundElement,PSTR Buffer,ULONG BufferSize,PULONG FoundSize) PURE; | |
| 1609 STDMETHOD(GetSourceFileLineOffsets)(THIS_ PCSTR File,PULONG64 Buffer,ULONG BufferLines,PULONG FileLines) PURE; | |
| 1610 }; | |
| 1611 | |
| 1612 #define DEBUG_MODNAME_IMAGE 0x00000000 | |
| 1613 #define DEBUG_MODNAME_MODULE 0x00000001 | |
| 1614 #define DEBUG_MODNAME_LOADED_IMAGE 0x00000002 | |
| 1615 #define DEBUG_MODNAME_SYMBOL_FILE 0x00000003 | |
| 1616 #define DEBUG_MODNAME_MAPPED_IMAGE 0x00000004 | |
| 1617 | |
| 1618 #define DEBUG_TYPEOPTS_UNICODE_DISPLAY 0x00000001 | |
| 1619 #define DEBUG_TYPEOPTS_LONGSTATUS_DISPLAY 0x00000002 | |
| 1620 #define DEBUG_TYPEOPTS_FORCERADIX_OUTPUT 0x00000004 | |
| 1621 | |
| 1622 #undef INTERFACE | |
| 1623 #define INTERFACE IDebugSymbols2 | |
| 1624 DECLARE_INTERFACE_(IDebugSymbols2,IUnknown) { | |
| 1625 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1626 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1627 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1628 STDMETHOD(GetSymbolOptions)(THIS_ PULONG Options) PURE; | |
| 1629 STDMETHOD(AddSymbolOptions)(THIS_ ULONG Options) PURE; | |
| 1630 STDMETHOD(RemoveSymbolOptions)(THIS_ ULONG Options) PURE; | |
| 1631 STDMETHOD(SetSymbolOptions)(THIS_ ULONG Options) PURE; | |
| 1632 STDMETHOD(GetNameByOffset)(THIS_ ULONG64 Offset,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PULONG64 Displacement) PURE; | |
| 1633 STDMETHOD(GetOffsetByName)(THIS_ PCSTR Symbol,PULONG64 Offset) PURE; | |
| 1634 STDMETHOD(GetNearNameByOffset)(THIS_ ULONG64 Offset,LONG Delta,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize,PULONG64 Displacement) PURE; | |
| 1635 STDMETHOD(GetLineByOffset)(THIS_ ULONG64 Offset,PULONG Line,PSTR FileBuffer,ULONG FileBufferSize,PULONG FileSize,PULONG64 Displacement) PURE; | |
| 1636 STDMETHOD(GetOffsetByLine)(THIS_ ULONG Line,PCSTR File,PULONG64 Offset) PURE; | |
| 1637 STDMETHOD(GetNumberModules)(THIS_ PULONG Loaded,PULONG Unloaded) PURE; | |
| 1638 STDMETHOD(GetModuleByIndex)(THIS_ ULONG Index,PULONG64 Base) PURE; | |
| 1639 STDMETHOD(GetModuleByModuleName)(THIS_ PCSTR Name,ULONG StartIndex,PULONG Index,PULONG64 Base) PURE; | |
| 1640 STDMETHOD(GetModuleByOffset)(THIS_ ULONG64 Offset,ULONG StartIndex,PULONG Index,PULONG64 Base) PURE; | |
| 1641 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; | |
| 1642 STDMETHOD(GetModuleParameters)(THIS_ ULONG Count,PULONG64 Bases,ULONG Start,PDEBUG_MODULE_PARAMETERS Params) PURE; | |
| 1643 STDMETHOD(GetSymbolModule)(THIS_ PCSTR Symbol,PULONG64 Base) PURE; | |
| 1644 STDMETHOD(GetTypeName)(THIS_ ULONG64 Module,ULONG TypeId,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize) PURE; | |
| 1645 STDMETHOD(GetTypeId)(THIS_ ULONG64 Module,PCSTR Name,PULONG TypeId) PURE; | |
| 1646 STDMETHOD(GetTypeSize)(THIS_ ULONG64 Module,ULONG TypeId,PULONG Size) PURE; | |
| 1647 STDMETHOD(GetFieldOffset)(THIS_ ULONG64 Module,ULONG TypeId,PCSTR Field,PULONG Offset) PURE; | |
| 1648 STDMETHOD(GetSymbolTypeId)(THIS_ PCSTR Symbol,PULONG TypeId,PULONG64 Module) PURE; | |
| 1649 STDMETHOD(GetOffsetTypeId)(THIS_ ULONG64 Offset,PULONG TypeId,PULONG64 Module) PURE; | |
| 1650 STDMETHOD(ReadTypedDataVirtual)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1651 STDMETHOD(WriteTypedDataVirtual)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1652 STDMETHOD(OutputTypedDataVirtual)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG64 Module,ULONG TypeId,ULONG Flags) PURE; | |
| 1653 STDMETHOD(ReadTypedDataPhysical)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesRead) PURE; | |
| 1654 STDMETHOD(WriteTypedDataPhysical)(THIS_ ULONG64 Offset,ULONG64 Module,ULONG TypeId,PVOID Buffer,ULONG BufferSize,PULONG BytesWritten) PURE; | |
| 1655 STDMETHOD(OutputTypedDataPhysical)(THIS_ ULONG OutputControl,ULONG64 Offset,ULONG64 Module,ULONG TypeId,ULONG Flags) PURE; | |
| 1656 STDMETHOD(GetScope)(THIS_ PULONG64 InstructionOffset,PDEBUG_STACK_FRAME ScopeFrame,PVOID ScopeContext,ULONG ScopeContextSize) PURE; | |
| 1657 STDMETHOD(SetScope)(THIS_ ULONG64 InstructionOffset,PDEBUG_STACK_FRAME ScopeFrame,PVOID ScopeContext,ULONG ScopeContextSize) PURE; | |
| 1658 STDMETHOD(ResetScope)(THIS) PURE; | |
| 1659 STDMETHOD(GetScopeSymbolGroup)(THIS_ ULONG Flags,PDEBUG_SYMBOL_GROUP Update,PDEBUG_SYMBOL_GROUP *Symbols) PURE; | |
| 1660 STDMETHOD(CreateSymbolGroup)(THIS_ PDEBUG_SYMBOL_GROUP *Group) PURE; | |
| 1661 STDMETHOD(StartSymbolMatch)(THIS_ PCSTR Pattern,PULONG64 Handle) PURE; | |
| 1662 STDMETHOD(GetNextSymbolMatch)(THIS_ ULONG64 Handle,PSTR Buffer,ULONG BufferSize,PULONG MatchSize,PULONG64 Offset) PURE; | |
| 1663 STDMETHOD(EndSymbolMatch)(THIS_ ULONG64 Handle) PURE; | |
| 1664 STDMETHOD(Reload)(THIS_ PCSTR Module) PURE; | |
| 1665 STDMETHOD(GetSymbolPath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE; | |
| 1666 STDMETHOD(SetSymbolPath)(THIS_ PCSTR Path) PURE; | |
| 1667 STDMETHOD(AppendSymbolPath)(THIS_ PCSTR Addition) PURE; | |
| 1668 STDMETHOD(GetImagePath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE; | |
| 1669 STDMETHOD(SetImagePath)(THIS_ PCSTR Path) PURE; | |
| 1670 STDMETHOD(AppendImagePath)(THIS_ PCSTR Addition) PURE; | |
| 1671 STDMETHOD(GetSourcePath)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG PathSize) PURE; | |
| 1672 STDMETHOD(GetSourcePathElement)(THIS_ ULONG Index,PSTR Buffer,ULONG BufferSize,PULONG ElementSize) PURE; | |
| 1673 STDMETHOD(SetSourcePath)(THIS_ PCSTR Path) PURE; | |
| 1674 STDMETHOD(AppendSourcePath)(THIS_ PCSTR Addition) PURE; | |
| 1675 STDMETHOD(FindSourceFile)(THIS_ ULONG StartElement,PCSTR File,ULONG Flags,PULONG FoundElement,PSTR Buffer,ULONG BufferSize,PULONG FoundSize) PURE; | |
| 1676 STDMETHOD(GetSourceFileLineOffsets)(THIS_ PCSTR File,PULONG64 Buffer,ULONG BufferLines,PULONG FileLines) PURE; | |
| 1677 STDMETHOD(GetModuleVersionInformation)(THIS_ ULONG Index,ULONG64 Base,PCSTR Item,PVOID Buffer,ULONG BufferSize,PULONG VerInfoSize) PURE; | |
| 1678 STDMETHOD(GetModuleNameString)(THIS_ ULONG Which,ULONG Index,ULONG64 Base,PSTR Buffer,ULONG BufferSize,PULONG NameSize) PURE; | |
| 1679 STDMETHOD(GetConstantName)(THIS_ ULONG64 Module,ULONG TypeId,ULONG64 Value,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize) PURE; | |
| 1680 STDMETHOD(GetFieldName)(THIS_ ULONG64 Module,ULONG TypeId,ULONG FieldIndex,PSTR NameBuffer,ULONG NameBufferSize,PULONG NameSize) PURE; | |
| 1681 STDMETHOD(GetTypeOptions)(THIS_ PULONG Options) PURE; | |
| 1682 STDMETHOD(AddTypeOptions)(THIS_ ULONG Options) PURE; | |
| 1683 STDMETHOD(RemoveTypeOptions)(THIS_ ULONG Options) PURE; | |
| 1684 STDMETHOD(SetTypeOptions)(THIS_ ULONG Options) PURE; | |
| 1685 }; | |
| 1686 | |
| 1687 #undef INTERFACE | |
| 1688 #define INTERFACE IDebugSystemObjects | |
| 1689 DECLARE_INTERFACE_(IDebugSystemObjects,IUnknown) { | |
| 1690 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1691 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1692 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1693 STDMETHOD(GetEventThread)(THIS_ PULONG Id) PURE; | |
| 1694 STDMETHOD(GetEventProcess)(THIS_ PULONG Id) PURE; | |
| 1695 STDMETHOD(GetCurrentThreadId)(THIS_ PULONG Id) PURE; | |
| 1696 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG Id) PURE; | |
| 1697 STDMETHOD(GetCurrentProcessId)(THIS_ PULONG Id) PURE; | |
| 1698 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG Id) PURE; | |
| 1699 STDMETHOD(GetNumberThreads)(THIS_ PULONG Number) PURE; | |
| 1700 STDMETHOD(GetTotalNumberThreads)(THIS_ PULONG Total,PULONG LargestProcess) PURE; | |
| 1701 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE; | |
| 1702 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG Processor,PULONG Id) PURE; | |
| 1703 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1704 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1705 STDMETHOD(GetCurrentThreadTeb)(THIS_ PULONG64 Offset) PURE; | |
| 1706 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1707 STDMETHOD(GetCurrentThreadSystemId)(THIS_ PULONG SysId) PURE; | |
| 1708 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE; | |
| 1709 STDMETHOD(GetCurrentThreadHandle)(THIS_ PULONG64 Handle) PURE; | |
| 1710 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE; | |
| 1711 STDMETHOD(GetNumberProcesses)(THIS_ PULONG Number) PURE; | |
| 1712 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE; | |
| 1713 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1714 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1715 STDMETHOD(GetCurrentProcessPeb)(THIS_ PULONG64 Offset) PURE; | |
| 1716 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1717 STDMETHOD(GetCurrentProcessSystemId)(THIS_ PULONG SysId) PURE; | |
| 1718 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE; | |
| 1719 STDMETHOD(GetCurrentProcessHandle)(THIS_ PULONG64 Handle) PURE; | |
| 1720 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE; | |
| 1721 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG ExeSize) PURE; | |
| 1722 }; | |
| 1723 | |
| 1724 #undef INTERFACE | |
| 1725 #define INTERFACE IDebugSystemObjects2 | |
| 1726 DECLARE_INTERFACE_(IDebugSystemObjects2,IUnknown) { | |
| 1727 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1728 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1729 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1730 STDMETHOD(GetEventThread)(THIS_ PULONG Id) PURE; | |
| 1731 STDMETHOD(GetEventProcess)(THIS_ PULONG Id) PURE; | |
| 1732 STDMETHOD(GetCurrentThreadId)(THIS_ PULONG Id) PURE; | |
| 1733 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG Id) PURE; | |
| 1734 STDMETHOD(GetCurrentProcessId)(THIS_ PULONG Id) PURE; | |
| 1735 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG Id) PURE; | |
| 1736 STDMETHOD(GetNumberThreads)(THIS_ PULONG Number) PURE; | |
| 1737 STDMETHOD(GetTotalNumberThreads)(THIS_ PULONG Total,PULONG LargestProcess) PURE; | |
| 1738 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE; | |
| 1739 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG Processor,PULONG Id) PURE; | |
| 1740 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1741 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1742 STDMETHOD(GetCurrentThreadTeb)(THIS_ PULONG64 Offset) PURE; | |
| 1743 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1744 STDMETHOD(GetCurrentThreadSystemId)(THIS_ PULONG SysId) PURE; | |
| 1745 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE; | |
| 1746 STDMETHOD(GetCurrentThreadHandle)(THIS_ PULONG64 Handle) PURE; | |
| 1747 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE; | |
| 1748 STDMETHOD(GetNumberProcesses)(THIS_ PULONG Number) PURE; | |
| 1749 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE; | |
| 1750 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1751 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1752 STDMETHOD(GetCurrentProcessPeb)(THIS_ PULONG64 Offset) PURE; | |
| 1753 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1754 STDMETHOD(GetCurrentProcessSystemId)(THIS_ PULONG SysId) PURE; | |
| 1755 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE; | |
| 1756 STDMETHOD(GetCurrentProcessHandle)(THIS_ PULONG64 Handle) PURE; | |
| 1757 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE; | |
| 1758 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG ExeSize) PURE; | |
| 1759 STDMETHOD(GetCurrentProcessUpTime)(THIS_ PULONG UpTime) PURE; | |
| 1760 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1761 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 Offset) PURE; | |
| 1762 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1763 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 Offset) PURE; | |
| 1764 }; | |
| 1765 | |
| 1766 #undef INTERFACE | |
| 1767 #define INTERFACE IDebugSystemObjects3 | |
| 1768 DECLARE_INTERFACE_(IDebugSystemObjects3,IUnknown) { | |
| 1769 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) PURE; | |
| 1770 STDMETHOD_(ULONG,AddRef)(THIS) PURE; | |
| 1771 STDMETHOD_(ULONG,Release)(THIS) PURE; | |
| 1772 STDMETHOD(GetEventThread)(THIS_ PULONG Id) PURE; | |
| 1773 STDMETHOD(GetEventProcess)(THIS_ PULONG Id) PURE; | |
| 1774 STDMETHOD(GetCurrentThreadId)(THIS_ PULONG Id) PURE; | |
| 1775 STDMETHOD(SetCurrentThreadId)(THIS_ ULONG Id) PURE; | |
| 1776 STDMETHOD(GetCurrentProcessId)(THIS_ PULONG Id) PURE; | |
| 1777 STDMETHOD(SetCurrentProcessId)(THIS_ ULONG Id) PURE; | |
| 1778 STDMETHOD(GetNumberThreads)(THIS_ PULONG Number) PURE; | |
| 1779 STDMETHOD(GetTotalNumberThreads)(THIS_ PULONG Total,PULONG LargestProcess) PURE; | |
| 1780 STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE; | |
| 1781 STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG Processor,PULONG Id) PURE; | |
| 1782 STDMETHOD(GetCurrentThreadDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1783 STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1784 STDMETHOD(GetCurrentThreadTeb)(THIS_ PULONG64 Offset) PURE; | |
| 1785 STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1786 STDMETHOD(GetCurrentThreadSystemId)(THIS_ PULONG SysId) PURE; | |
| 1787 STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE; | |
| 1788 STDMETHOD(GetCurrentThreadHandle)(THIS_ PULONG64 Handle) PURE; | |
| 1789 STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE; | |
| 1790 STDMETHOD(GetNumberProcesses)(THIS_ PULONG Number) PURE; | |
| 1791 STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids,PULONG SysIds) PURE; | |
| 1792 STDMETHOD(GetCurrentProcessDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1793 STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1794 STDMETHOD(GetCurrentProcessPeb)(THIS_ PULONG64 Offset) PURE; | |
| 1795 STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 Offset,PULONG Id) PURE; | |
| 1796 STDMETHOD(GetCurrentProcessSystemId)(THIS_ PULONG SysId) PURE; | |
| 1797 STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG SysId,PULONG Id) PURE; | |
| 1798 STDMETHOD(GetCurrentProcessHandle)(THIS_ PULONG64 Handle) PURE; | |
| 1799 STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 Handle,PULONG Id) PURE; | |
| 1800 STDMETHOD(GetCurrentProcessExecutableName)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG ExeSize) PURE; | |
| 1801 STDMETHOD(GetCurrentProcessUpTime)(THIS_ PULONG UpTime) PURE; | |
| 1802 STDMETHOD(GetImplicitThreadDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1803 STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 Offset) PURE; | |
| 1804 STDMETHOD(GetImplicitProcessDataOffset)(THIS_ PULONG64 Offset) PURE; | |
| 1805 STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 Offset) PURE; | |
| 1806 STDMETHOD(GetEventSystem)(THIS_ PULONG Id) PURE; | |
| 1807 STDMETHOD(GetCurrentSystemId)(THIS_ PULONG Id) PURE; | |
| 1808 STDMETHOD(SetCurrentSystemId)(THIS_ ULONG Id) PURE; | |
| 1809 STDMETHOD(GetNumberSystems)(THIS_ PULONG Number) PURE; | |
| 1810 STDMETHOD(GetSystemIdsByIndex)(THIS_ ULONG Start,ULONG Count,PULONG Ids) PURE; | |
| 1811 STDMETHOD(GetTotalNumberThreadsAndProcesses)(THIS_ PULONG TotalThreads,PULONG TotalProcesses,PULONG LargestProcessThreads,PULONG LargestSystemThreads,PULONG LargestSystemProcesses) PURE; | |
| 1812 STDMETHOD(GetCurrentSystemServer)(THIS_ PULONG64 Server) PURE; | |
| 1813 STDMETHOD(GetSystemByServer)(THIS_ ULONG64 Server,PULONG Id) PURE; | |
| 1814 STDMETHOD(GetCurrentSystemServerName)(THIS_ PSTR Buffer,ULONG BufferSize,PULONG NameSize) PURE; | |
| 1815 }; | |
| 1816 | |
| 1817 #define DEBUG_COMMAND_EXCEPTION_ID 0xdbe00dbe | |
| 1818 | |
| 1819 #define DEBUG_CMDEX_INVALID 0x00000000 | |
| 1820 #define DEBUG_CMDEX_ADD_EVENT_STRING 0x00000001 | |
| 1821 #define DEBUG_CMDEX_RESET_EVENT_STRINGS 0x00000002 | |
| 1822 | |
| 1823 #if !defined(DEBUG_NO_IMPLEMENTATION) && !defined(__CRT__NO_INLINE) | |
| 1824 __CRT_INLINE void DebugCommandException(ULONG Command,ULONG ArgSize,PVOID Arg) { | |
| 1825 ULONG_PTR ExArgs[4]; | |
| 1826 ExArgs[0] = DEBUG_COMMAND_EXCEPTION_ID; | |
| 1827 ExArgs[1] = Command; | |
| 1828 ExArgs[2] = ArgSize; | |
| 1829 ExArgs[3] = (ULONG_PTR)Arg; | |
| 1830 RaiseException(DBG_COMMAND_EXCEPTION,0,4,ExArgs); | |
| 1831 } | |
| 1832 #endif | |
| 1833 | |
| 1834 typedef HRESULT (CALLBACK *PDEBUG_EXTENSION_INITIALIZE)(PULONG Version,PULONG Flags); | |
| 1835 typedef void (CALLBACK *PDEBUG_EXTENSION_UNINITIALIZE)(void); | |
| 1836 | |
| 1837 #define DEBUG_NOTIFY_SESSION_ACTIVE 0x00000000 | |
| 1838 #define DEBUG_NOTIFY_SESSION_INACTIVE 0x00000001 | |
| 1839 #define DEBUG_NOTIFY_SESSION_ACCESSIBLE 0x00000002 | |
| 1840 #define DEBUG_NOTIFY_SESSION_INACCESSIBLE 0x00000003 | |
| 1841 | |
| 1842 typedef void (CALLBACK *PDEBUG_EXTENSION_NOTIFY)(ULONG Notify,ULONG64 Argument); | |
| 1843 typedef HRESULT (CALLBACK *PDEBUG_EXTENSION_CALL)(PDEBUG_CLIENT Client,PCSTR Args); | |
| 1844 | |
| 1845 #define DEBUG_EXTENSION_CONTINUE_SEARCH HRESULT_FROM_NT(0xC0000271L) | |
| 1846 #define DEBUG_EXTENSION_VERSION(Major,Minor) ((((Major) & 0xffff) << 16) | ((Minor) & 0xffff)) | |
| 1847 | |
| 1848 #ifdef __cplusplus | |
| 1849 }; | |
| 1850 | |
| 1851 #ifndef DEBUG_NO_IMPLEMENTATION | |
| 1852 class DebugBaseEventCallbacks : public IDebugEventCallbacks { | |
| 1853 public: | |
| 1854 STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId,PVOID *Interface) { | |
| 1855 *Interface = NULL; | |
| 1856 if(IsEqualIID(InterfaceId,IID_IUnknown) || IsEqualIID(InterfaceId,IID_IDebugEventCallbacks)) { | |
| 1857 *Interface = (IDebugEventCallbacks *)this; | |
| 1858 AddRef(); | |
| 1859 return S_OK; | |
| 1860 } else return E_NOINTERFACE; | |
| 1861 } | |
| 1862 STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT Bp) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1863 STDMETHOD(Exception)(THIS_ PEXCEPTION_RECORD64 Exception,ULONG FirstChance) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1864 STDMETHOD(CreateThread)(THIS_ ULONG64 Handle,ULONG64 DataOffset,ULONG64 StartOffset) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1865 STDMETHOD(ExitThread)(THIS_ ULONG ExitCode) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1866 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; } | |
| 1867 STDMETHOD(ExitProcess)(THIS_ ULONG ExitCode) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1868 STDMETHOD(LoadModule)(THIS_ ULONG64 ImageFileHandle,ULONG64 BaseOffset,ULONG ModuleSize,PCSTR ModuleName,PCSTR ImageName,ULONG CheckSum,ULONG TimeDateStamp) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1869 STDMETHOD(UnloadModule)(THIS_ PCSTR ImageBaseName,ULONG64 BaseOffset) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1870 STDMETHOD(SystemError)(THIS_ ULONG Error,ULONG Level) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1871 STDMETHOD(SessionStatus)(THIS_ ULONG Status) { return DEBUG_STATUS_NO_CHANGE; } | |
| 1872 STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG Flags,ULONG64 Argument) { return S_OK; } | |
| 1873 STDMETHOD(ChangeEngineState)(THIS_ ULONG Flags,ULONG64 Argument) { return S_OK; } | |
| 1874 STDMETHOD(ChangeSymbolState)(THIS_ ULONG Flags,ULONG64 Argument) { return S_OK; } | |
| 1875 }; | |
| 1876 #endif | |
| 1877 #endif | |
| 1878 #endif |
