Hi,
there exist more problems. Some functions (for instance KiDispatchException) leave a TRY block with a return statement. Quoting http://www.reactos.com/wiki/index.php/PSEH: /"Absolutely do not use *return* inside a try block/: this will lead to crashes, or worse undetectable corruption, because some per-thread system state will still refer to local variables of the function you've returned from."
- Hartmut
Alex Ionescu wrote:
Hartmut Birr wrote:
Hi,
calling RaiseException(EXCEPTION_ACCESS_VIOLATION, EXCEPTION_NONCONTINUABLE, 0, NULL) from user mode does crash reactos.
- Hartmut
(lib\rtl\exception.c:29) RtlRaiseException(Status 0064fea8) (lib\rtl\exception.c:36) ExceptionAddress 7c801fcc (ntoskrnl\ke\exception.c:94) KiRaiseException (ntoskrnl\ke\i386\exp.c:933) KiDispatchException() called (lib\rtl\exception.c:75) RtlRaiseStatus(Status 0x80000002)
^^^ It seems that the user-mode context or exception frame is not properly aligned (or the Probe check is broken)... I will test and see which of the probe fails.
(lib\rtl\i386\exception.c:59) RtlDispatchException(): 87032998, 870326c8 (lib\rtl\i386\exception.c:64) RegistrationFrame is 0x87032D30 (lib\rtl\i386\exception.c:90) Invalid exception frame
^^^ RtlpGetStackLimits should not be shared, because the limits have to be taken from the thread's teb, not KPCR. This is my fault, I'll fix it right now.
Best regards, Alex Ionescu _______________________________________________ Ros-dev mailing list Ros-dev@reactos.com http://reactos.com:8080/mailman/listinfo/ros-dev