1#ifndef X86_MATANEL_EXCEPTION
2#define X86_MATANEL_EXCEPTION
34#define EXCEPTION_MAXIMUM_PARAMETERS 15
94 void* EstablisherFrame,
96 void* DispatcherContext
102 PETHREAD _CurrentThread = PsGetCurrentThread(); \
103 ME_EXCEPTION_FRAME _MyFrame; \
104 _MyFrame.Next = (PME_EXCEPTION_FRAME)_CurrentThread->ExceptionList; \
105 _MyFrame.Handler = MeStandardHandler; \
106 _CurrentThread->ExceptionList = &_MyFrame; \
108 if (ExpCaptureContext(&_MyFrame) == 0) { \
110#define _except(FilterExpression) \
112 _CurrentThread->ExceptionList = _MyFrame.Next; \
116 _CurrentThread->ExceptionList = _MyFrame.Next; \
@ ExceptionContinueSearch
@ ExceptionCollidedUnwind
@ ExceptionNestedException
@ ExceptionContinueExecution
bool ExpIsExceptionHandlerPresent(IN PETHREAD Thread)
struct _EXCEPTION_RECORD EXCEPTION_RECORD
PETHREAD PsGetCurrentThread(void)
void ExpDispatchException(IN PTRAP_FRAME TrapFrame, IN PCONTEXT ContextRecord, IN PEXCEPTION_RECORD ExceptionRecord)
struct _EX_FRAME_REGISTRATION EX_FRAME_REGISTRATION
struct _CONTEXT * PCONTEXT
enum _EXCEPTION_DISPOSITION EXCEPTION_DISPOSITION
struct _EXCEPTION_REGISTRATION_RECORD EXCEPTION_REGISTRATION_RECORD
struct _EXCEPTION_RECORD * PEXCEPTION_RECORD
bool ExpCaptureContext(IN PCONTEXT Context)
EXCEPTION_DISPOSITION MeStandardHandler(PEXCEPTION_RECORD ExceptionRecord, void *EstablisherFrame, PCONTEXT ContextRecord, void *DispatcherContext)
EXCEPTION_REGISTRATION_RECORD * RegistrationPointer
struct _EXCEPTION_RECORD * ExceptionRecord
struct _EXCEPTION_REGISTRATION_RECORD * Next
enum _EXCEPTION_DISPOSITION(* Handler)(struct _EXCEPTION_RECORD *arg1, void *Frame, struct _CONTEXT *arg2, void *DispCtx)