diff options
Diffstat (limited to 'src/inc/clrnt.h')
-rw-r--r-- | src/inc/clrnt.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/inc/clrnt.h b/src/inc/clrnt.h index 9a4601ebaf..08a93a4961 100644 --- a/src/inc/clrnt.h +++ b/src/inc/clrnt.h @@ -855,25 +855,25 @@ typedef struct _DISPATCHER_CONTEXT { #define RUNTIME_FUNCTION__SetBeginAddress(prf,addr) ((prf)->BeginAddress = (addr)) #ifdef WIN64EXCEPTIONS -EXTERN_C ULONG +#include "win64unwind.h" + +FORCEINLINE +DWORD RtlpGetFunctionEndAddress ( __in PT_RUNTIME_FUNCTION FunctionEntry, - __in ULONG ImageBase - ); + __in TADDR ImageBase + ) +{ + PUNWIND_INFO pUnwindInfo = (PUNWIND_INFO)(ImageBase + FunctionEntry->UnwindData); + + return FunctionEntry->BeginAddress + pUnwindInfo->FunctionLength; +} #define RUNTIME_FUNCTION__EndAddress(prf, ImageBase) RtlpGetFunctionEndAddress(prf, ImageBase) #define RUNTIME_FUNCTION__GetUnwindInfoAddress(prf) (prf)->UnwindData #define RUNTIME_FUNCTION__SetUnwindInfoAddress(prf, addr) do { (prf)->UnwindData = (addr); } while(0) -#define UNW_FLAG_NHANDLER 0x0 /* any handler */ -#define UNW_FLAG_EHANDLER 0x1 /* filter handler */ -#define UNW_FLAG_UHANDLER 0x2 /* unwind handler */ - -typedef struct _UNWIND_INFO { - // dummy -} UNWIND_INFO, *PUNWIND_INFO; - EXTERN_C NTSYSAPI PEXCEPTION_ROUTINE |