History

Add x64 SEH decls. Add exports to kernel32.def

Vlad Vissoultchev committed 10 years ago

Commit d715ebd1 parent 95aac212 files · +68 −0Browse files

Unified · Split

2 files
  1. win32/include/winapi/winnt.h +65 −0
  2. win32/lib/kernel32.def +3 −0
win32/include/winapi/winnt.h+65−0
@@ -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#endif4938#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_
win32/lib/kernel32.def+3−0
@@ -288,6 +288,8 @@ GetModuleFileNameA · 287 unmodified lines
288GetModuleFileNameW288GetModuleFileNameW
289GetModuleHandleA289GetModuleHandleA
290GetModuleHandleW290GetModuleHandleW
291GetModuleHandleExA
292GetModuleHandleExW
291GetNamedPipeHandleStateA293GetNamedPipeHandleStateA
292GetNamedPipeHandleStateW294GetNamedPipeHandleStateW
293GetNamedPipeInfo295GetNamedPipeInfo
@@ -554,6 +556,7 @@ RtlFillMemory · 260 unmodified lines
554RtlInstallFunctionTableCallback556RtlInstallFunctionTableCallback
555RtlMoveMemory557RtlMoveMemory
556RtlUnwind558RtlUnwind
559RtlUnwindEx
557RtlZeroMemory560RtlZeroMemory
558SMapLS561SMapLS
559SMapLS_IP_EBP_12562SMapLS_IP_EBP_12