|  | /* | 
|  | * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  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; |