Showing the changes to win32/include (1 of 2 files). Show all
Unified · Split
| @@ -1966,6 +1966,66 @@ typedef DWORD LCID; · 1965 unmodified lines | |||
| 1966 | PEXCEPTION_RECORD ExceptionRecord; | 1966 | PEXCEPTION_RECORD ExceptionRecord; |
| 1967 | PCONTEXT ContextRecord; | 1967 | PCONTEXT ContextRecord; |
| 1968 | } EXCEPTION_POINTERS,*PEXCEPTION_POINTERS; | 1968 | } EXCEPTION_POINTERS,*PEXCEPTION_POINTERS; |
| 1969 | |||
| 1970 | #ifdef __x86_64__ | ||
| 1971 | |||
| 1972 | typedef EXCEPTION_DISPOSITION NTAPI EXCEPTION_ROUTINE (struct _EXCEPTION_RECORD *ExceptionRecord, PVOID EstablisherFrame, struct _CONTEXT *ContextRecord, PVOID DispatcherContext); | ||
| 1973 | #ifndef __PEXCEPTION_ROUTINE_DEFINED | ||
| 1974 | #define __PEXCEPTION_ROUTINE_DEFINED | ||
| 1975 | typedef EXCEPTION_ROUTINE *PEXCEPTION_ROUTINE; | ||
| 1976 | #endif | ||
| 1977 | |||
| 1978 | /* http://msdn.microsoft.com/en-us/library/ms680597(VS.85).aspx */ | ||
| 1979 | |||
| 1980 | #define UNWIND_HISTORY_TABLE_SIZE 12 | ||
| 1981 | |||
| 1982 | typedef struct _UNWIND_HISTORY_TABLE_ENTRY { | ||
| 1983 | ULONG64 ImageBase; | ||
| 1984 | PRUNTIME_FUNCTION FunctionEntry; | ||
| 1985 | } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY; | ||
| 1986 | |||
| 1987 | #define UNWIND_HISTORY_TABLE_NONE 0 | ||
| 1988 | #define UNWIND_HISTORY_TABLE_GLOBAL 1 | ||
| 1989 | #define UNWIND_HISTORY_TABLE_LOCAL 2 | ||
| 1990 | |||
| 1991 | typedef struct _UNWIND_HISTORY_TABLE { | ||
| 1992 | ULONG Count; | ||
| 1993 | UCHAR Search; | ||
| 1994 | ULONG64 LowAddress; | ||
| 1995 | ULONG64 HighAddress; | ||
| 1996 | UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; | ||
| 1997 | } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; | ||
| 1998 | |||
| 1999 | /* http://msdn.microsoft.com/en-us/library/b6sf5kbd(VS.80).aspx */ | ||
| 2000 | |||
| 2001 | struct _DISPATCHER_CONTEXT; | ||
| 2002 | typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT; | ||
| 2003 | typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT; | ||
| 2004 | |||
| 2005 | struct _DISPATCHER_CONTEXT { | ||
| 2006 | ULONG64 ControlPc; | ||
| 2007 | ULONG64 ImageBase; | ||
| 2008 | PRUNTIME_FUNCTION FunctionEntry; | ||
| 2009 | ULONG64 EstablisherFrame; | ||
| 2010 | ULONG64 TargetIp; | ||
| 2011 | PCONTEXT ContextRecord; | ||
| 2012 | PEXCEPTION_ROUTINE LanguageHandler; | ||
| 2013 | PVOID HandlerData; | ||
| 2014 | /* http://www.nynaeve.net/?p=99 */ | ||
| 2015 | PUNWIND_HISTORY_TABLE HistoryTable; | ||
| 2016 | ULONG ScopeIndex; | ||
| 2017 | ULONG Fill0; | ||
| 2018 | }; | ||
| 2019 | |||
| 2020 | /* http://msdn.microsoft.com/en-us/library/ms680617(VS.85).aspx */ | ||
| 2021 | |||
| 2022 | typedef struct _KNONVOLATILE_CONTEXT_POINTERS | ||
| 2023 | { | ||
| 2024 | PM128A FloatingContext[16]; | ||
| 2025 | PULONG64 IntegerContext[16]; | ||
| 2026 | } KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS; | ||
| 2027 | #endif /* defined(__x86_64__) */ | ||
| 2028 | |||
| 1969 | typedef PVOID PACCESS_TOKEN; | 2029 | typedef PVOID PACCESS_TOKEN; |
| 1970 | typedef PVOID PSECURITY_DESCRIPTOR; | 2030 | typedef PVOID PSECURITY_DESCRIPTOR; |
| 1971 | typedef PVOID PSID; | 2031 | typedef PVOID PSID; |
| @@ -4877,6 +4937,11 @@ typedef DWORD LCID; · 2905 unmodified lines | |||
| 4877 | } IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER; | 4937 | } IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER; |
| 4878 | #endif | 4938 | #endif |
| 4879 | 4939 | ||
| 4940 | #if defined (__x86_64__) | ||
| 4941 | NTSYSAPI PRUNTIME_FUNCTION NTAPI RtlLookupFunctionEntry (DWORD64 ControlPc, PDWORD64 ImageBase, PUNWIND_HISTORY_TABLE HistoryTable); | ||
| 4942 | NTSYSAPI VOID NTAPI RtlUnwindEx (PVOID TargetFrame, PVOID TargetIp, PEXCEPTION_RECORD ExceptionRecord, PVOID ReturnValue, PCONTEXT ContextRecord, PUNWIND_HISTORY_TABLE HistoryTable); | ||
| 4943 | #endif | ||
| 4944 | |||
| 4880 | #include <string.h> | 4945 | #include <string.h> |
| 4881 | 4946 | ||
| 4882 | #ifndef _SLIST_HEADER_ | 4947 | #ifndef _SLIST_HEADER_ |