Author: tkreuzer
Date: Wed Jan 13 22:31:55 2010
New Revision: 45062
URL:
http://svn.reactos.org/svn/reactos?rev=45062&view=rev
Log:
[NTOS]
KiExitV86Mode is supposed to return a pointer to the protected mode KTRAP_FRAME. Instead
it was returning the value of TrapFrame->Edi, which would be identical to
PmTrapFrame->Ebp, which doesn't have any particular meaning. Fix it by returning
PmTrapFrame directly. Fixes 2nd stage boot.
Modified:
trunk/reactos/ntoskrnl/ke/i386/v86vdm.c
Modified: trunk/reactos/ntoskrnl/ke/i386/v86vdm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86vdm.c?…
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/v86vdm.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/i386/v86vdm.c [iso-8859-1] Wed Jan 13 22:31:55 2010
@@ -478,9 +478,9 @@
GdtEntry->HighWord.Bytes.BaseMid = (UCHAR)((ULONG_PTR)Thread->Teb >>
16);
GdtEntry->HighWord.Bytes.BaseHi = (UCHAR)((ULONG_PTR)Thread->Teb >> 24);
- /* Enable interrupts and get back to protected mode */
+ /* Enable interrupts and return a pointer to the trap frame */
_enable();
- return TrapFrame->Edi;
+ return (ULONG)PmTrapFrame;
}
VOID