From b1c1274748b4a29b7462e3d148801358b4a6fcee Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <[email protected]> Date: Mon, 12 Aug 2024 13:20:07 +0000 Subject: [PATCH 1/3] include: Add new DebugClient interfaces in dbgeng.h
Signed-off-by: Biswapriyo Nath <[email protected]> --- mingw-w64-headers/include/dbgeng.h | 649 +++++++++++++++++++++++++++++ 1 file changed, 649 insertions(+) diff --git a/mingw-w64-headers/include/dbgeng.h b/mingw-w64-headers/include/dbgeng.h index fc9f182..e4ebf98 100644 --- a/mingw-w64-headers/include/dbgeng.h +++ b/mingw-w64-headers/include/dbgeng.h @@ -24,10 +24,16 @@ extern "C" { DEFINE_GUID(IID_IDebugAdvanced,0xf2df5f53,0x071f,0x47bd,0x9d,0xe6,0x57,0x34,0xc3,0xfe,0xd6,0x89); DEFINE_GUID(IID_IDebugBreakpoint,0x5bd9d474,0x5975,0x423a,0xb8,0x8b,0x65,0xa8,0xe7,0x11,0x0e,0x65); + DEFINE_GUID(IID_IDebugBreakpoint2,0x1b278d20,0x79f2,0x426e,0xa3,0xf9,0xc1,0xdd,0xf3,0x75,0xd4,0x8e); DEFINE_GUID(IID_IDebugClient,0x27fe5639,0x8407,0x4f47,0x83,0x64,0xee,0x11,0x8f,0xb0,0x8a,0xc8); DEFINE_GUID(IID_IDebugClient2,0xedbed635,0x372e,0x4dab,0xbb,0xfe,0xed,0x0d,0x2f,0x63,0xbe,0x81); DEFINE_GUID(IID_IDebugClient3,0xdd492d7f,0x71b8,0x4ad6,0xa8,0xdc,0x1c,0x88,0x74,0x79,0xff,0x91); DEFINE_GUID(IID_IDebugClient4,0xca83c3de,0x5089,0x4cf8,0x93,0xc8,0xd8,0x92,0x38,0x7f,0x2a,0x5e); + DEFINE_GUID(IID_IDebugClient5,0xe3acb9d7,0x7ec2,0x4f0c,0xa0,0xda,0xe8,0x1e,0x0c,0xbb,0xe6,0x28); + DEFINE_GUID(IID_IDebugClient6,0xfd28b4c5,0xc498,0x4686,0xa2,0x8e,0x62,0xca,0xd2,0x15,0x4e,0xb3); + DEFINE_GUID(IID_IDebugClient7,0x13586be3,0x542e,0x481e,0xb1,0xf2,0x84,0x97,0xba,0x74,0xf9,0xa9); + DEFINE_GUID(IID_IDebugClient8,0xcec43add,0x6375,0x469e,0x83,0xd5,0x41,0x4e,0x40,0x33,0xc1,0x9a); + DEFINE_GUID(IID_IDebugClient9,0x2c24cd5b,0x4d9e,0x4df4,0x8a,0x70,0x3d,0x37,0x44,0x0d,0x11,0x9f); DEFINE_GUID(IID_IDebugControl,0x5182e668,0x105e,0x416e,0xad,0x92,0x24,0xef,0x80,0x04,0x24,0xba); DEFINE_GUID(IID_IDebugControl2,0xd4366723,0x44df,0x4bed,0x8c,0x7e,0x4c,0x05,0x42,0x4f,0x45,0x88); DEFINE_GUID(IID_IDebugControl3,0x7df74a86,0xb03f,0x407f,0x90,0xab,0xa2,0x0d,0xad,0xce,0xad,0x08); @@ -35,8 +41,11 @@ extern "C" { DEFINE_GUID(IID_IDebugDataSpaces2,0x7a5e852f,0x96e9,0x468f,0xac,0x1b,0x0b,0x3a,0xdd,0xc4,0xa0,0x49); DEFINE_GUID(IID_IDebugDataSpaces3,0x23f79d6c,0x8aaf,0x4f7c,0xa6,0x07,0x99,0x95,0xf5,0x40,0x7e,0x63); DEFINE_GUID(IID_IDebugEventCallbacks,0x337be28b,0x5036,0x4d72,0xb6,0xbf,0xc4,0x5f,0xbb,0x9f,0x2e,0xaa); + DEFINE_GUID(IID_IDebugEventCallbacksWide,0x0690e046,0x9c23,0x45ac,0xa0,0x4f,0x98,0x7a,0xc2,0x9a,0xd0,0xd3); + DEFINE_GUID(IID_IDebugEventContextCallbacks,0x61a4905b,0x23f9,0x4247,0xb3,0xc5,0x53,0xd0,0x87,0x52,0x9a,0xb7); DEFINE_GUID(IID_IDebugInputCallbacks,0x9f50e42c,0xf136,0x499e,0x9a,0x97,0x73,0x03,0x6c,0x94,0xed,0x2d); DEFINE_GUID(IID_IDebugOutputCallbacks,0x4bf58045,0xd654,0x4c40,0xb0,0xaf,0x68,0x30,0x90,0xf3,0x56,0xdc); + DEFINE_GUID(IID_IDebugOutputCallbacksWide,0x4c7fd663,0xc394,0x4e26,0x8e,0xf1,0x34,0xad,0x5e,0xd3,0x76,0x4c); DEFINE_GUID(IID_IDebugRegisters,0xce289126,0x9e84,0x45a7,0x93,0x7e,0x67,0xbb,0x18,0x69,0x14,0x93); DEFINE_GUID(IID_IDebugSymbolGroup,0xf2528316,0x0f1a,0x4431,0xae,0xed,0x11,0xd0,0x96,0xe1,0xe2,0xab); DEFINE_GUID(IID_IDebugSymbols,0x8c31e98c,0x983a,0x48a5,0x90,0x16,0x6f,0xe5,0xd6,0x67,0xa9,0x50); @@ -47,10 +56,16 @@ extern "C" { typedef struct IDebugAdvanced *PDEBUG_ADVANCED; typedef struct IDebugBreakpoint *PDEBUG_BREAKPOINT; + typedef struct IDebugBreakpoint2 *PDEBUG_BREAKPOINT2; typedef struct IDebugClient *PDEBUG_CLIENT; typedef struct IDebugClient2 *PDEBUG_CLIENT2; typedef struct IDebugClient3 *PDEBUG_CLIENT3; typedef struct IDebugClient4 *PDEBUG_CLIENT4; + typedef struct IDebugClient5 *PDEBUG_CLIENT5; + typedef struct IDebugClient6 *PDEBUG_CLIENT6; + typedef struct IDebugClient7 *PDEBUG_CLIENT7; + typedef struct IDebugClient8 *PDEBUG_CLIENT8; + typedef struct IDebugClient9 *PDEBUG_CLIENT9; typedef struct IDebugControl *PDEBUG_CONTROL; typedef struct IDebugControl2 *PDEBUG_CONTROL2; typedef struct IDebugControl3 *PDEBUG_CONTROL3; @@ -58,8 +73,11 @@ extern "C" { typedef struct IDebugDataSpaces2 *PDEBUG_DATA_SPACES2; typedef struct IDebugDataSpaces3 *PDEBUG_DATA_SPACES3; typedef struct IDebugEventCallbacks *PDEBUG_EVENT_CALLBACKS; + typedef struct IDebugEventCallbacksWide *PDEBUG_EVENT_CALLBACKS_WIDE; + typedef struct IDebugEventContextCallbacks *PDEBUG_EVENT_CONTEXT_CALLBACKS; typedef struct IDebugInputCallbacks *PDEBUG_INPUT_CALLBACKS; typedef struct IDebugOutputCallbacks *PDEBUG_OUTPUT_CALLBACKS; + typedef struct IDebugOutputCallbacksWide *PDEBUG_OUTPUT_CALLBACKS_WIDE; typedef struct IDebugRegisters *PDEBUG_REGISTERS; typedef struct IDebugSymbolGroup *PDEBUG_SYMBOL_GROUP; typedef struct IDebugSymbols *PDEBUG_SYMBOLS; @@ -147,6 +165,42 @@ __CRT_UUID_DECL(IDebugAdvanced,0xf2df5f53,0x071f,0x47bd,0x9d,0xe6,0x57,0x34,0xc3 __CRT_UUID_DECL(IDebugBreakpoint,0x5bd9d474,0x5975,0x423a,0xb8,0x8b,0x65,0xa8,0xe7,0x11,0x0e,0x65) #endif +#undef INTERFACE +#define INTERFACE IDebugBreakpoint2 + DECLARE_INTERFACE_(IDebugBreakpoint2, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(GetId)(THIS_ PULONG Id) PURE; + STDMETHOD(GetType)(THIS_ PULONG BreakType, PULONG ProcType) PURE; + STDMETHOD(GetAdder)(THIS_ PDEBUG_CLIENT *Adder) PURE; + STDMETHOD(GetFlags)(THIS_ PULONG Flags) PURE; + STDMETHOD(AddFlags)(THIS_ ULONG Flags) PURE; + STDMETHOD(RemoveFlags)(THIS_ ULONG Flags) PURE; + STDMETHOD(SetFlags)(THIS_ ULONG Flags) PURE; + STDMETHOD(GetOffset)(THIS_ PULONG64 Offset) PURE; + STDMETHOD(SetOffset)(THIS_ ULONG64 Offset) PURE; + STDMETHOD(GetDataParameters)(THIS_ PULONG Size, PULONG AccessType) PURE; + STDMETHOD(SetDataParameters)(THIS_ ULONG Size, ULONG AccessType) PURE; + STDMETHOD(GetPassCount)(THIS_ PULONG Count) PURE; + STDMETHOD(SetPassCount)(THIS_ ULONG Count) PURE; + STDMETHOD(GetCurrentPassCount)(THIS_ PULONG Count) PURE; + STDMETHOD(GetMatchThreadId)(THIS_ PULONG Id) PURE; + STDMETHOD(SetMatchThreadId)(THIS_ ULONG Thread) PURE; + STDMETHOD(GetCommand)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE; + STDMETHOD(SetCommand)(THIS_ PCSTR Command) PURE; + STDMETHOD(GetOffsetExpression)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG ExpressionSize) PURE; + STDMETHOD(SetOffsetExpression)(THIS_ PCSTR Expression) PURE; + STDMETHOD(GetParameters)(THIS_ PDEBUG_BREAKPOINT_PARAMETERS Params) PURE; + STDMETHOD(GetCommandWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG CommandSize) PURE; + STDMETHOD(SetCommandWide)(THIS_ PCWSTR Command) PURE; + STDMETHOD(GetOffsetExpressionWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG ExpressionSize) PURE; + STDMETHOD(SetOffsetExpressionWide)(THIS_ PCWSTR Expression) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugBreakpoint2,0x1b278d20,0x79f2,0x426e,0xa3,0xf9,0xc1,0xdd,0xf3,0x75,0xd4,0x8e) +#endif + #define DEBUG_ATTACH_KERNEL_CONNECTION 0x00000000 #define DEBUG_ATTACH_LOCAL_KERNEL 0x00000001 #define DEBUG_ATTACH_EXDI_DRIVER 0x00000002 @@ -487,6 +541,532 @@ __CRT_UUID_DECL(IDebugClient3,0xdd492d7f,0x71b8,0x4ad6,0xa8,0xdc,0x1c,0x88,0x74, __CRT_UUID_DECL(IDebugClient4,0xca83c3de,0x5089,0x4cf8,0x93,0xc8,0xd8,0x92,0x38,0x7f,0x2a,0x5e) #endif +#undef INTERFACE +#define INTERFACE IDebugClient5 + DECLARE_INTERFACE_(IDebugClient5, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; + STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; + STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; + STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE; + STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE; + STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; + STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE; + STDMETHOD(TerminateProcesses)(THIS) PURE; + STDMETHOD(DetachProcesses)(THIS) PURE; + STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; + STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; + STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; + STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; + STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; + STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; + STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; + STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE; + STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE; + STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; + STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; + STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; + STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE; + STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; + STDMETHOD(FlushCallbacks)(THIS) PURE; + STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE; + STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE; + STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE; + STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE; + STDMETHOD(TerminateCurrentProcess)(THIS) PURE; + STDMETHOD(DetachCurrentProcess)(THIS) PURE; + STDMETHOD(AbandonCurrentProcess)(THIS) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE; + STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE; + STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE; + STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE; + STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE; + STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE; + STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE; + STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE; + STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE; + STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE; + STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE; + STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE; + STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugClient5,0xe3acb9d7,0x7ec2,0x4f0c,0xa0,0xda,0xe8,0x1e,0x0c,0xbb,0xe6,0x28) +#endif + +#undef INTERFACE +#define INTERFACE IDebugClient6 + DECLARE_INTERFACE_(IDebugClient6, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; + STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; + STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; + STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE; + STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE; + STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; + STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE; + STDMETHOD(TerminateProcesses)(THIS) PURE; + STDMETHOD(DetachProcesses)(THIS) PURE; + STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; + STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; + STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; + STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; + STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; + STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; + STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; + STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE; + STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE; + STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; + STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; + STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; + STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE; + STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; + STDMETHOD(FlushCallbacks)(THIS) PURE; + STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE; + STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE; + STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE; + STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE; + STDMETHOD(TerminateCurrentProcess)(THIS) PURE; + STDMETHOD(DetachCurrentProcess)(THIS) PURE; + STDMETHOD(AbandonCurrentProcess)(THIS) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE; + STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE; + STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE; + STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE; + STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE; + STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE; + STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE; + STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE; + STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE; + STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE; + STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE; + STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE; + STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE; + STDMETHOD(SetEventContextCallbacks)(THIS_ PDEBUG_EVENT_CONTEXT_CALLBACKS Callbacks) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugClient6,0xfd28b4c5,0xc498,0x4686,0xa2,0x8e,0x62,0xca,0xd2,0x15,0x4e,0xb3) +#endif + +#undef INTERFACE +#define INTERFACE IDebugClient7 + DECLARE_INTERFACE_(IDebugClient7, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; + STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; + STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; + STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE; + STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE; + STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; + STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE; + STDMETHOD(TerminateProcesses)(THIS) PURE; + STDMETHOD(DetachProcesses)(THIS) PURE; + STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; + STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; + STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; + STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; + STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; + STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; + STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; + STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE; + STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE; + STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; + STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; + STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; + STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE; + STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; + STDMETHOD(FlushCallbacks)(THIS) PURE; + STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE; + STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE; + STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE; + STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE; + STDMETHOD(TerminateCurrentProcess)(THIS) PURE; + STDMETHOD(DetachCurrentProcess)(THIS) PURE; + STDMETHOD(AbandonCurrentProcess)(THIS) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE; + STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE; + STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE; + STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE; + STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE; + STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE; + STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE; + STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE; + STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE; + STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE; + STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE; + STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE; + STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE; + STDMETHOD(SetEventContextCallbacks)(THIS_ PDEBUG_EVENT_CONTEXT_CALLBACKS Callbacks) PURE; + STDMETHOD(SetClientContext)(THIS_ PVOID Context, ULONG ContextSize) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugClient7,0x13586be3,0x542e,0x481e,0xb1,0xf2,0x84,0x97,0xba,0x74,0xf9,0xa9) +#endif + +#undef INTERFACE +#define INTERFACE IDebugClient8 + DECLARE_INTERFACE_(IDebugClient8, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; + STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; + STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; + STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE; + STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE; + STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; + STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE; + STDMETHOD(TerminateProcesses)(THIS) PURE; + STDMETHOD(DetachProcesses)(THIS) PURE; + STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; + STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; + STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; + STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; + STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; + STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; + STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; + STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE; + STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE; + STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; + STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; + STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; + STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE; + STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; + STDMETHOD(FlushCallbacks)(THIS) PURE; + STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE; + STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE; + STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE; + STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE; + STDMETHOD(TerminateCurrentProcess)(THIS) PURE; + STDMETHOD(DetachCurrentProcess)(THIS) PURE; + STDMETHOD(AbandonCurrentProcess)(THIS) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE; + STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE; + STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE; + STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE; + STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE; + STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE; + STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE; + STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE; + STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE; + STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE; + STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE; + STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE; + STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE; + STDMETHOD(SetEventContextCallbacks)(THIS_ PDEBUG_EVENT_CONTEXT_CALLBACKS Callbacks) PURE; + STDMETHOD(SetClientContext)(THIS_ PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(OpenDumpFileWide2)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG AlternateArch) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugClient8,0xcec43add,0x6375,0x469e,0x83,0xd5,0x41,0x4e,0x40,0x33,0xc1,0x9a) +#endif + +#undef INTERFACE +#define INTERFACE IDebugClient9 + DECLARE_INTERFACE_(IDebugClient9, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(AttachKernel)(THIS_ ULONG Flags, PCSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptions)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptions)(THIS_ PCSTR Options) PURE; + STDMETHOD(StartProcessServer)(THIS_ ULONG Flags, PCSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServer)(THIS_ PCSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(DisconnectProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(GetRunningProcessSystemIds)(THIS_ ULONG64 Server, PULONG Ids, ULONG Count, PULONG ActualCount) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableName)(THIS_ ULONG64 Server, PCSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescription)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(AttachProcess)(THIS_ ULONG64 Server, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcess)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttach)(THIS_ ULONG64 Server, PSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(GetProcessOptions)(THIS_ PULONG Options) PURE; + STDMETHOD(AddProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(RemoveProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(SetProcessOptions)(THIS_ ULONG Options) PURE; + STDMETHOD(OpenDumpFile)(THIS_ PCSTR DumpFile) PURE; + STDMETHOD(WriteDumpFile)(THIS_ PCSTR DumpFile, ULONG Qualifier) PURE; + STDMETHOD(ConnectSession)(THIS_ ULONG Flags, ULONG HistoryLimit) PURE; + STDMETHOD(StartServer)(THIS_ PCSTR Options) PURE; + STDMETHOD(OutputServers)(THIS_ ULONG OutputControl, PCSTR Machine, ULONG Flags) PURE; + STDMETHOD(TerminateProcesses)(THIS) PURE; + STDMETHOD(DetachProcesses)(THIS) PURE; + STDMETHOD(EndSession)(THIS_ ULONG Flags) PURE; + STDMETHOD(GetExitCode)(THIS_ PULONG Code) PURE; + STDMETHOD(DispatchCallbacks)(THIS_ ULONG Timeout) PURE; + STDMETHOD(ExitDispatch)(THIS_ PDEBUG_CLIENT Client) PURE; + STDMETHOD(CreateClient)(THIS_ PDEBUG_CLIENT *Client) PURE; + STDMETHOD(GetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetInputCallbacks)(THIS_ PDEBUG_INPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetOutputCallbacks)(THIS_ PDEBUG_OUTPUT_CALLBACKS Callbacks) PURE; + STDMETHOD(GetOutputMask)(THIS_ PULONG Mask) PURE; + STDMETHOD(SetOutputMask)(THIS_ ULONG Mask) PURE; + STDMETHOD(GetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, PULONG Mask) PURE; + STDMETHOD(SetOtherOutputMask)(THIS_ PDEBUG_CLIENT Client, ULONG Mask) PURE; + STDMETHOD(GetOutputWidth)(THIS_ PULONG Columns) PURE; + STDMETHOD(SetOutputWidth)(THIS_ ULONG Columns) PURE; + STDMETHOD(GetOutputLinePrefix)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefix)(THIS_ PCSTR Prefix) PURE; + STDMETHOD(GetIdentity)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentity)(THIS_ ULONG OutputControl, ULONG Flags, PCSTR Format) PURE; + STDMETHOD(GetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS *Callbacks) PURE; + STDMETHOD(SetEventCallbacks)(THIS_ PDEBUG_EVENT_CALLBACKS Callbacks) PURE; + STDMETHOD(FlushCallbacks)(THIS) PURE; + STDMETHOD(WriteDumpFile2)(THIS_ PCSTR DumpFile, ULONG Qualifier, ULONG FormatFlags, PCSTR Comment) PURE; + STDMETHOD(AddDumpInformationFile)(THIS_ PCSTR InfoFile, ULONG Type) PURE; + STDMETHOD(EndProcessServer)(THIS_ ULONG64 Server) PURE; + STDMETHOD(WaitForProcessServerEnd)(THIS_ ULONG Timeout) PURE; + STDMETHOD(IsKernelDebuggerEnabled)(THIS) PURE; + STDMETHOD(TerminateCurrentProcess)(THIS) PURE; + STDMETHOD(DetachCurrentProcess)(THIS) PURE; + STDMETHOD(AbandonCurrentProcess)(THIS) PURE; + STDMETHOD(GetRunningProcessSystemIdByExecutableNameWide)(THIS_ ULONG64 Server, PCWSTR ExeName, ULONG Flags, PULONG Id) PURE; + STDMETHOD(GetRunningProcessDescriptionWide)(THIS_ ULONG64 Server, ULONG SystemId, ULONG Flags, PWSTR ExeName, ULONG ExeNameSize, PULONG ActualExeNameSize, PWSTR Description, ULONG DescriptionSize, PULONG ActualDescriptionSize) PURE; + STDMETHOD(CreateProcessWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags) PURE; + STDMETHOD(CreateProcessAndAttachWide)(THIS_ ULONG64 Server, PWSTR CommandLine, ULONG CreateFlags, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(OpenDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle) PURE; + STDMETHOD(WriteDumpFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Qualifier, ULONG FormatFlags, PCWSTR Comment) PURE; + STDMETHOD(AddDumpInformationFileWide)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG Type) PURE; + STDMETHOD(GetNumberDumpFiles)(THIS_ PULONG Number) PURE; + STDMETHOD(GetDumpFile)(THIS_ ULONG Index, PSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(GetDumpFileWide)(THIS_ ULONG Index, PWSTR Buffer, ULONG BufferSize, PULONG NameSize, PULONG64 Handle, PULONG Type) PURE; + STDMETHOD(AttachKernelWide)(THIS_ ULONG Flags, PCWSTR ConnectOptions) PURE; + STDMETHOD(GetKernelConnectionOptionsWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG OptionsSize) PURE; + STDMETHOD(SetKernelConnectionOptionsWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(StartProcessServerWide)(THIS_ ULONG Flags, PCWSTR Options, PVOID Reserved) PURE; + STDMETHOD(ConnectProcessServerWide)(THIS_ PCWSTR RemoteOptions, PULONG64 Server) PURE; + STDMETHOD(StartServerWide)(THIS_ PCWSTR Options) PURE; + STDMETHOD(OutputServersWide)(THIS_ ULONG OutputControl, PCWSTR Machine, ULONG Flags) PURE; + STDMETHOD(GetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetOutputCallbacksWide)(THIS_ PDEBUG_OUTPUT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(GetOutputLinePrefixWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG PrefixSize) PURE; + STDMETHOD(SetOutputLinePrefixWide)(THIS_ PCWSTR Prefix) PURE; + STDMETHOD(GetIdentityWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG IdentitySize) PURE; + STDMETHOD(OutputIdentityWide)(THIS_ ULONG OutputControl, ULONG Flags, PCWSTR Format) PURE; + STDMETHOD(GetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE *Callbacks) PURE; + STDMETHOD(SetEventCallbacksWide)(THIS_ PDEBUG_EVENT_CALLBACKS_WIDE Callbacks) PURE; + STDMETHOD(CreateProcess2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment) PURE; + STDMETHOD(CreateProcess2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment) PURE; + STDMETHOD(CreateProcessAndAttach2)(THIS_ ULONG64 Server, PSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCSTR InitialDirectory, PCSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(CreateProcessAndAttach2Wide)(THIS_ ULONG64 Server, PWSTR CommandLine, PVOID OptionsBuffer, ULONG OptionsBufferSize, PCWSTR InitialDirectory, PCWSTR Environment, ULONG ProcessId, ULONG AttachFlags) PURE; + STDMETHOD(PushOutputLinePrefix)(THIS_ PCSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PushOutputLinePrefixWide)(THIS_ PCWSTR NewPrefix, PULONG64 Handle) PURE; + STDMETHOD(PopOutputLinePrefix)(THIS_ ULONG64 Handle) PURE; + STDMETHOD(GetNumberInputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberOutputCallbacks)(THIS_ PULONG Count) PURE; + STDMETHOD(GetNumberEventCallbacks)(THIS_ ULONG EventFlags, PULONG Count) PURE; + STDMETHOD(GetQuitLockString)(THIS_ PSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockString)(THIS_ PCSTR String) PURE; + STDMETHOD(GetQuitLockStringWide)(THIS_ PWSTR Buffer, ULONG BufferSize, PULONG StringSize) PURE; + STDMETHOD(SetQuitLockStringWide)(THIS_ PCWSTR String) PURE; + STDMETHOD(SetEventContextCallbacks)(THIS_ PDEBUG_EVENT_CONTEXT_CALLBACKS Callbacks) PURE; + STDMETHOD(SetClientContext)(THIS_ PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(OpenDumpFileWide2)(THIS_ PCWSTR FileName, ULONG64 FileHandle, ULONG AlternateArch) PURE; + STDMETHOD(OpenDumpDirectoryWide)(THIS_ PCWSTR DirName, ULONG AlternateArch) PURE; + STDMETHOD(OpenDumpDirectory)(THIS_ PCSTR DumpDir, ULONG AlternativeArch) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugClient9,0x2c24cd5b,0x4d9e,0x4df4,0x8a,0x70,0x3d,0x37,0x44,0x0d,0x11,0x9f) +#endif + #define DEBUG_STATUS_NO_CHANGE 0 #define DEBUG_STATUS_GO 1 #define DEBUG_STATUS_GO_HANDLED 2 @@ -1440,6 +2020,63 @@ __CRT_UUID_DECL(IDebugDataSpaces3,0x23f79d6c,0x8aaf,0x4f7c,0xa6,0x07,0x99,0x95,0 __CRT_UUID_DECL(IDebugEventCallbacks,0x337be28b,0x5036,0x4d72,0xb6,0xbf,0xc4,0x5f,0xbb,0x9f,0x2e,0xaa) #endif +#undef INTERFACE +#define INTERFACE IDebugEventCallbacksWide + DECLARE_INTERFACE_(IDebugEventCallbacksWide, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(GetInterestMask)(THIS_ PULONG Mask) PURE; + STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT2 Bp) PURE; + STDMETHOD(Exception)(THIS_ PEXCEPTION_RECORD64 Exception, ULONG FirstChance) PURE; + STDMETHOD(CreateThread)(THIS_ ULONG64 Handle, ULONG64 DataOffset, ULONG64 StartOffset) PURE; + STDMETHOD(ExitThread)(THIS_ ULONG ExitCode) PURE; + STDMETHOD(CreateProcess)(THIS_ ULONG64 ImageFileHandle, ULONG64 Handle, ULONG64 BaseOffset, ULONG ModuleSize, PCWSTR ModuleName, PCWSTR ImageName, ULONG CheckSum, ULONG TimeDateStamp, ULONG64 InitialThreadHandle, ULONG64 ThreadDataOffset, ULONG64 StartOffset) PURE; + STDMETHOD(ExitProcess)(THIS_ ULONG ExitCode) PURE; + STDMETHOD(LoadModule)(THIS_ ULONG64 ImageFileHandle, ULONG64 BaseOffset, ULONG ModuleSize, PCWSTR ModuleName, PCWSTR ImageName, ULONG CheckSum, ULONG TimeDateStamp) PURE; + STDMETHOD(UnloadModule)(THIS_ PCWSTR ImageBaseName, ULONG64 BaseOffset) PURE; + STDMETHOD(SystemError)(THIS_ ULONG Error, ULONG Level) PURE; + STDMETHOD(SessionStatus)(THIS_ ULONG Status) PURE; + STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG Flags, ULONG64 Argument) PURE; + STDMETHOD(ChangeEngineState)(THIS_ ULONG Flags, ULONG64 Argument) PURE; + STDMETHOD(ChangeSymbolState)(THIS_ ULONG Flags, ULONG64 Argument) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugEventCallbacksWide,0x0690e046,0x9c23,0x45ac,0xa0,0x4f,0x98,0x7a,0xc2,0x9a,0xd0,0xd3) +#endif + +typedef struct _DEBUG_EVENT_CONTEXT { + ULONG Size; + ULONG ProcessEngineId; + ULONG ThreadEngineId; + ULONG FrameEngineId; +} DEBUG_EVENT_CONTEXT, *PDEBUG_EVENT_CONTEXT; + +#undef INTERFACE +#define INTERFACE IDebugEventContextCallbacks + DECLARE_INTERFACE_(IDebugEventContextCallbacks, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(GetInterestMask)(THIS_ PULONG Mask) PURE; + STDMETHOD(Breakpoint)(THIS_ PDEBUG_BREAKPOINT2 Bp, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(Exception)(THIS_ PEXCEPTION_RECORD64 Exception, ULONG FirstChance, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(CreateThread)(THIS_ ULONG64 Handle, ULONG64 DataOffset, ULONG64 StartOffset, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(ExitThread)(THIS_ ULONG ExitCode, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(CreateProcess)(THIS_ ULONG64 ImageFileHandle, ULONG64 Handle, ULONG64 BaseOffset, ULONG ModuleSize, PCWSTR ModuleName, PCWSTR ImageName, ULONG CheckSum, ULONG TimeDateStamp, ULONG64 InitialThreadHandle, ULONG64 ThreadDataOffset, ULONG64 StartOffset, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(ExitProcess)(THIS_ ULONG ExitCode, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(LoadModule)(THIS_ ULONG64 ImageFileHandle, ULONG64 BaseOffset, ULONG ModuleSize, PCWSTR ModuleName, PCWSTR ImageName, ULONG CheckSum, ULONG TimeDateStamp, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(UnloadModule)(THIS_ PCWSTR ImageBaseName, ULONG64 BaseOffset, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(SystemError)(THIS_ ULONG Error, ULONG Level, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(SessionStatus)(THIS_ ULONG Status) PURE; + STDMETHOD(ChangeDebuggeeState)(THIS_ ULONG Flags, ULONG64 Argument, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(ChangeEngineState)(THIS_ ULONG Flags, ULONG64 Argument, PVOID Context, ULONG ContextSize) PURE; + STDMETHOD(ChangeSymbolState)(THIS_ ULONG Flags, ULONG64 Argument) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugEventContextCallbacks,0x61a4905b,0x23f9,0x4247,0xb3,0xc5,0x53,0xd0,0x87,0x52,0x9a,0xb7) +#endif + #undef INTERFACE #define INTERFACE IDebugInputCallbacks DECLARE_INTERFACE_(IDebugInputCallbacks,IUnknown) { @@ -1465,6 +2102,18 @@ __CRT_UUID_DECL(IDebugInputCallbacks,0x9f50e42c,0xf136,0x499e,0x9a,0x97,0x73,0x0 __CRT_UUID_DECL(IDebugOutputCallbacks,0x4bf58045,0xd654,0x4c40,0xb0,0xaf,0x68,0x30,0x90,0xf3,0x56,0xdc) #endif +#undef INTERFACE +#define INTERFACE IDebugOutputCallbacksWide + DECLARE_INTERFACE_(IDebugOutputCallbacksWide, IUnknown) { + STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + STDMETHOD(Output)(THIS_ ULONG Mask, PCWSTR Text) PURE; + }; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDebugOutputCallbacksWide,0x4c7fd663,0xc394,0x4e26,0x8e,0xf1,0x34,0xad,0x5e,0xd3,0x76,0x4c) +#endif + #define DEBUG_REGISTER_SUB_REGISTER 0x00000001 #define DEBUG_REGISTERS_DEFAULT 0x00000000 -- 2.46.0
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
