https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a007f5e4905ef276d4cc3…
commit a007f5e4905ef276d4cc3b2fd42568064f0b537b
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Sun Aug 21 17:18:15 2022 +0200
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Thu Nov 24 21:17:58 2022 +0200
[NTOS] Fix NtContinue for x64
---
ntoskrnl/ke/except.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/ntoskrnl/ke/except.c b/ntoskrnl/ke/except.c
index 3b945633ca5..79062df1e8a 100644
--- a/ntoskrnl/ke/except.c
+++ b/ntoskrnl/ke/except.c
@@ -28,12 +28,16 @@ KiContinuePreviousModeUser(IN PCONTEXT Context,
RtlCopyMemory(&LocalContext, Context, sizeof(CONTEXT));
Context = &LocalContext;
+#ifdef _M_AMD64
+ KiSetTrapContext(TrapFrame, &LocalContext, UserMode);
+#else
/* Convert the context into Exception/Trap Frames */
KeContextToTrapFrame(&LocalContext,
ExceptionFrame,
TrapFrame,
LocalContext.ContextFlags,
UserMode);
+#endif
}
NTSTATUS
@@ -62,12 +66,16 @@ KiContinue(IN PCONTEXT Context,
}
else
{
+#ifdef _M_AMD64
+ KiSetTrapContext(TrapFrame, Context, KernelMode);
+#else
/* Convert the context into Exception/Trap Frames */
KeContextToTrapFrame(Context,
ExceptionFrame,
TrapFrame,
Context->ContextFlags,
KernelMode);
+#endif
}
}
_SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)