ChangeLog-0.2.8

This is the changelog for ReactOS™ version 0.2.8 (released 29 October, 2005), an open-source operating system designed to be binary executable- and device driver-compatible with Microsoft™ Windows NT™ and subsequent Microsoft operating systems such as Windows 2000™ and Windows XP™. ReactOS is written by the ReactOS development team, and the last previous version of ReactOS was version 0.2.7 (released August 22, 2005).

Completely reimplemented NtWaitForMultipleObjects not to use 25% of available stack space and added checks for invalid waits. Also optimized for speed to remove a call which significantly slowed down execution.

Use DefaultObject from Object Header and remove all previous associated hacks, including the IO_TYPE hack. The DefaultObject will either be NULL, an offset to an internal Object Event, or a pointer to a default event. We handle all three. (Alex Ionescu)

Guard KeWaitXXX calls with SEH since it can raise exceptions. (Alex Ionescu)

Fix priority formulas, account for saturation, do proper km_um conversions for out of bounds or saturation priorirites, create an internal priority change function to be called if the lock is already held (Alex Ionescu)

Do not report that ROS is running on 0 active processors, that's a bad idea. (Alex Ionescu)

Actually check the affinity mask set by NtSetInformationThread (Alex Ionescu)

The KTHREAD alterted flag is now properly set to FALSE during APC delivery during traps. (Alex Ionescu)

More support for PKEXCEPTION_FRAME has been added for future PPC/IA64/etc compatibility. (Alex Ionescu)

Context to/from TrapFrame functions have been greatly fixed to allow for edited frames, special cases, exceptions and also have the necessary support for supporting sanitation based on PreviousMode. (Alex Ionescu)

KDBG now shows the proper CS/SS at all times, previous hack was removed. (Alex Ionescu)

Systemcall code was optimized a bit and the trap code was made a lot more generic so that in can be made into macros (it currently isn't, for debugging purposes). (Alex Ionescu)

V86 Mode trap frame bias has now been added to make trap code a lot more generic and shareable in the future. (Alex Ionescu)

Reimplement NtContinue to have more platform-independent code, and to protect and validate user-mode context and parameters with SEH. (Alex Ionescu)

Fix KiInitializeUserApc to use KeTrapFrameToContext, to save the debug registers, not to deliver APCs during v86 mode, and to protect user-mode stack operations in SEH and probing. Also make it generate the proper stack for the user-mode callback. (Alex Ionescu)

RtlRaiseException to handle cases when a user-mode debugger is present (Alex Ionescu)

RtlRaiseStatus as above, plus set the exception address and capture context (Alex Ionescu)

Fix RtlDispatchException, add cases for exceptions in the DPC stack and validate the validity of the exception frames. Add support for exception logging by the global flag. Use TRAP_FRAME/EXCPETION_FRAME instead of Context. (Alex Ionescu)

Fix RtlUnwind logic, support cases where it's called with custom arguments instead of NULL. (Alex Ionescu)

Reimplement RtlpCaptureContext to work properly, convert exception handler calling functions to INTEL syntax and fix some bugs (like checking for the right unwind flag, clearing volatile register values, etc. Also use some optimizations to increase speed. (Alex Ionescu)

Implement KiRaiseException, add SEH to all user-mode parameters and when copying data to the user-mode stack. (Alex Ionescu)

Open BNO directory with correct privileges, open CSR connection with correct path.

Add InWindows boolean to use the right CSR ServerID in windows and add a hack to get kernel32 to be loadable if used with .local to force an application to use our kernel and not the system one. The result of this is that our kernel32 can now load in Windows XP (not 2000). (Alex Ionescu)

DirectX

Some new stuff for directx, but the call are not in use yet. and it is not wort mentor, untill we can test the api, the change was implement some gdientr to gdi32.dll and some change to win32k. (Magnus Olsen)

Fixed all bugs in cmd commands cd, make it rember the last directory for each drive. make c: working, make cd f f working. We can not found any more bugs cd rewriting was done by BrandonTurner and me, Brandon rewrite cmd_chdir and I add two functions that we will use for cd and other commands to get and set current drive path. The /D are also implement in CD (Magnus Olsen)