[PATCH] include: Add more dbgeng interface definitions.

Nikolay Sivov nsivov at codeweavers.com
Wed Apr 10 05:40:32 CDT 2019


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 include/dbgeng.h | 207 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 207 insertions(+)

diff --git a/include/dbgeng.h b/include/dbgeng.h
index 268fcba2a2..8c5c78c07f 100644
--- a/include/dbgeng.h
+++ b/include/dbgeng.h
@@ -27,11 +27,16 @@ DEFINE_GUID(IID_IDebugOutputCallbacks,    0x4bf58045, 0xd654, 0x4c40, 0xb0, 0xaf
 DEFINE_GUID(IID_IDebugEventCallbacks,     0x337be28b, 0x5036, 0x4d72, 0xb6, 0xbf, 0xc4, 0x5f, 0xbb, 0x9f, 0x2e, 0xaa);
 DEFINE_GUID(IID_IDebugClient,             0x27fe5639, 0x8407, 0x4f47, 0x83, 0x64, 0xee, 0x11, 0x8f, 0xb0, 0x8a, 0xc8);
 DEFINE_GUID(IID_IDebugDataSpaces,         0x88f7dfab, 0x3ea7, 0x4c3a, 0xae, 0xfb, 0xc4, 0xe8, 0x10, 0x61, 0x73, 0xaa);
+DEFINE_GUID(IID_IDebugDataSpaces2,        0x7a5e852f, 0x96e9, 0x468f, 0xac, 0x1b, 0x0b, 0x3a, 0xdd, 0xc4, 0xa0, 0x49);
 DEFINE_GUID(IID_IDebugSymbols,            0x8c31e98c, 0x983a, 0x48a5, 0x90, 0x16, 0x6f, 0xe5, 0xd6, 0x67, 0xa9, 0x50);
 DEFINE_GUID(IID_IDebugSymbols2,           0x3a707211, 0xafdd, 0x4495, 0xad, 0x4f, 0x56, 0xfe, 0xcd, 0xf8, 0x16, 0x3f);
 DEFINE_GUID(IID_IDebugSymbols3,           0xf02fbecc, 0x50ac, 0x4f36, 0x9a, 0xd9, 0xc9, 0x75, 0xe8, 0xf3, 0x2f, 0xf8);
 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_IDebugAdvanced,           0xf2df5f53, 0x071f, 0x47bd, 0x9d, 0xe6, 0x57, 0x34, 0xc3, 0xfe, 0xd6, 0x89);
+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);
 
 /* Engine options */
 #define DEBUG_ENGOPT_IGNORE_DBGHELP_VERSION         0x00000001
@@ -154,6 +159,7 @@ typedef struct _DEBUG_BREAKPOINT_PARAMETERS
 
 typedef struct _WINDBG_EXTENSION_APIS32 *PWINDBG_EXTENSION_APIS32;
 typedef struct _WINDBG_EXTENSION_APIS64 *PWINDBG_EXTENSION_APIS64;
+typedef struct _MEMORY_BASIC_INFORMATION64 *PMEMORY_BASIC_INFORMATION64;
 
 typedef struct _DEBUG_SPECIFIC_FILTER_PARAMETERS
 {
@@ -414,6 +420,54 @@ DECLARE_INTERFACE_(IDebugDataSpaces, IUnknown)
 };
 #undef INTERFACE
 
+#define INTERFACE IDebugDataSpaces2
+DECLARE_INTERFACE_(IDebugDataSpaces2, IUnknown)
+{
+    /* IUnknown */
+    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /* IDebugDataSpaces */
+    STDMETHOD(ReadVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
+    STDMETHOD(WriteVirtual)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
+    STDMETHOD(SearchVirtual)(THIS_ ULONG64 offset, ULONG64 length, void *pattern, ULONG pattern_size,
+            ULONG pattern_granularity, ULONG64 *ret_offset) PURE;
+    STDMETHOD(ReadVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
+    STDMETHOD(WriteVirtualUncached)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
+    STDMETHOD(ReadPointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
+    STDMETHOD(WritePointersVirtual)(THIS_ ULONG count, ULONG64 offset, ULONG64 *pointers) PURE;
+    STDMETHOD(ReadPhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *read_len) PURE;
+    STDMETHOD(WritePhysical)(THIS_ ULONG64 offset, void *buffer, ULONG buffer_size, ULONG *written) PURE;
+    STDMETHOD(ReadControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
+            ULONG *read_len) PURE;
+    STDMETHOD(WriteControl)(THIS_ ULONG processor, ULONG64 offset, void *buffer, ULONG buffer_size,
+            ULONG *written) PURE;
+    STDMETHOD(ReadIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
+            ULONG buffer_size, ULONG *read_len) PURE;
+    STDMETHOD(WriteIo)(THIS_ ULONG type, ULONG bus_number, ULONG address_space, ULONG64 offset, void *buffer,
+            ULONG buffer_size, ULONG *written) PURE;
+    STDMETHOD(ReadMsr)(THIS_ ULONG msr, ULONG64 *value) PURE;
+    STDMETHOD(WriteMsr)(THIS_ ULONG msr, ULONG64 value) PURE;
+    STDMETHOD(ReadBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
+            ULONG buffer_size, ULONG *read_len) PURE;
+    STDMETHOD(WriteBusData)(THIS_ ULONG data_type, ULONG bus_number, ULONG slot_number, ULONG offset, void *buffer,
+            ULONG buffer_size, ULONG *written) PURE;
+    STDMETHOD(CheckLowMemory)(THIS) PURE;
+    STDMETHOD(ReadDebuggerData)(THIS_ ULONG index, void *buffer, ULONG buffer_size, ULONG *data_size) PURE;
+    STDMETHOD(ReadProcessorSystemData)(THIS_ ULONG processor, ULONG index, void *buffer, ULONG buffer_size,
+            ULONG *data_size) PURE;
+    /* IDebugDataSpaces2 */
+    STDMETHOD(VirtualToPhysical)(THIS_ ULONG64 virt, ULONG64 *physical) PURE;
+    STDMETHOD(GetVirtualTranslationPhysicalOffsets)(THIS_ ULONG64 virt, ULONG64 *offsets, ULONG offsets_size,
+            ULONG *levels) PURE;
+    STDMETHOD(ReadHandleData)(THIS_ ULONG64 handle, ULONG datatype, void *buffer, ULONG buffer_size,
+            ULONG *data_size) PURE;
+    STDMETHOD(FillVirtual)(THIS_ ULONG64 start, ULONG size, void *pattern, ULONG pattern_size, ULONG *filled) PURE;
+    STDMETHOD(FillPhysical)(THIS_ ULONG64 start, ULONG size, void *pattern, ULONG pattern_size, ULONG *filled) PURE;
+    STDMETHOD(QueryVirtual)(THIS_ ULONG64 offset, PMEMORY_BASIC_INFORMATION64 info) PURE;
+};
+#undef INTERFACE
+
 #define INTERFACE IDebugSymbols
 DECLARE_INTERFACE_(IDebugSymbols, IUnknown)
 {
@@ -1024,6 +1078,159 @@ DECLARE_INTERFACE_(IDebugControl2, IUnknown)
 };
 #undef INTERFACE
 
+#define INTERFACE IDebugAdvanced
+DECLARE_INTERFACE_(IDebugAdvanced, IUnknown)
+{
+    /* IUnknown */
+    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /* IDebugAdvanced */
+    STDMETHOD(GetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
+    STDMETHOD(SetThreadContext)(THIS_ void *context, ULONG context_size) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IDebugSystemObjects
+DECLARE_INTERFACE_(IDebugSystemObjects, IUnknown)
+{
+    /* IUnknown */
+    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /* IDebugSystemObjects */
+    STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
+    STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadId)(THIS_ ULONG *id) PURE;
+    STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
+    STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
+    STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
+    STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
+    STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
+    STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
+    STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
+    STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
+    STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
+    STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
+    STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
+    STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
+    STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IDebugSystemObjects2
+DECLARE_INTERFACE_(IDebugSystemObjects2, IUnknown)
+{
+    /* IUnknown */
+    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /* IDebugSystemObjects */
+    STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
+    STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadId)(THIS_ ULONG *id) PURE;
+    STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
+    STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
+    STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
+    STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
+    STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
+    STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
+    STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
+    STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
+    STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
+    STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
+    STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
+    STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
+    STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
+    /* IDebugSystemObjects2 */
+    STDMETHOD(GetCurrentProcessUpTime)(THIS_ ULONG *uptime) PURE;
+    STDMETHOD(GetImplicitThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 offset) PURE;
+    STDMETHOD(GetImplicitProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 offset) PURE;
+};
+#undef INTERFACE
+
+#define INTERFACE IDebugSystemObjects3
+DECLARE_INTERFACE_(IDebugSystemObjects3, IUnknown)
+{
+    /* IUnknown */
+    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /* IDebugSystemObjects */
+    STDMETHOD(GetEventThread)(THIS_ ULONG *id) PURE;
+    STDMETHOD(GetEventProcess)(THIS_ ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadId)(THIS_ ULONG *id) PURE;
+    STDMETHOD(SetCurrentThreadId)(THIS_ ULONG id) PURE;
+    STDMETHOD(SetCurrentProcessId)(THIS_ ULONG id) PURE;
+    STDMETHOD(GetNumberThreads)(THIS_ ULONG *number) PURE;
+    STDMETHOD(GetTotalNumberThreads)(THIS_ ULONG *total, ULONG *largest_process) PURE;
+    STDMETHOD(GetThreadIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
+    STDMETHOD(GetThreadIdByProcessor)(THIS_ ULONG processor, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetThreadIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadTeb)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetThreadIdByTeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadSystemId)(THIS_ ULONG *sysid) PURE;
+    STDMETHOD(GetThreadIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
+    STDMETHOD(GetCurrentThreadHandle)(THIS_ ULONG64 *handle) PURE;
+    STDMETHOD(GetThreadIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
+    STDMETHOD(GetNumberProcesses)(THIS_ ULONG *number) PURE;
+    STDMETHOD(GetProcessIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids, ULONG *sysids) PURE;
+    STDMETHOD(GetCurrentProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetProcessIdByDataOffset)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessPeb)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(GetProcessIdByPeb)(THIS_ ULONG64 offset, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessSystemId)(THIS_ ULONG *sysid) PURE;
+    STDMETHOD(GetProcessIdBySystemId)(THIS_ ULONG sysid, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessHandle)(THIS_ ULONG64 *handle) PURE;
+    STDMETHOD(GetProcessIdByHandle)(THIS_ ULONG64 handle, ULONG *id) PURE;
+    STDMETHOD(GetCurrentProcessExecutableName)(THIS_ char *buffer, ULONG buffer_size, ULONG *exe_size) PURE;
+    /* IDebugSystemObjects2 */
+    STDMETHOD(GetCurrentProcessUpTime)(THIS_ ULONG *uptime) PURE;
+    STDMETHOD(GetImplicitThreadDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(SetImplicitThreadDataOffset)(THIS_ ULONG64 offset) PURE;
+    STDMETHOD(GetImplicitProcessDataOffset)(THIS_ ULONG64 *offset) PURE;
+    STDMETHOD(SetImplicitProcessDataOffset)(THIS_ ULONG64 offset) PURE;
+    /* IDebugSystemObjects3 */
+    STDMETHOD(GetEventSystem)(THIS_ ULONG *id) PURE;
+    STDMETHOD(GetCurrentSystemId)(THIS_ ULONG *id) PURE;
+    STDMETHOD(SetCurrentSystemId)(THIS_ ULONG id) PURE;
+    STDMETHOD(GetNumberSystems)(THIS_ ULONG *number) PURE;
+    STDMETHOD(GetSystemIdsByIndex)(THIS_ ULONG start, ULONG count, ULONG *ids) PURE;
+    STDMETHOD(GetTotalNumberThreadsAndProcesses)(THIS_ ULONG *total_threads, ULONG *total_processes,
+            ULONG *largest_process_threads, ULONG *largest_system_threads, ULONG *largest_system_processes) PURE;
+    STDMETHOD(GetCurrentSystemServer)(THIS_ ULONG64 *server) PURE;
+    STDMETHOD(GetSystemByServer)(THIS_ ULONG64 server, ULONG *id) PURE;
+    STDMETHOD(GetCurrentSystemServerName)(THIS_ char *buffer, ULONG buffer_size, ULONG *name_size) PURE;
+};
+#undef INTERFACE
+
 HRESULT WINAPI DebugCreate(REFIID riid, void **out);
 
 #ifdef __cplusplus
-- 
2.20.1




More information about the wine-devel mailing list