| /* | |
| * File wdbgexts.h: definition of windbg extensions | |
| * (dbghelp.dll is seen as a windbg extension) | |
| * | |
| * Copyright (C) 2005, Eric Pouech | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| typedef struct EXT_API_VERSION | |
| { | |
| USHORT MajorVersion; | |
| USHORT MinorVersion; | |
| USHORT Revision; | |
| USHORT Reserved; | |
| } EXT_API_VERSION, *LPEXT_API_VERSION; | |
| typedef void (*PWINDBG_OUTPUT_ROUTINE)(PCSTR, ...); | |
| typedef ULONG_PTR (WINAPI *PWINDBG_GET_EXPRESSION)(PCSTR); | |
| typedef void (WINAPI *PWINDBG_GET_SYMBOL)(void*, char*, ULONG_PTR*); | |
| typedef ULONG (WINAPI *PWINDBG_DISASM)(ULONG_PTR*, PCSTR, ULONG); | |
| typedef ULONG (WINAPI *PWINDBG_CHECK_CONTROL_C)(void); | |
| typedef ULONG (WINAPI *PWINDBG_READ_PROCESS_MEMORY_ROUTINE)(ULONG_PTR, void*, ULONG, PULONG); | |
| typedef ULONG (WINAPI *PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE)(ULONG_PTR, const void*, ULONG, PULONG); | |
| typedef ULONG (WINAPI *PWINDBG_GET_THREAD_CONTEXT_ROUTINE)(ULONG, PCONTEXT, ULONG); | |
| typedef ULONG (WINAPI *PWINDBG_SET_THREAD_CONTEXT_ROUTINE)(ULONG, PCONTEXT, ULONG); | |
| typedef ULONG (WINAPI *PWINDBG_IOCTL_ROUTINE)(USHORT, void*); | |
| typedef struct _EXTSTACKTRACE | |
| { | |
| ULONG FramePointer; | |
| ULONG ProgramCounter; | |
| ULONG ReturnAddress; | |
| ULONG Args[4]; | |
| } EXTSTACKTRACE, *PEXTSTACKTRACE; | |
| typedef ULONG (WINAPI *PWINDBG_STACKTRACE_ROUTINE)(ULONG, ULONG, ULONG, PEXTSTACKTRACE, ULONG); | |
| typedef struct _WINDBG_EXTENSION_APIS | |
| { | |
| ULONG nSize; | |
| PWINDBG_OUTPUT_ROUTINE lpOutputRoutine; | |
| PWINDBG_GET_EXPRESSION lpGetExpressionRoutine; | |
| PWINDBG_GET_SYMBOL lpGetSymbolRoutine; | |
| PWINDBG_DISASM lpDisasmRoutine; | |
| PWINDBG_CHECK_CONTROL_C lpCheckControlCRoutine; | |
| PWINDBG_READ_PROCESS_MEMORY_ROUTINE lpReadProcessMemoryRoutine; | |
| PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE lpWriteProcessMemoryRoutine; | |
| PWINDBG_GET_THREAD_CONTEXT_ROUTINE lpGetThreadContextRoutine; | |
| PWINDBG_SET_THREAD_CONTEXT_ROUTINE lpSetThreadContextRoutine; | |
| PWINDBG_IOCTL_ROUTINE lpIoctlRoutine; | |
| PWINDBG_STACKTRACE_ROUTINE lpStackTraceRoutine; | |
| } WINDBG_EXTENSION_APIS, *PWINDBG_EXTENSION_APIS; |