Hi,
adding the stack segment register to one instruction at the begin of
_KiFastCallEntry does fix the fpu problem for me.
That's really great! But how did you come to discover this? i.e, what is
the reason for the behavior? I'm glad it's fixed but I would like to
understand what's up.
And I don't understand why the interrupt flag is
manipulated after
sysenter and before sysexit.
Because on SYSENTER, the interrupt flag is not on, while in INT3, it is.
Therefore, if any function tries to read saved EFLAGS in the trap frame,
we must be sure that it thinks IF is on. All the examples I've seen do
this hack to IF.
- Hartmut
Best regards,
Alex Ionescu