After a long time and some delays, the next version of
Reactos is out.
Reactos 0.2.7 is out on
sourceforge.net, ready to download and explore.
For your convenience, here's the official change log:
ChangeLog-0.2.7
From ReactOS
The changelog for 0.2.7 in terms meaningful to technical end-users.
Table of contents
1 Generic
1.1 Overview
1.2 Main 0.2.7 Changes
1.3 Known Bugs
1.4 Translation
1 ReactOS Core
1.1 Kernel + Executive (NTOSKRNL)
1.2 Kernel Mode Drivers
1.2.1 Input Device
1.2.2 ACPI
1.2.3 PCI
1.2.4 SERIAL
1.2.5 USB
1.2.6 VFAT
1.2.7 VGA
2 Networking
3 Session Manager (SMSS)
4 Win32(tm) Personality
4.1 User mode subsystem server (CSRSS)
4.2 Kernel mode subsystem server (WIN32K)
4.3 Win32(tm) Libraries
4.3.1 ADVAPI32
4.3.2 KERNEL32
4.3.3 SETUPAPI
4.3.4 DirectX
4.3.5 Userenv
4.4 Libraries shared with Wine
4.4.1 USER32
4.5 Win32(tm) Applications
4.5.1 IPConfig
4.5.2 CMD
4.5.3 TASKMGR
4.5.4 EXPLORER
4.5.5 WINEFILE
Generic
Overview
With the release of 0.2.7 we, the ReactOS Team, have once again gained
further compatibility with Microsoft Windows. We have aligned our
headers with those of the Windows SDK which gives us a greater range of
driver compatibility. We have also kept ourselves compliant with the
latest GCC compiler which with our new build system provides a faster
and more efficient building processing. We have elected a new UI
coordinator and work has begun to redo the interfaces seen by the user.
Many of our advancements aren't obvious to the end user, but rest
assured that the inner workings are coming together with work in USB,
Plug and Play, and networking that will blow you away in our next release.
Main 0.2.7 Changes
* Header clean up to compatible Windows SDK headers. Implemented and
used NDK. ReactOS is now built with our own headers. Alex Ionescu, Filip
Navara, Steven Edwards
* New My computer, Command Prompt, and Logo Icons. Mindflyer
* New build system called rbuild. Based on xml, it allows for auto
generated makefiles. Casper Hornstup
* Improved appearance of the first stage installer. Alex Ionescu
* GCC 4.x.x build fixes. Thomas Weidenmueller, Alex Ionescu
Known Bugs
ReactOS will fail to boot with a AllocConsole error when a ps/2 mouse is
not attached on some hardware. Bug 688
(
http://reactos.com/bugzilla/show_bug.cgi?id=688)
This ReactOS release requires 64MB RAM to complete the first stage
installer. Bug 703 (
http://reactos.com/bugzilla/show_bug.cgi?id=703)
Translation
* Swedish translations by Andreas Bjerkeholt
(harteex(a)gmail.com)
* Swedish translations by Kris Engeman
* Czech translations by Potapnik
<jirka(a)studioprojekt.cz>
* Swedish translations by David Nordenberg
* French translation by Usurp
* Polish translation by Sebastian Gasiorek
<zebasoftis(a)gmail.com>
* Belgian (point/Flemish) keyboard layout by i386DX
<i386dx(a)hotmail.com>
ReactOS Core
Kernel + Executive (NTOSKRNL)
(Hervé Poussineau)
* Implemented:
o IoRegisterDeviceInterface
o IoSetDeviceInterfaceState
o IoRegisterPlugPlayNotification
o IoUnregisterPlugPlayNotification
o PoRequestPowerIrp
o IRP_MN_QUERY_RESOURCE_REQUIREMENTS for devices enumerated by
Root bus
(Eric_Kohl)
* Implemented:
o PLUGPLAY_GET_RELATED_DEVICE and PLUGPLAY_DEVICE_STATUS.
o PlugPlayControlProperty and PlugPlayControlGetDeviceDepth
o CM_Get_Global_State/CM_Get_Global_State_Ex
(Alex Ionescu)
* Kernel (Ke)
o Implemented Guarded Mutex:
+ KeAcquireGuardedMutex, KeEnterGuardedRegion,
KeLeaveGuardedRegion, KeInitializeGuardedMutex,
KeAcquireGuardedMutexUnsafe, KeReleaseGuardedMutexUnsafe,
KeAcquireGuardedMutex, KeReleaseGuardedMutex, KeTryToAcquireGuardedMutex
o Fixed critical APC queuing and delivery bugs
o Optimized Entering/Leaving critical sections and enabled APC
delivery after each leave, if required.
o Fix KeWaitForMultipleObjects if WaitAll was used.
o Rewrote Context Switching to be faster.
o Fixed KINTERRUPT structure and fixed KeDisconnectInterrupt
o Fixed a bug where Kernel Queues were inserted on the Ready
Thread list.
* Input/Output (Io)
o Implemented IoIsfileOriginRemote, IoGetLowerDeviceObject,
IoGetDiskDeviceObject, IoGetRequestorSessionId, IoGetRequestorProcessId,
IoRegisterBootDriverRetinialization, IoAttachDevicetoDeviceStackSafe,
IoEnumerateDeviceObjectList, IoGetDeviceAttachmentBaseRef,
IoDetachDevice, IoRaiseHardError
o Fixed Controller Objects implementation.
o Fixed Attaching to devices (IoAttachDevice) the driver will
be notified with IO_ATTACH_DEVICE_API.
o Fixed IoAttachDevicetoDeviceStack and IoAttachDevice to call
the Safe cuntion.
o Optimized IoGetRelatedDeviceObject
o Removed IoOpenDeviceInstanceKey and IoQueryDeviceEnumInfo.
o Cleaned up IopAllocateVpb
o Optimized IoCreateDevice, add support for more flags and
remove hard-coded sector size and incorrect sizes being set.
o Fixed IRP Code not to zero out the IRP, free MDLs in failure
cases, set the right IRP flags and set the I/O Object Type.
o Reimplemtented 2nd-stage completion for IRPs to free ALL
MDLs, free memory depending on the flags used, don't call I/O Completion
if an APC is registered, don't set event/call APCs in some failure
cases, don't use certain fields after the pointer can become invalid.
o Use the right stack count in I/O Operations.
o Fixed IopDeleteFile to fix a memory leak and dereference the
completion port.
o Fixed IopCloseFile, NtQueryInformationFile,
NtFlushBuffersFile, NtQueryDirectoryFile, NtReadFile, NtWriteFile,
NtSetInformationFile, IopSecurityFile, IopQueryFileName,
NtDeviceIoControlFile, NtLockFile, NtUnlockFile which contained several
bugs related to IRPs and completion, which were making assumptions or
not supporting all the possibilities, as well as signlaing the wrong
event or making the wrong kind of call, or using the wrong device object.
o Implemented Lookaside lists for IRP packets to increase the
allocation/deallocation speed by over 400%.
o Optimized Completion Packets by piggybacking them on IRP
packets if possible, and added the right memory flags to free them
properly.
o Share NtDeviceIoControlFile and NtFsIoControlFile
o Fixed IRP cancelation.
o Rewrote I/O Interrupt Functions to match new structure and
optimized some code paths.
* Process Manager (Ps)
o Created Memory Manager (Mm) functions when toucing
process/memory
o Created Kernel (Ke) functins when touching kernel structures
and semantics.
o Cached and optimized System DLL (ntdll) Loading/Mapping, so
it is done only at startup.
o Implemented NtOpenProcess, PsRemoveLoadImageNotifyRoutine,
PsGetCurrentProcessSessionId, PsSetLegoNotifyRoutine,
PsRemoveCreateThreadNotifyroutine, PsGetVersion
o Rewrote Process/Thread creation and exit functions.
* Memory Manager (Mm)
o PEB and TEB are now properly allocated in memory, allowing
4KB granularity instead of 64KB, removed all the hacks which allowed
this earlier.
o Implement MmCreateKernelStack and MmDeleteKernelStack
o Took out many system structures from NonPaged Pool to Paged
Pool to reduce physical memory consumption.
o Removed pool debugging functions in retail builds to
increase the speed.
o Don't allorw NtQueryVirtualMemory for kernel-mode addresses.
o Fixed bug in memory mapping which caused large applications
to BSOD the system.
o Made the PE Loader more lenient so it can load some other
valid executables.
* Executive (Ex)
o Fixed the lookaside functions, their macros and the way the
functions were being exported.
o Moved Win32k Object Registration inside Win32k. The pointers
and initlization is now done when Win32k loads.
* Debugging Services (Dbgk/Kd)
o Implemented some Dbgk code for user-mode bugging.
o Implemented modular debugging services for Bochs, GDB, etc.
* Object Manager (Ob)
o Implemented Fast Referencing stubs.
o Rewrote ObQueryNameString.
o Rewrote ObjectType creation to match the structures, flags
and semantics present in NT's Object Manager, from the caller's point of
view.
o Implemented Object Create Information structure and
semantics when capturing data from user-mode, securing and removing a
lot of kernel exloits.
o Fixed ObCreateObject and ObInsertObject to work like on
Windows. ObCreateObject only allocates the Object, while ObInsertObject
does everything else.
* File System Runtime (FsRtl)
o FsRtlMdlRead, FsRtlMdlReadComplete, FsMdlReadCompleteDev,
FsRtlMdlWRiteComplete, FsRtlMdlWriteCompleteDev, FsRtlPrepareMdlWrite,
CcMdlReadCompleted, CcMdlWriteComplete, CcMdlReadCompleteDev,
FsRtlAllocateResource, FsRtlIsPagingFile, FsRtlBalanceReads
* Security Subsystem (Se)
o Implemented SeCreateAccessState, SeDeleteAccessState,
SeSetAccessStateGenericMapping based on a patch fy Javier M. Mellid.
(Thomas_Weidenmueller)
* Implemented RtlHashUnicodeString
* Moved ntdll's atom table implementation to rtl, rewrote it to use
proper structures and share the generic implementation between ntoskrnl
and ntdll
* Updated the rtl handle table implementation to use proper
structures. Reserved handles are not yet supported correctly.
Kernel Mode Drivers
Input Device
* i8042prt driver by tinus.
ACPI
* Implement IRP_MN_QUERY_RESOURCE_REQUIREMENTS (Hervé Poussineau)
PCI
* Report correct list in IRP_MN_QUERY_RESOURCE_REQUIREMENTS (Hervé
Poussineau)
SERIAL
(Hervé Poussineau)
* serial.sys driver completed except control handflow (XON/XOFF)
* serenum.sys driver completed. It enumerates mice plugged on serial
ports
USB
* UHCI HCD driver supports recognizing Memory type of resource
(Aleksey_Bragin)
(Hervé Poussineau)
* UHCI controller driver, that uses Cromwell USB stack
* Basic USB hub driver, that sometimes reports connected devices
VFAT
* Implement FSCTL_IS_VOLUME_DIRTY and FSCTL_MARK_VOLUME_DIRTY (Hervé
Poussineau)
VGA
* Implement IOCTL_VIDEO_QUERY_AVAIL_MODES,
IOCTL_VIDEO_QUERY_CURRENT_MODE, IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES (Hervé
Poussineau)
* VMWare 5 video driver works (GvG) and (Filip_Navara)
* Qemu video drive works (GvG), (Alex_Ionescu), and (Filip_Navara)
Networking
* Implemented WSAStringToAddressA and WSAStringToAddressW in ws2_32
(Magnus Olsen)
* Added dhcp service and make it start. (Art_Yerkes)
(WaxDragon)
* Implement get* integer reading.
* Properly implement ipv4addrs (validates a set of IPv4 addresses)
* Limit returned DNS servers to 1 until we fix iphlpapi.
Session Manager (SMSS)
* Removed loading of the kernel mode part of Win32 emulator
(win32k.sys).
* Removed running winlogon.exe
Win32(tm) Personality
User mode subsystem server (CSRSS)
* Added loading of the kernel mode part of the Win32 emulator
(win32k.sys);
* Run winlogon.exe
* Implemented EnumSystemLocalesW (Aleksey_Bragin)
Kernel mode subsystem server (WIN32K)
(Magnus Olsen)
* Implement NtGdiDdCanCreateSurface and NtGdiDdBlt for DirectX
(untested)
* StrechBitBlt for all Bpp (not full implemet use the code as ref)
* partially implemented fullscreen in changedisplay setting I can
play winquake in fullscreen now :)
* Implement NtGdiGetSystemPaletteUse and NtGdiSetSystemPaletteUse
this code have been taken from wine
* fix winquake color glitc bug the text are now whie instead for
black (Magnus Olsen)
* Implement NtGdiAnimatePalette (partly ripped from Wine does not
anime 100% of the palette) (Hervé Poussineau)
* Speed optimze the bitblt By (Magnus Olsen), (Gregor_Anich),
(Alex_Ionescu), (GvG) see svn log
* Repair GDI handle debugging functionality. (Filip_Navara)
* Implement NtGdiUnrealizedObject (James_Tabor)
* Implement WH_KEYBOARD_LL hook (GvG)
Win32(tm) Libraries
ADVAPI32
(Eric_Kohl)
* Implemented LockServiceDatabase, UnlockServiceDatabase,
ControlService, QueryServiceStatus.
* Implemented OpenSCManagerA, OpenServiceA, OpenServiceW and
QueryServiceStatus
(Thomas_Weidenmueller)
* Ported BuildTrusteeWithObjectsAndName and
BuildTrusteeWithObjectsAndSid from wine.
* Implemented RegOpenCurrentUser
* Implemented OpenAndMapFileForRead, RetreiveFileSecurity,
StampFileSecurity, TakeOwnershipOfFile and UnmapAndCloseFile.
* Implemented RegOpenUserClassesRoot
* Implemented IsTokenRestricted(), inspired by a patch to winehq by
James Hawkins
* Implemented TokenRestrictedSids
KERNEL32
* Implemented GetCommProperties, ClearCommError, CommConfigDialogA,
CommConfigDialogW (Saveliy Tretiakov)
* Implemented GetCommConfig, SetCommConfig, FindFirstFileExW (Dmitry
Philippov)
SETUPAPI
(Hervé Poussineau)
* Work on devices enumeration by implementing:
o CM_Enumerate_Classes(_Ex)
o SetupDiCreateDeviceInfoA
o SetupDiCreateDeviceInfoListExW
o SetupDiEnumDeviceInfo
o SetupDiGetActualSectionToInstallA
o SetupDiGetClassDescriptionExA
o SetupDiGetClassDevs(Ex)A/W
o SetupDiGetDeviceInterfaceDetailA/W
o SetupDiGetDeviceRegistryPropertyA/W
(Eric_Kohl)
* Implemented:
o ConcatenatePaths
o MyGetFileTitle
o GetVersionInfoFromImage
o StringTableDuplicate
DirectX
Dorp last sync with wine and userhook Before we can sync with wine we
need to rewrite the enum and reg of device so it working fine in reactos
and windows.
Add svn rev 15043 + only userhooks for the mouse at last the mouse are
working in tribles windows mode but in full screen it is bit chopy. Not
tested tribles in reactos with the new code.
Userenv
David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
Libraries shared with Wine
(GvG)
* Sync to Wine-20050419
* Sync to Wine-20040419
* Sync to Wine-20050524
* Sync to Wine-20050628
USER32
* Implementation of DragDetect. Based on Wine code (C) 1993, 1994
Alexandre Julliard. (Filip_Navara)
(James_Tabor)
* Implemented:
o TrackMouseEvent.
o NtUserGetAsyncKeyState and support for TrackMouseEvent.
o DrawMenuBar.
o CheckMenuRadioItem. Not fully tested.
o GetMenuString A & W. Not fully tested.
o ModifyMenu A & W.
o MDICascade, MDITile and WIN_ListChildren
Win32(tm) Applications
IPConfig
(Tim Jobling <tjob800(a)yahoo.co.uk>)
* Relicense to GPL.
* Display NodeType with meaningfull Human readable names.
* Exclusively use TCHAR strings.
* Display Physical Address, DHCP enabled state, IP Addresses/Netmasks,
* Default Gateway, DHCP server and DHCP Lease times.
* Parse command line options.
* Default to only showing the IP/SM/DG is no options specified
* Handel option: /All and /?
* Display message about all unimplemented options.
* Changed C++ style commenting to C style
CMD
(Magnus Olsen)
* Remove all hardcode string to own rc file.
* Cache codepage instead call on win32 api for it whole time.
* Add *.* syntax to Dir
* Bugfix Color now it work as it should
* Bugfix CD "program files" so it works
* Implement CD s* * translate %errorlevel% to a value when it pass
at command line. Now is errorlevel implement as it should. left todo
check all cmd command that they are setting right value
* fix a small bug in choice.c so it does print out choice "sadsad"
right
* add %time% and %cd% internal value. Example echo %cd% or echo %time%.
* add %DATE% example echo %date% are working now. Bugfix date so it
print out the week days names.
* adding %RANDOM% example how to use it echo %random%
* adding %cmdcmdline%, example how to use it echo %CMDCMDLINE%
* add %CMDEXTVERSION% example to use it echo %CMDEXTVERSION% the
value are hardcode to 2. for it is that value ms win2k / winxp report
back. thx arty to test it in win xp.
* quick dirty hack getting our copy working with 1>null by me,
thanks to Hartex and Brandon to hunt down where the bug was.
(Frik85)
* Add Help command (By Frik85)
* Add german language resource to the ReactOS Command Processor
(not completely finished, I will update it as soon as possible)
Martin Rottensteiner (2005only(a)pianonote.at):
* set errorlevel to 9009 if command not found
* implemented exit /b # in batchfiles
(Brandon_Turner)
* Added exclusive deletion "del * -abc.txt -text*.txt"
* Fixed bug to allow MS style wildcards + code clean up added /y and
/-y in move.c
* simple check to fix > and | bug with 'rem'
* Implemented /A in delete, example "del /A:H /A:-R *.exe -ping.exe"
* Bug fix color.c, now it is working as ms cmd color.
* Fix bug "mv foo.txt c:\temp gives you c:\tempfoo.txt"
TASKMGR
* Remove some hardcode string tested by Harteex (Filip_Navara)
EXPLORER
* Stepwise taskbar resizing (charn
<charn89(a)hotmail.com>)
* Swedish translation ([[David Nordenberg (dnordenberg [at]
users.sourceforge.net) ]])
* option to build Explorer as ROS Shell without integrated explorer
part (Martin Fuchs)
* display of custom folders in start menu root (Martin Fuchs)
* fix of listbox insert algorithmus (Martin Fuchs)
* Czech translation of Explorer (Luk _ "denzil" Frolka
<d3nzil(a)gmail.com>)
* Russian Translation (Done by Dmitry Philippov, checked by
fireball, DarkHobbit and others)
* French Translation (hpoussin)
* split of big explorer resource file into smaller language specific
rescource scripts (Martin Fuchs)
* Implemented part of screensaver functions, get values from reg,
and show screensaver (<sikker2004(a)yahoo.com>)
WINEFILE
* Czech translation (Denzil
<d3nzil(a)gmail.com>)
* Swedish translation (David Nordenberg, proofread by Andreas
Bjerkeholt)
* implementation of owner drawn context menus (Martin Fuchs)
* from WINE: add czech and swedish resource files (Martin Fuchs)
* from WINE: Change SUBLANG_DEFAULT to SUBLANG_NEUTRAL for
LANG_SPANISH in all resources, so that Spanish locales other than Spain
also use Spanish resources. (Alex Villacís Lasso
<a_villacis(a)palosanto.com>)
* from WINE: Spanish translation (José Manuel Ferrer Ortiz
<jmfo1982(a)yahoo.es>)
* from WINE: Update of Portuguese translation (Marcelo Duarte
<wine-devel(a)bol.com.br>br>, Am‚rico Jos‚ Melo
<mmodem00(a)netvisao.pt>pt>, Francois Gouget
<fgouget(a)codeweavers.com>)
* from WINE: Update of German translation. (Henning Gerhardt
<henning.gerhardt(a)web.de>)
* display source path in "move file" dialog (Martin Fuchs)
* network connect and disconnect dialogs (Martin Fuchs)
* "format disk" dialog (Martin Fuchs)
* display free and total disk space (Martin Fuchs)
* switching of file sort order (Martin Fuchs)
* from WINE: add polish resource file (Martin Fuchs)
* window refresh in shell mode (Martin Fuchs)
* implement file filtering (matching file name patterns and file
types) (Martin Fuchs)
* refresh display after executing a context menu command (Martin Fuchs)
* file copy, move and delete commands (Martin Fuchs)
* file properties dialog ([Martin Fuchs], partly based on Rob D.'s
winfile code)
* from WINE: Update German resource files (Henning Gerhardt
<henning.gerhardt(a)web.de>)
* switch to WIN32 API string functions (Martin Fuchs)
* Updated winefile French resources (Jonathan Ernst
<Jonathan(a)ErnstFamily.ch>)
* Sync source code and resource scripts between WINE and ROS WINE
and switch to UNICODE compilaton in Wine (Martin Fuchs)
Will the world get to know this event, when the ROS site is "out of
order" until the new site is up?
Greetings,
Jan Schiefer!