From 4c671ba1e4be5f1823df1def4ffe68ff266deb08 Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath <[email protected]>
Date: Tue, 13 Aug 2024 02:47:11 +0000
Subject: [PATCH 5/5] include: Add new DebugSystemObjects4 interface in dbgeng.h

Signed-off-by: Biswapriyo Nath <[email protected]>
---
 mingw-w64-headers/include/dbgeng.h | 58 ++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/mingw-w64-headers/include/dbgeng.h 
b/mingw-w64-headers/include/dbgeng.h
index 83b7ccb..8371aad 100644
--- a/mingw-w64-headers/include/dbgeng.h
+++ b/mingw-w64-headers/include/dbgeng.h
@@ -71,6 +71,7 @@ extern "C" {
   
DEFINE_GUID(IID_IDebugSystemObjects,0x6b86fe2c,0x2c4f,0x4f0c,0x9d,0xa2,0x17,0x43,0x11,0xac,0xc3,0x27);
   
DEFINE_GUID(IID_IDebugSystemObjects2,0x0ae9f5ff,0x1852,0x4679,0xb0,0x55,0x49,0x4b,0xee,0x64,0x07,0xee);
   
DEFINE_GUID(IID_IDebugSystemObjects3,0xe9676e2f,0xe286,0x4ea3,0xb0,0xf9,0xdf,0xe5,0xd9,0xfc,0x33,0x0e);
+  
DEFINE_GUID(IID_IDebugSystemObjects4,0x489468e6,0x7d0f,0x4af5,0x87,0xab,0x25,0x20,0x74,0x54,0xd5,0x53);
 
   typedef struct IDebugAdvanced *PDEBUG_ADVANCED;
   typedef struct IDebugAdvanced2 *PDEBUG_ADVANCED2;
@@ -121,6 +122,7 @@ extern "C" {
   typedef struct IDebugSystemObjects *PDEBUG_SYSTEM_OBJECTS;
   typedef struct IDebugSystemObjects2 *PDEBUG_SYSTEM_OBJECTS2;
   typedef struct IDebugSystemObjects3 *PDEBUG_SYSTEM_OBJECTS3;
+  typedef struct IDebugSystemObjects4 *PDEBUG_SYSTEM_OBJECTS4;
 
 #define DEBUG_EXTEND64(Addr) ((ULONG64)(LONG64)(LONG)(Addr))
 
@@ -4236,6 +4238,62 @@ 
__CRT_UUID_DECL(IDebugSystemObjects2,0x0ae9f5ff,0x1852,0x4679,0xb0,0x55,0x49,0x4
 
__CRT_UUID_DECL(IDebugSystemObjects3,0xe9676e2f,0xe286,0x4ea3,0xb0,0xf9,0xdf,0xe5,0xd9,0xfc,0x33,0x0e)
 #endif
 
+#undef INTERFACE
+#define INTERFACE IDebugSystemObjects4
+  DECLARE_INTERFACE_(IDebugSystemObjects4, IUnknown) {
+    STDMETHOD(QueryInterface)(THIS_ REFIID InterfaceId, PVOID *Interface) PURE;
+    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    STDMETHOD(GetEventThread)(THIS_ PULONG Id) PURE;
+    STDMETHOD(GetEventProcess)(THIS_ PULONG Id) PURE;
+    STDMETHOD(GetCurrentThreadId)(THIS_ PULONG Id) PURE;
+    STDMETHOD(SetCurrentThreadId)(THIS_ ULONG Id) PURE;
+    STDMETHOD(GetCurrentProcessId)(THIS_ PULONG Id) PURE;
+    STDMETHOD(SetCurrentProcessId)(THIS_ ULONG Id) PURE;
+    STDMETHOD(GetNumberThreads)(THIS_ PULONG Number) PURE;
+    STDMETHOD(GetTotalNumberThreads)(THIS_ PULONG Total, PULONG 
LargestProcess) PURE;
+    STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG Start, ULONG Count, PULONG Ids, 
PULONG SysIds) PURE;
+    STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG Processor, PULONG Id) PURE;
+    STDMETHOD(GetCurrentThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
+    STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 Offset, PULONG Id) PURE;
+    STDMETHOD(GetCurrentThreadTeb)(THIS_ PULONG64 Offset) PURE;
+    STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 Offset, PULONG Id) PURE;
+    STDMETHOD(GetCurrentThreadSystemId)(THIS_ PULONG SysId) PURE;
+    STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG SysId, PULONG Id) PURE;
+    STDMETHOD(GetCurrentThreadHandle)(THIS_ PULONG64 Handle) PURE;
+    STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 Handle, PULONG Id) PURE;
+    STDMETHOD(GetNumberProcesses)(THIS_ PULONG Number) PURE;
+    STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG Start, ULONG Count, PULONG 
Ids, PULONG SysIds) PURE;
+    STDMETHOD(GetCurrentProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
+    STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 Offset, PULONG Id) PURE;
+    STDMETHOD(GetCurrentProcessPeb)(THIS_ PULONG64 Offset) PURE;
+    STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 Offset, PULONG Id) PURE;
+    STDMETHOD(GetCurrentProcessSystemId)(THIS_ PULONG SysId) PURE;
+    STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG SysId, PULONG Id) PURE;
+    STDMETHOD(GetCurrentProcessHandle)(THIS_ PULONG64 Handle) PURE;
+    STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 Handle, PULONG Id) PURE;
+    STDMETHOD(GetCurrentProcessExecutableName)(THIS_ PSTR Buffer, ULONG 
BufferSize, PULONG ExeSize) PURE;
+    STDMETHOD(GetCurrentProcessUpTime)(THIS_ PULONG UpTime) PURE;
+    STDMETHOD(GetImplicitThreadDataOffset)(THIS_ PULONG64 Offset) PURE;
+    STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 Offset) PURE;
+    STDMETHOD(GetImplicitProcessDataOffset)(THIS_ PULONG64 Offset) PURE;
+    STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 Offset) PURE;
+    STDMETHOD(GetEventSystem)(THIS_ PULONG Id) PURE;
+    STDMETHOD(GetCurrentSystemId)(THIS_ PULONG Id) PURE;
+    STDMETHOD(SetCurrentSystemId)(THIS_ ULONG Id) PURE;
+    STDMETHOD(GetNumberSystems)(THIS_ PULONG Number) PURE;
+    STDMETHOD(GetSystemIdsByIndex)(THIS_ ULONG Start, ULONG Count, PULONG Ids) 
PURE;
+    STDMETHOD(GetTotalNumberThreadsAndProcesses)(THIS_ PULONG TotalThreads, 
PULONG TotalProcesses, PULONG LargestProcessThreads, PULONG 
LargestSystemThreads, PULONG LargestSystemProcesses) PURE;
+    STDMETHOD(GetCurrentSystemServer)(THIS_ PULONG64 Server) PURE;
+    STDMETHOD(GetSystemByServer)(THIS_ ULONG64 Server, PULONG Id) PURE;
+    STDMETHOD(GetCurrentSystemServerName)(THIS_ PSTR Buffer, ULONG BufferSize, 
PULONG NameSize) PURE;
+    STDMETHOD(GetCurrentProcessExecutableNameWide)(THIS_ PWSTR Buffer, ULONG 
BufferSize, PULONG ExeSize) PURE;
+    STDMETHOD(GetCurrentSystemServerNameWide)(THIS_ PWSTR Buffer, ULONG 
BufferSize, PULONG NameSize) PURE;
+  };
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDebugSystemObjects4,0x489468e6,0x7d0f,0x4af5,0x87,0xab,0x25,0x20,0x74,0x54,0xd5,0x53)
+#endif
+
 #define DEBUG_COMMAND_EXCEPTION_ID 0xdbe00dbe
 
 #define DEBUG_CMDEX_INVALID 0x00000000
-- 
2.46.0

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to