summaryrefslogtreecommitdiffstats
path: root/private/mvdm/ieuvddex/ieuvddex.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/mvdm/ieuvddex/ieuvddex.h')
-rw-r--r--private/mvdm/ieuvddex/ieuvddex.h264
1 files changed, 264 insertions, 0 deletions
diff --git a/private/mvdm/ieuvddex/ieuvddex.h b/private/mvdm/ieuvddex/ieuvddex.h
new file mode 100644
index 000000000..664ade936
--- /dev/null
+++ b/private/mvdm/ieuvddex/ieuvddex.h
@@ -0,0 +1,264 @@
+/*++
+
+Copyright (c) 1991 Microsoft Corporation
+
+Module Name:
+
+ ieuvddex.h
+
+Abstract:
+
+ This file contains definitions for the IEU and VDD WinDbg extensions
+
+Author:
+
+ Dave Hastings (daveh) 1-Apr-1992
+
+Revision History:
+--*/
+#include <nt.h>
+#include <ntrtl.h>
+#include <nturtl.h>
+#include <windows.h>
+#define NOEXTAPI
+#include <wdbgexts.h>
+#include <ntsdexts.h>
+
+
+#if defined (i386)
+#include <vdm.h>
+#endif
+#include <vdmdbg.h>
+//
+// Macro for setting up pointers to WinDbg routines
+//
+
+#define SETUP_WINDBG_POINTERS( p ) { \
+ Print = p->lpOutputRoutine; \
+ GetExpression = p->lpGetExpressionRoutine; \
+ GetSymbol = p->lpGetSymbolRoutine; \
+ \
+ if ( p->nSize >= sizeof(WINDBG_EXTENSION_APIS) ) { \
+ fWinDbg = TRUE; \
+ ReadProcessMemWinDbg = p->lpReadProcessMemoryRoutine; \
+ WriteProcessMemWinDbg = p->lpWriteProcessMemoryRoutine; \
+ GetThreadContextWinDbg = p->lpGetThreadContextRoutine; \
+ SetThreadContextWinDbg = p->lpSetThreadContextRoutine; \
+ } else { \
+ fWinDbg = FALSE; \
+ } \
+}
+
+#define PRINTF (*Print)
+
+//
+// Pointers to WINDBG api
+//
+
+extern PNTSD_OUTPUT_ROUTINE Print;
+extern PNTSD_GET_EXPRESSION GetExpression;
+extern PNTSD_GET_SYMBOL GetSymbol;
+
+extern PWINDBG_READ_PROCESS_MEMORY_ROUTINE ReadProcessMemWinDbg;
+extern PWINDBG_WRITE_PROCESS_MEMORY_ROUTINE WriteProcessMemWinDbg;
+extern PWINDBG_GET_THREAD_CONTEXT_ROUTINE GetThreadContextWinDbg;
+extern PWINDBG_SET_THREAD_CONTEXT_ROUTINE SetThreadContextWinDbg;
+
+extern fWinDbg;
+
+//
+// Pointers to windows base routines
+//
+
+extern HANDLE hModBase;
+
+//
+// Function prototypes
+//
+
+BOOL
+WINAPI
+ReadProcessMem(
+ HANDLE hProcess,
+ LPVOID lpBaseAddress,
+ LPVOID lpBuffer,
+ DWORD nSize,
+ LPDWORD lpNumberOfBytesRead
+ );
+
+BOOL
+WINAPI
+WriteProcessMem(
+ HANDLE hProcess,
+ LPVOID lpBaseAddress,
+ LPVOID lpBuffer,
+ DWORD nSize,
+ LPDWORD lpNumberOfBytesWritten
+ );
+
+
+
+
+BOOL
+WINAPI
+ReadProcessMem(
+ HANDLE hProcess,
+ LPVOID lpBaseAddress,
+ LPVOID lpBuffer,
+ DWORD nSize,
+ LPDWORD lpNumberOfBytesRead
+ );
+
+BOOL
+WINAPI
+WriteProcessMem(
+ HANDLE hProcess,
+ LPVOID lpBaseAddress,
+ LPVOID lpBuffer,
+ DWORD nSize,
+ LPDWORD lpNumberOfBytesWritten
+ );
+
+//
+// Common prototypes
+//
+
+VOID
+DumpTrace(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString,
+ IN ULONG Verbosity
+ );
+
+VOID
+DumpICA(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+helpp(
+ VOID
+ );
+
+VOID
+Selp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+
+VOID
+TraceControl(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+
+
+VOID
+PrintDescriptor(
+ IN HANDLE CurrentProcess,
+ IN LPVDMLDT_ENTRY Descriptor,
+ IN ULONG Selector
+ );
+
+ULONG
+GetIntelBase(
+ HANDLE hCurrentProcess
+ );
+
+//
+// 386 function prototypes
+//
+#if defined(i386)
+VOID
+Drp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+Erp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+EventInfop(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+IntelRegistersp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+ProfDumpp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+ProfIntp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+ProfStartp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+ProfStopp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+VdmTibp(
+ IN HANDLE CurrentProcess,
+ IN HANDLE CurrentThread,
+ IN LPSTR ArgumentString
+ );
+
+VOID
+PrintContext(
+ IN PCONTEXT Context
+ );
+
+VOID
+PrintEventInfo(
+ IN PVDMEVENTINFO EventInfo
+ );
+#endif
+
+//
+// defines
+//
+
+#define FLAG_OVERFLOW 0x0800
+#define FLAG_DIRECTION 0x0400
+#define FLAG_INTERRUPT 0x0200
+#define FLAG_SIGN 0x0080
+#define FLAG_ZERO 0x0040
+#define FLAG_AUXILLIARY 0x0010
+#define FLAG_PARITY 0x0004
+#define FLAG_CARRY 0x0001