Add some 64 bit definitions.
Vitaliy Margolen
wine-patch at kievinfo.com
Sun Nov 27 10:29:20 CST 2005
ChangeLog:
Add some 64 bit definitions.
include/imagehlp.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
-------------- next part --------------
8496b4fd0e8e0743c60fd931e94fac4d34fbda50
diff --git a/include/imagehlp.h b/include/imagehlp.h
index 1e3c3ad..a456c2f 100644
--- a/include/imagehlp.h
+++ b/include/imagehlp.h
@@ -236,6 +236,12 @@ typedef struct _ADDRESS {
ADDRESS_MODE Mode;
} ADDRESS, *PADDRESS;
+typedef struct _ADDRESS64 {
+ DWORD64 Offset;
+ WORD Segment;
+ ADDRESS_MODE Mode;
+} ADDRESS64, *LPADDRESS64;
+
typedef struct _KDHELP {
DWORD Thread;
DWORD ThCallbackStack;
@@ -246,6 +252,18 @@ typedef struct _KDHELP {
DWORD SystemRangeStart;
} KDHELP, *PKDHELP;
+typedef struct _KDHELP64 {
+ DWORD64 Thread;
+ DWORD ThCallbackStack;
+ DWORD ThCallbackBStore;
+ DWORD NextCallback;
+ DWORD FramePointer;
+ DWORD64 KiCallUserMode;
+ DWORD64 KeUserCallbackDispatcher;
+ DWORD64 SystemRangeStart;
+ DWORD64 Reserved[8];
+} KDHELP64, *PKDHELP64;
+
typedef struct _STACKFRAME {
ADDRESS AddrPC;
ADDRESS AddrReturn;
@@ -259,6 +277,20 @@ typedef struct _STACKFRAME {
KDHELP KdHelp;
} STACKFRAME, *LPSTACKFRAME;
+typedef struct _STACKFRAME64 {
+ ADDRESS64 AddrPC;
+ ADDRESS64 AddrReturn;
+ ADDRESS64 AddrFrame;
+ ADDRESS64 AddrStack;
+ ADDRESS64 AddrBStore;
+ PVOID FuncTableEntry;
+ DWORD64 Params[4];
+ BOOL Far;
+ BOOL Virtual;
+ DWORD64 Reserved[3];
+ KDHELP64 KdHelp;
+} STACKFRAME64, *LPSTACKFRAME64;
+
typedef struct _SOURCEFILE {
DWORD64 ModBase;
PCHAR FileName;
@@ -398,17 +430,33 @@ typedef BOOL (CALLBACK *PREAD_PROCESS_ME
DWORD nSize, PDWORD lpNumberOfBytesRead
);
+typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE64)(
+ HANDLE hProcess, DWORD64 lpBaseAddress, PVOID lpBuffer,
+ DWORD nSize, LPDWORD lpNumberOfBytesRead
+);
+
typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(
HANDLE hProcess, DWORD AddrBase
);
+typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE64)(
+ HANDLE hProcess, DWORD64 AddrBase
+);
+
typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)(
HANDLE hProcess, DWORD ReturnAddress);
+typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE64)(
+ HANDLE hProcess, DWORD64 ReturnAddress);
+
typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(
HANDLE hProcess, HANDLE hThread, PADDRESS lpaddr
);
+typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE64)(
+ HANDLE hProcess, HANDLE hThread, LPADDRESS64 lpaddr
+);
+
/***********************************************************************
* Functions
*/
@@ -541,6 +589,14 @@ BOOL WINAPI StackWalk(
PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
PTRANSLATE_ADDRESS_ROUTINE TranslateAddress
);
+BOOL WINAPI StackWalk64(
+ DWORD MachineType, HANDLE hProcess, HANDLE hThread,
+ LPSTACKFRAME64 StackFrame, PVOID ContextRecord,
+ PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine,
+ PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine,
+ PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine,
+ PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress
+);
BOOL WINAPI SymCleanup(
HANDLE hProcess
);
More information about the wine-patches
mailing list