54 /*
55 typedef struct _RUNTIME_FUNCTION {
56 ULONG BeginAddress;
57 ULONG EndAddress;
58 ULONG UnwindData;
59 } RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
60 */
61
62 typedef struct _DISPATCHER_CONTEXT {
63 ULONG64 ControlPc;
64 ULONG64 ImageBase;
65 PRUNTIME_FUNCTION FunctionEntry;
66 ULONG64 EstablisherFrame;
67 ULONG64 TargetIp;
68 PCONTEXT ContextRecord;
69 // PEXCEPTION_ROUTINE LanguageHandler;
70 char * LanguageHandler; // double dependency problem
71 PVOID HandlerData;
72 } DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT;
73
74 #if MSC_VER < 1500
75
76 /* Not needed for VS2008 compiler, comes from winnt.h. */
77 typedef EXCEPTION_DISPOSITION (*PEXCEPTION_ROUTINE) (
78 IN PEXCEPTION_RECORD ExceptionRecord,
79 IN ULONG64 EstablisherFrame,
80 IN OUT PCONTEXT ContextRecord,
81 IN OUT PDISPATCHER_CONTEXT DispatcherContext
82 );
83
84 #endif
85
86 #endif // AMD64
87
88 #endif // OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP
|
54 /*
55 typedef struct _RUNTIME_FUNCTION {
56 ULONG BeginAddress;
57 ULONG EndAddress;
58 ULONG UnwindData;
59 } RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
60 */
61
62 typedef struct _DISPATCHER_CONTEXT {
63 ULONG64 ControlPc;
64 ULONG64 ImageBase;
65 PRUNTIME_FUNCTION FunctionEntry;
66 ULONG64 EstablisherFrame;
67 ULONG64 TargetIp;
68 PCONTEXT ContextRecord;
69 // PEXCEPTION_ROUTINE LanguageHandler;
70 char * LanguageHandler; // double dependency problem
71 PVOID HandlerData;
72 } DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT;
73
74 #if _MSC_VER < 1500
75
76 /* Not needed for VS2008 compiler, comes from winnt.h. */
77 typedef EXCEPTION_DISPOSITION (*PEXCEPTION_ROUTINE) (
78 IN PEXCEPTION_RECORD ExceptionRecord,
79 IN ULONG64 EstablisherFrame,
80 IN OUT PCONTEXT ContextRecord,
81 IN OUT PDISPATCHER_CONTEXT DispatcherContext
82 );
83
84 #endif
85
86 #endif // AMD64
87
88 #endif // OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP
|