[ros-general] ReactOS 0.2.7 Release is out

Robert Köpferl rob at koepferl.de
Mon Aug 22 22:42:35 UTC 2005


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 at gmail.com)
     * Swedish translations by Kris Engeman
     * Czech translations by Potapnik <jirka at studioprojekt.cz>
     * Swedish translations by David Nordenberg
     * French translation by Usurp
     * Polish translation by Sebastian Gasiorek <zebasoftis at gmail.com>
     * Belgian (point/Flemish) keyboard layout by i386DX 
<i386dx at 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 at 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 at 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 at 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 at 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 at yahoo.com>)


WINEFILE

     * Czech translation (Denzil <d3nzil at 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 at palosanto.com>)
     * from WINE: Spanish translation (José Manuel Ferrer Ortiz 
<jmfo1982 at yahoo.es>)
     * from WINE: Update of Portuguese translation (Marcelo Duarte 
<wine-devel at bol.com.br>, Am‚rico Jos‚ Melo <mmodem00 at netvisao.pt>, 
Francois Gouget <fgouget at codeweavers.com>)
     * from WINE: Update of German translation. (Henning Gerhardt 
<henning.gerhardt at 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 at web.de>)
     * switch to WIN32 API string functions (Martin Fuchs)
     * Updated winefile French resources (Jonathan Ernst 
<Jonathan at ErnstFamily.ch>)
     * Sync source code and resource scripts between WINE and ROS WINE 
and switch to UNICODE compilaton in Wine (Martin Fuchs)




More information about the Ros-general mailing list