RtlpCaptureContext(Context); \
}
+#define SehpContinue(Context, TestAlert) \
+ NtContinue(Context, TestAlert)
+
/*** Code below this line is shared with ntoskrnl/rtl/i386/exception.c - please keep in sync ***/
VOID STDCALL
Context,
&DispatcherContext,
RegistrationFrame->handler);
-
+#ifdef DEBUG
DPRINT("Exception handler said 0x%X\n", ReturnValue);
DPRINT("RegistrationFrame == 0x%.08x\n", RegistrationFrame);
{
DPRINT("TryLevel == 0x%.08x\n", sp[5]);
DPRINT("EBP == 0x%.08x\n", sp[6]);
}
-
+#endif
if (RegistrationFrame == NULL)
{
ExceptionRecord->ExceptionFlags &= ~EXCEPTION_NESTED_CALL; // Turn off flag
else
{
/* Copy the (possibly changed) context back to the trap frame and return */
- NtContinue(Context, FALSE);
+ SehpContinue(Context, FALSE);
return ExceptionContinueExecution;
}
}
return ExceptionContinueExecution;
}
+/*
+ * @implemented
+ */
VOID STDCALL
RtlRaiseStatus(NTSTATUS Status)
{
RtlRaiseException (& ExceptionRecord);
}
+/*
+ * @implemented
+ */
VOID STDCALL
RtlUnwind(PEXCEPTION_REGISTRATION RegistrationFrame,
PVOID ReturnAddress,
if (ERHead == RegistrationFrame)
{
DPRINT("Continueing execution\n");
- NtContinue(&Context, FALSE);
+ SehpContinue(&Context, FALSE);
return;
}
else
RegistrationFrame);
if ((ULONG_PTR)RegistrationFrame == -1)
- NtContinue(&Context, FALSE);
+ SehpContinue(&Context, FALSE);
else
NtRaiseException(pExceptRec, &Context, 0);
}