Difference between revisions of "ChangeLog-0.2.7"

From ReactOS Wiki
Jump to: navigation, search
(VGA)
m (rename template, remove additional category)
 
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
The changelog for 0.2.7 in terms meaningful to technical end-users.
+
This is the changelog for ReactOS™ version 0.2.7 (released August 22, 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 [[ChangeLog-0.2.6|version 0.2.6]] (released April 10, 2005).
  
== Generic ==
+
==General==
=== Overview ===
+
With the release of 0.2.7, ReactOS has again gained further compatibility with Microsoft™ Windows™The headers for ReactOS have been aligned with those of the Windows Software Development Kit (SDK), which gives us a greater range of driver compatibility.  ReactOS has also been updated to be compliant with the latest GNU™ C Compiler (GCC)—''i.e.'', GCC version 4—which, with our new build system provides a faster and more efficient build process.  We have elected a new user interface (UI) coordinator, and work has begun to modify the interfaces seen by the user.
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 keep 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 not be easily seen by the end user, rest assured that the inter workings are coming together with work in USB, Plug and Play, and networking that will blow you away in our next release.
+
 
 +
Apart from the UI work, many of these improvements are of an "under-the-hood" nature and, while quite important to the rapid progress of the project, are not necessarily obvious to the end user.  However, these refinements to the ReactOS infrastructure facilitate the ongoing advancements in USB, Plug and Play, and networking functionality that will be prominent features of the next upcoming release.
  
 
=== Main 0.2.7 Changes ===
 
=== 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]]
+
* Header clean-up for compatibility with Windows SDK headers; implemented and used NDK; ReactOS is now built with our own headers ([[Alex Ionescu]], [[Filip Navara]], and [[Steven Edwards]])
* New My computer, Command Prompt, and Logo Icons. [[Mindflyer]]
+
* New <code>My Computer</code>, command prompt, and ReactOS logo icons ([[Mindflyer]])
* New build system called rbuild.  Based on xml, it allows for auto generated makefiles. [[Casper Hornstup]]
+
* New build system called <code>rbuild</code> which is based on the eXtensible Markup Language (XML), and which allows for automatically generated makefiles  ([[Casper Hornstup]])
* Improved appearance of the first stage installer. [[Alex Ionescu]]
+
* Improved appearance of the first-stage installer ([[Alex Ionescu]])
* GCC 4.x.x build fixes. [[Thomas Weidenmueller]], [[Alex Ionescu]]
+
* GCC 4.x.x build fixes ([[Thomas Weidenmueller]] and [[Alex Ionescu]])
  
 
=== Known Bugs ===
 
=== Known Bugs ===
ReactOS will fail to boot with a AllocConsole error when a ps/2 mouse is not attached on some hardware. [http://reactos.com/bugzilla/show_bug.cgi?id=688 Bug 688]
+
* ReactOS fails to boot on some hardware and reports an <code>AllocConsole</code> error when no PS/2-style mouse is attached (''see'' [http://ReactOS.com/bugzilla/show_bug.cgi?id=688 Bug 688])
 
+
* This ReactOS release requires 64 MB of RAM to complete the first-stage installer (''see'' [http://ReactOS.com/bugzilla/show_bug.cgi?id=703 Bug 703])
This ReactOS release requires 64MB RAM to complete the first stage installer. [http://reactos.com/bugzilla/show_bug.cgi?id=703 Bug 703]
 
  
=== Translation ===
+
=== Translations ===
* Swedish translations by Andreas Bjerkeholt (harteex@gmail.com)
+
* Swedish translations by [mailto:harteex@gmail.com] [[Andreas Bjerkeholt]], [[Kris Engeman]] and [[David Nordenberg]]
* Swedish translations by Kris Engeman
+
* Czech translations by [mailto:jirka@studioprojekt.cz Potapnik]
* Czech translations by Potapnik <jirka@studioprojekt.cz>
+
* French translation by [[Sylvain Petreolle]]
* Swedish translations by David Nordenberg
+
* Polish translation by [mailto:zebasoftis@gmail.com] [[Sebastian Gasiorek]]
* French translation by Usurp
+
* Belgian (point/Flemish) keyboard layout by [mailto:i386dx@hotmail.com i386DX]
* Polish translation by Sebastian Gasiorek <zebasoftis@gmail.com>
 
* Belgian (point/Flemish) keyboard layout by i386DX <i386dx@hotmail.com>
 
  
 
= ReactOS Core =
 
= ReactOS Core =
== Kernel + Executive (NTOSKRNL) ==
+
== Kernel and Executive (<code>NTOSKRNL</code>) ==
 
([[Hervé Poussineau]])
 
([[Hervé Poussineau]])
 
* Implemented:  
 
* Implemented:  
** IoRegisterDeviceInterface
+
** <code>IoRegisterDeviceInterface</code>
** IoSetDeviceInterfaceState
+
** <code>IoSetDeviceInterfaceState</code>
** IoRegisterPlugPlayNotification
+
** <code>IoRegisterPlugPlayNotification</code>
** IoUnregisterPlugPlayNotification
+
** <code>IoUnregisterPlugPlayNotification</code>
** PoRequestPowerIrp
+
** <code>PoRequestPowerIrp</code>
** IRP_MN_QUERY_RESOURCE_REQUIREMENTS for devices enumerated by Root bus  
+
** <code>IRP_MN_QUERY_RESOURCE_REQUIREMENTS</code> for devices enumerated by Root bus  
([[Eric_Kohl]])
+
([[Eric Kohl]])
 
* Implemented:
 
* Implemented:
** PLUGPLAY_GET_RELATED_DEVICE and PLUGPLAY_DEVICE_STATUS.
+
** <code>PLUGPLAY_GET_RELATED_DEVICE</code> and <code>PLUGPLAY_DEVICE_STATUS</code>
** PlugPlayControlProperty and PlugPlayControlGetDeviceDepth  
+
** <code>PlugPlayControlProperty</code> and <code>PlugPlayControlGetDeviceDepth</code>
** CM_Get_Global_State/CM_Get_Global_State_Ex
+
** <code>CM_Get_Global_State/CM_Get_Global_State_Ex</code>
 
([[Alex Ionescu]])
 
([[Alex Ionescu]])
* Kernel (Ke)
+
* Kernel (<code>Ke</code>)
 
** Implemented [[Guarded Mutex]]:
 
** Implemented [[Guarded Mutex]]:
*** KeAcquireGuardedMutex, KeEnterGuardedRegion, KeLeaveGuardedRegion, KeInitializeGuardedMutex, KeAcquireGuardedMutexUnsafe, KeReleaseGuardedMutexUnsafe, KeAcquireGuardedMutex, KeReleaseGuardedMutex, KeTryToAcquireGuardedMutex
+
*** <code>KeAcquireGuardedMutex</code>, <code>KeEnterGuardedRegion</code>, <code>KeLeaveGuardedRegion</code>, <code>KeInitializeGuardedMutex</code>, <code>KeAcquireGuardedMutexUnsafe</code>, <code>KeReleaseGuardedMutexUnsafe</code>, <code>KeAcquireGuardedMutex</code>, <code>KeReleaseGuardedMutex</code>, <code>KeTryToAcquireGuardedMutex</code>
 
** Fixed critical APC queuing and delivery bugs
 
** Fixed critical APC queuing and delivery bugs
** Optimized Entering/Leaving critical sections and enabled APC delivery after each leave, if required.
+
** Optimized Entering/Leaving critical sections and enabled APC delivery after each leave, if required
** Fix KeWaitForMultipleObjects if WaitAll was used.
+
** Fixed <code>KeWaitForMultipleObjects</code> if <code>WaitAll</code> was used
** Rewrote Context Switching to be faster.
+
** Rewrote context switching to be faster
** Fixed KINTERRUPT structure and fixed KeDisconnectInterrupt
+
** Fixed <code>KINTERRUPT</code> structure and <code>KeDisconnectInterrupt</code>
** Fixed a bug where Kernel Queues were inserted on the Ready Thread list.
+
** Fixed a bug in which kernel queues were inserted into the ready thread list
 
* Input/Output (Io)
 
* Input/Output (Io)
** Implemented IoIsfileOriginRemote, IoGetLowerDeviceObject, IoGetDiskDeviceObject, IoGetRequestorSessionId, IoGetRequestorProcessId, IoRegisterBootDriverRetinialization, IoAttachDevicetoDeviceStackSafe, IoEnumerateDeviceObjectList, IoGetDeviceAttachmentBaseRef, IoDetachDevice, IoRaiseHardError
+
** Implemented <code>IoIsfileOriginRemote</code>, <code>IoGetLowerDeviceObject</code>, <code>IoGetDiskDeviceObject</code>, <code>IoGetRequestorSessionId</code>, <code>IoGetRequestorProcessId</code>, <code>IoRegisterBootDriverRetinialization</code>, <code>IoAttachDevicetoDeviceStackSafe</code>, <code>IoEnumerateDeviceObjectList</code>, <code>IoGetDeviceAttachmentBaseRef</code>, <code>IoDetachDevice</code>, <code>IoRaiseHardError</code>
** Fixed Controller Objects implementation.
+
** Fixed controller objects implementation
** Fixed Attaching to devices (IoAttachDevice) the driver will be notified with IO_ATTACH_DEVICE_API.
+
** Fixed attaching to devices (<code>IoAttachDevice</code>) so that the appropriate driver will be notified with <code>IO_ATTACH_DEVICE_API</code>
** Fixed IoAttachDevicetoDeviceStack and IoAttachDevice to call the Safe cuntion.
+
** Fixed <code>IoAttachDevicetoDeviceStack</code> and <code>IoAttachDevice</code> to call the <code>Safe</code> function
** Optimized IoGetRelatedDeviceObject
+
** Optimized <code>IoGetRelatedDeviceObject</code>
** Removed IoOpenDeviceInstanceKey and IoQueryDeviceEnumInfo.
+
** Removed <code>IoOpenDeviceInstanceKey</code> and <code>IoQueryDeviceEnumInfo</code>
** Cleaned up IopAllocateVpb
+
** Cleaned up <code>IopAllocateVpb</code>
** Optimized IoCreateDevice, add support for more flags and remove hard-coded sector size and incorrect sizes being set.
+
** Optimized <code>IoCreateDevice</code>, added support for more flags and removed hard-coded sector size and incorrect sizes which were previously set
** 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.
+
** Fixed IRP Code not to zero out the IRP, to free MDLs in failure cases, to set the correct IRP flags and to set the I/O object type
** 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.
+
** Reimplemented second-stage completion for IRPs to free ''ALL'' MDLs, to free memory depending on the flags used, not to call I/O Completion if an APC is registered, not to set event/call APCs in some failure cases, and not to use certain fields after the pointer can become invalid
** Use the right stack count in I/O Operations.
+
** Uses the correct stack count in I/O operations
** Fixed IopDeleteFile to fix a memory leak and dereference the completion port.
+
** Fixed <code>IopDeleteFile</code> to fix a memory leak and to dereference the completion port
** 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.
+
** Fixed <code>IopCloseFile</code>, <code>NtQueryInformationFile</code>, <code>NtFlushBuffersFile</code>, <code>NtQueryDirectoryFile</code>, <code>NtReadFile</code><code>NtWriteFile</code>, <code>NtSetInformationFile</code>, <code>IopSecurityFile</code>, <code>IopQueryFileName</code>, <code>NtDeviceIoControlFile</code>, <code>NtLockFile</code>, and <code>NtUnlockFile</code>, which contained several bugs related to IRPs and completion, were making assumptions or not supporting all the appropriate possibilities, were signaling the wrong event or making the wrong kind of call, or were using the wrong device object
** Implemented Lookaside lists for IRP packets to increase the allocation/deallocation speed by over 400%.
+
** Implemented lookaside lists for IRP packets to increase the allocation/deallocation speed by over 400%
** Optimized Completion Packets by piggybacking them on IRP packets if possible, and added the right memory flags to free them properly.
+
** Optimized completion packets by piggybacking them on IRP packets if possible, and added the correct memory flags to free them properly
** Share NtDeviceIoControlFile and NtFsIoControlFile
+
** Share <code>NtDeviceIoControlFile</code> and <code>NtFsIoControlFile</code>
** Fixed IRP cancelation.
+
** Fixed IRP cancellation
** Rewrote I/O Interrupt Functions to match new structure and optimized some code paths.
+
** Rewrote I/O interrupt functions to match the new structure, and optimized some code paths
 
* Process Manager (Ps)
 
* Process Manager (Ps)
** Created Memory Manager (Mm) functions when toucing process/memory
+
** Created memory manager (Mm) functions when touching process/memory
** Created Kernel (Ke) functins when touching kernel structures and semantics.
+
** Created kernel (Ke) functions when touching kernel structures and semantics
** Cached and optimized System DLL (ntdll) Loading/Mapping, so it is done only at startup.
+
** Cached and optimized system DLL (ntdll) loading/mapping, so that it is done only at startup
** Implemented NtOpenProcess, PsRemoveLoadImageNotifyRoutine, PsGetCurrentProcessSessionId, PsSetLegoNotifyRoutine, PsRemoveCreateThreadNotifyroutine, PsGetVersion
+
** Implemented <code>NtOpenProcess</code>, <code>PsRemoveLoadImageNotifyRoutine</code>, <code>PsGetCurrentProcessSessionId</code>, <code>PsSetLegoNotifyRoutine</code>, <code>PsRemoveCreateThreadNotifyroutine</code>, <code>PsGetVersion</code>
** Rewrote Process/Thread creation and exit functions.
+
** Rewrote process/thread creation and exit functions
 
* Memory Manager (Mm)
 
* Memory Manager (Mm)
** PEB and TEB are now properly allocated in memory, allowing 4KB granularity instead of 64KB, removed all the hacks which allowed this earlier.
+
** PEB and TEB are now properly allocated in memory, allowing 4KB granularity instead of 64KB, and removed all the hacks which allowed this earlier
** Implement MmCreateKernelStack and MmDeleteKernelStack
+
** Implemented <code>MmCreateKernelStack</code> and <code>MmDeleteKernelStack</code>
** Took out many system structures from NonPaged Pool to Paged Pool to reduce physical memory consumption.
+
** Took out many system structures from non-paged pool to paged pool, to reduce physical memory consumption
** Removed pool debugging functions in retail builds to increase the speed.
+
** Removed pool debugging functions in retail builds to increase execution speed
** Don't allorw NtQueryVirtualMemory for kernel-mode addresses.
+
** Prohibit <code>NtQueryVirtualMemory</code> for kernel-mode addresses
** Fixed bug in memory mapping which caused large applications to BSOD the system.
+
** Fixed bug in memory mapping which caused large applications to trigger the “blue screen of death” (BSOD)
** Made the PE Loader more lenient so it can load some other valid executables.
+
** Made the PE loader more lenient so that it can load a broader range of valid executables
 
* Executive (Ex)
 
* Executive (Ex)
** Fixed the lookaside functions, their macros and the way the functions were being exported.
+
** Fixed the lookaside functions, their macros and the way the functions were being exported
** Moved Win32k Object Registration inside Win32k. The pointers and initlization is now done when Win32k loads.
+
** Moved Win32k object registration into Win32k&mdash;the pointers and initialization are now done when Win32k loads
 
* Debugging Services (Dbgk/Kd)
 
* Debugging Services (Dbgk/Kd)
** Implemented some Dbgk code for user-mode bugging.
+
** Implemented some Dbgk code for user-mode debugging
** Implemented modular debugging services for Bochs, GDB, etc.
+
** Implemented modular debugging services for Bochs, GNU Debugger (GDB), ''etc.''
 
* Object Manager (Ob)
 
* Object Manager (Ob)
** Implemented Fast Referencing stubs.
+
** Implemented fast referencing stubs
** Rewrote ObQueryNameString.
+
** Rewrote <code>ObQueryNameString</code>
** Rewrote ObjectType creation to match the structures, flags and semantics present in NT's Object Manager, from the caller's point of view.
+
** Rewrote <code>ObjectType</code> creation to match the structures, flags and semantics present in Windows NT's Object Manager, from the caller's point of view
** Implemented Object Create Information structure and semantics when capturing data from user-mode, securing and removing a lot of kernel exloits.
+
** Implemented Object Create Information structure and semantics when capturing data from user-mode, securing and removing a lot of potential kernel exploits
** Fixed ObCreateObject and ObInsertObject to work like on Windows. ObCreateObject only allocates the Object, while ObInsertObject does everything else.
+
** Fixed <code>ObCreateObject</code> and <code>ObInsertObject</code> to work as in Microsoft Windows&mdash; <code>ObCreateObject</code> only allocates the object, while <code>ObInsertObject</code> does everything else
 
* File System Runtime (FsRtl)
 
* File System Runtime (FsRtl)
** FsRtlMdlRead, FsRtlMdlReadComplete, FsMdlReadCompleteDev, FsRtlMdlWRiteComplete, FsRtlMdlWriteCompleteDev, FsRtlPrepareMdlWrite, CcMdlReadCompleted, CcMdlWriteComplete, CcMdlReadCompleteDev, FsRtlAllocateResource, FsRtlIsPagingFile, FsRtlBalanceReads
+
** <code>FsRtlMdlRead</code>, <code>FsRtlMdlReadComplete</code>, <code>FsMdlReadCompleteDev</code>, <code>FsRtlMdlWRiteComplete</code>, <code>FsRtlMdlWriteCompleteDev</code>, <code>FsRtlPrepareMdlWrite</code>, <code>CcMdlReadCompleted</code>, <code>CcMdlWriteComplete</code>, <code>CcMdlReadCompleteDev</code>, <code>FsRtlAllocateResource</code>, <code>FsRtlIsPagingFile</code>, <code>FsRtlBalanceReads</code>
 
* Security Subsystem (Se)
 
* Security Subsystem (Se)
** Implemented SeCreateAccessState, SeDeleteAccessState, SeSetAccessStateGenericMapping based on a patch fy Javier M. Mellid.
+
** Implemented <code>SeCreateAccessState</code>, <code>SeDeleteAccessState</code>, and <code>SeSetAccessStateGenericMapping</code> based on a patch by Javier M. Mellid
  
([[Thomas_Weidenmueller]])
+
([[Thomas Weidenmueller]])
* Implemented RtlHashUnicodeString  
+
* Implemented <code>RtlHashUnicodeString</code>
* Moved ntdll's atom table implementation to rtl, rewrote it to use proper structures and share the generic implementation between ntoskrnl and ntdll
+
* Moved ntdll's atom table implementation to Rtl, and rewrote it to use proper structures and to 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.
+
* Updated the Rtl handle table implementation to use proper structures; however, reserved handles are not yet supported correctly
  
 
== Kernel Mode Drivers ==
 
== Kernel Mode Drivers ==
 
=== Input Device ===
 
=== Input Device ===
* i8042prt driver by tinus.
+
* <code>i8042prt</code> driver by [tinus]
  
 
=== ACPI ===
 
=== ACPI ===
* Implement IRP_MN_QUERY_RESOURCE_REQUIREMENTS ([[Hervé Poussineau]])
+
* Implemented <code>IRP_MN_QUERY_RESOURCE_REQUIREMENTS</code> ([[Hervé Poussineau]])
  
 
=== PCI ===
 
=== PCI ===
* Report correct list in IRP_MN_QUERY_RESOURCE_REQUIREMENTS ([[Hervé Poussineau]])
+
* Report correct list in <code>IRP_MN_QUERY_RESOURCE_REQUIREMENTS</code> ([[Hervé Poussineau]])
  
 
=== SERIAL ===
 
=== SERIAL ===
 
([[Hervé Poussineau]])
 
([[Hervé Poussineau]])
* serial.sys driver completed except control handflow (XON/XOFF)
+
* <code>serial.sys</code> driver completed except control and flow (XON/XOFF)
* serenum.sys driver completed. It enumerates mice plugged on serial ports
+
* <code>serenum.sys</code> driver completed&mdash;now enumerates mice plugged into serial ports
  
 
=== USB ===
 
=== USB ===
* UHCI HCD driver supports recognizing Memory type of resource ([[Aleksey_Bragin]])
+
* UHCI HCD driver supports recognizing Memory type of resource ([[Aleksey Bragin]], [[Hervé Poussineau]])
([[Hervé Poussineau]])
+
* UHCI controller driver, which uses the Cromwell USB stack
* UHCI controller driver, that uses Cromwell USB stack  
+
* Basic USB hub driver, which sometimes reports connected devices
* Basic USB hub driver, that sometimes reports connected devices
 
  
 
=== VFAT ===
 
=== VFAT ===
* Implement FSCTL_IS_VOLUME_DIRTY and FSCTL_MARK_VOLUME_DIRTY ([[Hervé Poussineau]])
+
* Implemented <code>FSCTL_IS_VOLUME_DIRTY</code> and <code>FSCTL_MARK_VOLUME_DIRTY</code> ([[Hervé Poussineau]])
  
 
=== VGA ===
 
=== VGA ===
* Implement IOCTL_VIDEO_QUERY_AVAIL_MODES, IOCTL_VIDEO_QUERY_CURRENT_MODE, IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES ([[Hervé Poussineau]])
+
* Implemented <code>IOCTL_VIDEO_QUERY_AVAIL_MODES</code>, <code>IOCTL_VIDEO_QUERY_CURRENT_MODE</code>, <code>IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES</code> ([[Hervé Poussineau]])
* VMWare 5 video driver works ([[GvG]]) and ([[Filip_Navara]])
+
* [[VMware]] 5 video driver works ([[Gé van Geldorp]] and [[Filip Navara]])
* Qemu video drive works ([[GvG]]), ([[Alex_Ionescu]]), and ([[Filip_Navara]])
+
* [[QEMU]] video driver works ([[Gé van Geldorp]], [[Alex Ionescu]]), and [[Filip_Navara]])
  
 
= Networking =
 
= Networking =
* Implemented WSAStringToAddressA and WSAStringToAddressW in ws2_32 ([[Magnus Olsen]])
+
* Implemented <code>WSAStringToAddressA</code> and <code>WSAStringToAddressW</code> in <code>ws2_32</code> ([[Magnus Olsen]])
* Added dhcp service and make it start. ([[Art_Yerkes]])
+
* Added DHCP service and make it start ([[Art Yerkes]],
([[WaxDragon]])
+
([[Andrew Munger]])
* Implement get* integer reading.
+
* Implement <code>get* integer</code> reading
* Properly implement ipv4addrs (validates a set of IPv4 addresses)
+
* Properly implemented <code>ipv4addrs</code> (validates a set of IPv4 addresses)
* Limit returned DNS servers to 1 until we fix iphlpapi.
+
* Limit the number of returned DNS servers to 1 until <code>iphlpapi</code> is fixed
([[GvG]])
 
* Implement GetNameInfo
 
  
 
= Session Manager (SMSS) =
 
= Session Manager (SMSS) =
* Removed loading of the kernel mode part of Win32 emulator (win32k.sys).
+
* Removed loading of the kernel-mode part of the Win32 subsystem (<code>win32k.sys</code>)
* Removed running winlogon.exe
+
* Removed running of <code>winlogon.exe</code>
= Win32(tm) Personality =
+
= Win32&trade; Personality =
 
== User mode subsystem server (CSRSS) ==
 
== User mode subsystem server (CSRSS) ==
* Added loading of the kernel mode part of the Win32 emulator (win32k.sys);
+
* Added loading of the kernel-mode part of the Win32 subsystem (<code>win32k.sys</code>);
* Run winlogon.exe
+
* Run <code>winlogon.exe</code>
* Implemented EnumSystemLocalesW ([[Aleksey_Bragin]])
+
* Implemented <code>EnumSystemLocalesW</code> ([[Aleksey Bragin]])
  
== Kernel mode subsystem server (WIN32K) ==
+
== Kernel-mode subsystem server (Win32K) ==
 
([[Magnus Olsen]])
 
([[Magnus Olsen]])
* Implement NtGdiDdCanCreateSurface and NtGdiDdBlt for DirectX (untested)  
+
* Implemented <code>NtGdiDdCanCreateSurface</code> and <code>NtGdiDdBlt</code> for DirectX&trade; (untested)  
* StrechBitBlt for all Bpp (not full implemet use the code as ref)  
+
* Expanded <code>StretchBitBlt</code> to all bit-per-pixel (BPP) settings (not yet fully implemented; use the code as a reference)
* partially implemented fullscreen in changedisplay setting I can play winquake in fullscreen now :)
+
* partially implemented fullscreen in changedisplay setting&mdash;I can play winquake&trade; in fullscreen now :)
* Implement NtGdiGetSystemPaletteUse and NtGdiSetSystemPaletteUse this code have been taken from wine
+
* Implemented <code>NtGdiGetSystemPaletteUse</code> and <code>NtGdiSetSystemPaletteUse</code> (this code has been taken from Wine)
* fix winquake color glitc bug the text are now whie instead for black ([[Magnus Olsen]])
+
* Fixed winquake color glitch bug&mdash;the text is now white instead of black ([[Magnus Olsen]])
* Implement NtGdiAnimatePalette (partly ripped from Wine does not anime 100% of the palette) ([[Hervé Poussineau]])
+
* Implemented <code>NtGdiAnimatePalette</code> (partly ripped from Wine; does not animate 100% of the palette) ([[Hervé Poussineau]])
* Speed optimze the bitblt By  ([[Magnus Olsen]]), ([[Gregor_Anich]]), ([[Alex_Ionescu]]), ([[GvG]]) see svn log
+
* Speed-optimized the bitblt ([[Magnus Olsen]], [[Gregor Anich]]), [[Alex Ionescu]]), [[Gé van Geldorp]]) (''see svn log'')
* Repair GDI handle debugging functionality. ([[Filip_Navara]])
+
* Repaired GDI to handle debugging functionality ([[Filip Navara]])
* Implement NtGdiUnrealizedObject ([[James_Tabor]])
+
* Implemented <code>NtGdiUnrealizedObject</code> ([[James Tabor]])
* Implement WH_KEYBOARD_LL hook ([[GvG]])
+
* Implemented <code>WH_KEYBOARD_LL</code> hook ([[Gé van Geldorp]])
  
== Win32(tm) Libraries ==
+
== Win32&trade; Libraries ==
 
=== ADVAPI32 ===
 
=== ADVAPI32 ===
([[Eric_Kohl]])
+
([[Eric Kohl]])
* Implemented LockServiceDatabase, UnlockServiceDatabase, ControlService, QueryServiceStatus.
+
* Implemented <code>LockServiceDatabase</code>, <code>UnlockServiceDatabase</code>, <code>ControlService</code>, <code>QueryServiceStatus</code>
* Implemented OpenSCManagerA, OpenServiceA, OpenServiceW and QueryServiceStatus
+
* Implemented <code>OpenSCManagerA</code>, <code>OpenServiceA</code>, <code>OpenServiceW</code> and <code>QueryServiceStatus</code>
([[Thomas_Weidenmueller]])
+
([[Thomas Weidenmueller]])
* Ported BuildTrusteeWithObjectsAndName and BuildTrusteeWithObjectsAndSid from wine.
+
* Ported <code>BuildTrusteeWithObjectsAndName</code> and <code>BuildTrusteeWithObjectsAndSid</code> from Wine
* Implemented RegOpenCurrentUser
+
* Implemented <code>RegOpenCurrentUser</code>
* Implemented OpenAndMapFileForRead, RetreiveFileSecurity, StampFileSecurity, TakeOwnershipOfFile and UnmapAndCloseFile.
+
* Implemented <code>OpenAndMapFileForRead</code>, <code>RetrieveFileSecurity</code>, <code>StampFileSecurity</code>, <code>TakeOwnershipOfFile</code> and <code>UnmapAndCloseFile</code>
* Implemented RegOpenUserClassesRoot
+
* Implemented <code>RegOpenUserClassesRoot</code>
* Implemented IsTokenRestricted(), inspired by a patch to winehq by James Hawkins
+
* Implemented <code>IsTokenRestricted()</code>, inspired by a patch to Wine by James Hawkins
* Implemented TokenRestrictedSids
+
* Implemented <code>TokenRestrictedSids</code>
  
 
=== KERNEL32 ===
 
=== KERNEL32 ===
* Implemented GetCommProperties, ClearCommError, CommConfigDialogA, CommConfigDialogW (Saveliy Tretiakov)
+
* Implemented <code>GetCommProperties</code>, <code>ClearCommError</code>, <code>CommConfigDialogA</code>, <code>CommConfigDialogW</code> ([[Saveliy Tretiakov]])
* Implemented GetCommConfig, SetCommConfig, FindFirstFileExW (Dmitry Philippov)
+
* Implemented <code>GetCommConfig</code>, <code>SetCommConfig</code>, <code>FindFirstFileExW</code> ([[Dmitry Philippov]])
  
 
=== SETUPAPI ===
 
=== SETUPAPI ===
([[Hervé Poussineau]])
+
*Work by [[Hervé Poussineau]] on devices enumeration by implementing:
*Work on devices enumeration by implementing:
+
** <code>CM_Enumerate_Classes(_Ex) </code>
** CM_Enumerate_Classes(_Ex)
+
** <code>SetupDiCreateDeviceInfoA</code>
** SetupDiCreateDeviceInfoA
+
** <code>SetupDiCreateDeviceInfoListExW</code>
** SetupDiCreateDeviceInfoListExW
+
** <code>SetupDiEnumDeviceInfo</code>
** SetupDiEnumDeviceInfo
+
** <code>SetupDiGetActualSectionToInstallA</code>
** SetupDiGetActualSectionToInstallA
+
** <code>SetupDiGetClassDescriptionExA</code>
** SetupDiGetClassDescriptionExA
+
** <code>SetupDiGetClassDevs(Ex)A/W</code>
** SetupDiGetClassDevs(Ex)A/W
+
** <code>SetupDiGetDeviceInterfaceDetailA/W</code>
** SetupDiGetDeviceInterfaceDetailA/W
+
** <code>SetupDiGetDeviceRegistryPropertyA/W</code>
** SetupDiGetDeviceRegistryPropertyA/W
+
 
([[Eric_Kohl]])
+
([[Eric Kohl]]) implemented:
* Implemented:
+
** <code>ConcatenatePaths</code>
** ConcatenatePaths
+
** <code>MyGetFileTitle</code>
** MyGetFileTitle
+
** <code>GetVersionInfoFromImage</code>
** GetVersionInfoFromImage
+
** <code>StringTableDuplicate</code>
** StringTableDuplicate
 
  
 
=== DirectX ===
 
=== DirectX ===
Dorp last sync with wine and userhook  
+
* Reverted last previous sync with Wine and userhook&mdash;before we can sync with Wine, we need to rewrite the enumeration and registration of devices so that they work correctly in both ReactOS and Windows
Before we can sync with wine we need to rewrite the enum
+
* Added SVN rev. 15043 and userhooks only for the mouse&mdash;the mouse now works in tribles in windowed mode, but in full screen it is a bit choppy; however, this has not been tested in tribles on ReactOS with the new code
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 ===
 
=== Userenv ===
David Nordenberg: Swedish translation, proofread by Andreas Bjerkeholt
+
* [[David Nordenberg]]: Swedish translation, proofread by Andreas Bjerkeholt
  
 
== Libraries shared with Wine ==
 
== Libraries shared with Wine ==
([[GvG]])
+
([[Gé van Geldorp]])
* Sync to Wine-20050419
+
* Synced to Wine-20050419
* Sync to Wine-20040419
+
* Synced to Wine-20040419
* Sync to Wine-20050524
+
* Synced to Wine-20050524
* Sync to Wine-20050628
+
* Synced to Wine-20050628
 +
 
 
=== USER32 ===
 
=== USER32 ===
* Implementation of DragDetect. Based on Wine code (C) 1993, 1994 Alexandre Julliard. ([[Filip_Navara]])
+
* Implemented <code>DragDetect<code> based on Wine code &copyright; 1993, 1994 Alexandre Julliard ([[Filip Navara]])
([[James_Tabor]])
 
* Implemented:
 
** TrackMouseEvent.
 
** NtUserGetAsyncKeyState and support for TrackMouseEvent.
 
** DrawMenuBar.
 
** CheckMenuRadioItem. Not fully tested.
 
** GetMenuString A & W. Not fully tested.
 
** ModifyMenu A & W.
 
** MDICascade, MDITile and WIN_ListChildren
 
 
 
  
 +
([[James Tabor]]) implemented:
 +
** <code>TrackMouseEvent</code>
 +
** <code>NtUserGetAsyncKeyState</code> and support for <code>TrackMouseEvent</code>
 +
** <code>DrawMenuBar</code>
 +
** <code>CheckMenuRadioItem</code> (not fully tested)
 +
** <code>GetMenuString</code> <code>A</code> and <code>W</code> (not fully tested)
 +
** <code>ModifyMenu</code> <code>A</code> and <code>W</code>
 +
** <code>MDICascade</code>, <code>MDITile</code> and <code>WIN_ListChildren</code>
  
== Win32(tm) Applications ==
+
== Win32&trade; Applications ==
 
=== IPConfig ===
 
=== IPConfig ===
(Tim Jobling <tjob800@yahoo.co.uk>)
+
([[Tim Jobling]])
* Relicense to GPL.
+
* Relicensed to GNU Public License (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
 
* Changed C++ style commenting to C style
 +
* IPConfig now has the following functionality:
 +
** Displays <code>NodeType</code> with meaningful, human-readable names
 +
** Exclusively uses <code>TCHAR</code> strings
 +
** Displays physical address, DHCP enabled state, IP addresses and netmasks, default gateway, DHCP server and DHCP lease times
 +
** Parses command line options
 +
** Defaults to showing only the IP/SM/DG if no options are specified
 +
** Handles options <code>/All</code> and <code>/?</code>
 +
** Displays message about all unimplemented options
  
 
=== CMD ===
 
=== CMD ===
 
([[Magnus Olsen]])
 
([[Magnus Olsen]])
* Remove all hardcode string to own rc file.
+
* Removed all hard-coded strings to their own <code>.rc</code> file
* Cache codepage instead call on win32 api for it whole time.
+
* Caches codepage instead of always calling on win32 api for it
* Add *.* syntax to Dir
+
* Added <code>*.*</code> syntax to <code>dir</code> command
* Bugfix Color now it work as it should  
+
* Bugfix: Color now it work as it should  
* Bugfix CD "program files" so it works  
+
* Bugfix: <code>CD "Program Files"<code> now 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
+
* Implemented <code>CD s*</code>
* fix a small bug in choice.c so it does print out choice "sadsad" right
+
* Translates <code>%errorlevel%</code> to a value when passed at command line&mdash;now <code>errorlevel</code> is implemented as it should be
* add %time% and %cd%  internal value. Example echo %cd% or echo %time%.
+
** left to do: check that all <code>CMD</code> commands are set to the correct value
* add %DATE% example echo %date% are working now. Bugfix date so it print out the week days names.
+
* Fixed a small bug in <code>choice.c</code> so that it prints out choice <code>sadsad</code> correctly
* adding %RANDOM% example how to use it echo %random%  
+
* Added <code>%time%</code> and <code>%cd%</code> internal values (example: <code>echo %cd%</code> or <code>echo %time%</code>)
* adding %cmdcmdline%, example how to use it echo %CMDCMDLINE%
+
* Added <code>%DATE%</code> (example: <code>echo %date%</code> works now)
* 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.
+
* Bugfix: <code>date</code> now prints out the names of the days of the week  
* quick dirty hack getting our copy working with 1>null by me, thanks to Hartex and Brandon to hunt down where the bug was.<br>
+
* Added <code>%RANDOM%</code> (for an example of how to use it: <code>echo %random%</code>)
 +
* Added <code>%cmdcmdline%</code> (for an example of how to use it: <code>echo %CMDCMDLINE%</code>)
 +
* Added <code>%CMDEXTVERSION%</code> (for an example of  how to use it: <code>echo %CMDEXTVERSION%</code>&mdash;the value is hardcoded to 2, because that is the value Microsoft Windows 2000 and Windows XP report) (''thanks to arty for testing this in Windows XP'')
 +
* Added quick dirty hack getting our implementation working with <code>1>null</code> by me (''thanks to Hartex and Brandon for hunting down the bug'')
  
([[Frik85]])
+
([[Klemens Friedl]])
* Add Help command (By Frik85)
+
* Added <code>Help</code> command
* Add german language resource to the ReactOS Command Processor
+
* Added German language resource to the ReactOS Command Processor
(not completely finished, I will update it as soon as possible)<br>
+
(not completely finished, I will update it as soon as possible)
 +
([mailto:2005only@pianonote.at] [[Martin Rottensteiner]])
 +
* Sets <code>errorlevel</code> to <code>9009</code> if command not found
 +
* Implemented <code>exit /b #</code> in batch files
  
Martin Rottensteiner (2005only@pianonote.at):
+
([[Brandon Turner]])
* set errorlevel to 9009 if command not found
+
* Added exclusive deletion (for example: <code>del * -abc.txt -text*.txt</code>)
* implemented exit /b # in batchfiles<br>
+
* Fixed bug to allow Microsoft-style wildcards
 
+
* Code clean up: added <code>/y</code> and <code>/-y</code> in <code>move.c</code>
([[Brandon_Turner]])
+
* simple check to fix <code>></code> and <code>|</code> bugs with <code>rem</code>
* Added exclusive deletion "del * -abc.txt -text*.txt"
+
* Implemented <code>/A</code> in <code>delete</code> (for example: <code>del /A:H /A:-R *.exe -ping.exe</code>)
* Fixed bug to allow MS style wildcards + code clean up added /y and /-y in move.c
+
* Bugfix: <code>color.c</code> now works similar to Microsoft CMD color
* simple check to fix > and | bug with 'rem'
+
* Bugfix: <code>mv foo.txt c:\temp</code> now gives you <code>c:\tempfoo.txt</code>
* 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 ===
 
=== TASKMGR ===
* Remove some hardcode string tested by Harteex ([[Filip_Navara]])
+
* Removed some hard-coded strings tested by Hartex ([[Filip Navara]])
 
 
 
 
  
 
=== EXPLORER ===
 
=== EXPLORER ===
* Stepwise taskbar resizing (charn <charn89@hotmail.com>)
+
* Stepwise taskbar resizing ([mailto:charn89@hotmail.com charn])
* Fix of swedish translation ([[Magnus Olsen]])
+
* Swedish translation ([[David Nordenberg]] (dnordenberg /at/ users.sourceforge.net))
* option to build Explorer as ROS Shell without integrated explorer part ([[Martin Fuchs]])
+
* Added option to build Explorer as ReactOS shell without integrated Explorer part ([[Martin Fuchs]])
* display of custom folders in start menu root ([[Martin Fuchs]])
+
* Display of custom folders in start menu root ([[Martin Fuchs]])
* fix of listbox insert algorithmus ([[Martin Fuchs]])
+
* Fixed listbox insertion algorithms ([[Martin Fuchs]])
* Czech translation of Explorer (Luk _ "denzil" Frolka <d3nzil@gmail.com>)
+
* Czech translation of Explorer ([mailto:d3nzil@gmail.com][[Luk Frolka]])
* Russian Translation (Done by Dmitry Philippov, checked by fireball, DarkHobbit and others)
+
* Russian translation (done by [[Dmitry Philippov]]; checked by fireball, DarkHobbit and others)
* French Translation (hpoussin)
+
* French translation ([[Hervé Poussineau]])
* split of big explorer resource file into smaller language specific rescource scripts ([[Martin Fuchs]])
+
* Split big Explorer resource file into smaller, language-specific resource scripts ([[Martin Fuchs]])
* Implemented part of screensaver functions, get values from reg, and show screensaver (<sikker2004@yahoo.com>)
+
* Implemented part of screensaver functions: get values from reg, and show screensaver ([mailto:sikker2004@yahoo.com sikker2004])
  
 
=== WINEFILE ===
 
=== WINEFILE ===
* Czech translation (Denzil <d3nzil@gmail.com>)
+
* Czech translation ([mailto:d3nzil@gmail.com] [[Luk Frolka]])
* Swedish translation (David Nordenberg, proofread by Andreas Bjerkeholt)
+
* Swedish translation ([[David Nordenberg]]; proofread by Andreas Bjerkeholt)
* implementation of owner drawn context menus ([[Martin Fuchs]])
+
* Implementation of owner-drawn context menus ([[Martin Fuchs]])
* from WINE: add czech and swedish resource files ([[Martin Fuchs]])
+
* From Wine: added 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@palosanto.com>)
+
* From Wine: changed <code>SUBLANG_DEFAULT</code> to <code>SUBLANG_NEUTRAL</code> for <code>LANG_SPANISH</code> in all resources, so that Spanish locales other than Spain also use Spanish resources ([mailto:a_villacis@palosanto.com] [[Alex Villacís Lasso]])
* from WINE: Spanish translation (José Manuel Ferrer Ortiz <jmfo1982@yahoo.es>)
+
* From Wine: Spanish translation ([mailto:jmfo1982@yahoo.es] [[José Manuel Ferrer Ortiz]])
* from WINE: Update of Portuguese translation (Marcelo Duarte <wine-devel@bol.com.br>, Am‚rico Jos‚ Melo <mmodem00@netvisao.pt>, Francois Gouget <fgouget@codeweavers.com>)
+
* From Wine: updated Portuguese translation ([mailto:Wine-devel@bol.com.br] [[Marcelo Duarte]], Am‚ [[Rico Jos]]‚ [mailto:mmodem00@netvisao.pt Melo], [mailto:fgouget@codeweavers.com] [[Francois Gouget]])
* from WINE: Update of German translation. (Henning Gerhardt <henning.gerhardt@web.de>)
+
* From Wine: updated German translation ([mailto:henning.gerhardt@web.de] [[Henning Gerhardt]])
* display source path in "move file" dialog ([[Martin Fuchs]])
+
* Display source path in "move file" dialog ([[Martin Fuchs]])
* network connect and disconnect dialogs ([[Martin Fuchs]])
+
* Network connect and disconnect dialogs ([[Martin Fuchs]])
* "format disk" dialog ([[Martin Fuchs]])
+
* “Format disk” dialog ([[Martin Fuchs]])
* display free and total disk space ([[Martin Fuchs]])
+
* Display free and total disk space ([[Martin Fuchs]])
* switching of file sort order ([[Martin Fuchs]])
+
* Switching of file sort order ([[Martin Fuchs]])
* from WINE: add polish resource file ([[Martin Fuchs]])
+
* From Wine: added Polish resource file ([[Martin Fuchs]])
* window refresh in shell mode ([[Martin Fuchs]])
+
* Window refresh in shell mode ([[Martin Fuchs]])
* implement file filtering (matching file name patterns and file types) ([[Martin Fuchs]])
+
* Implemented file filtering (matching file name patterns and file types) ([[Martin Fuchs]])
* refresh display after executing a context menu command ([[Martin Fuchs]])
+
* Refresh display after executing a context menu command ([[Martin Fuchs]])
* file copy, move and delete commands ([[Martin Fuchs]])
+
* File copy, move and delete commands ([[Martin Fuchs]])
* file properties dialog ([Martin Fuchs], partly based on Rob D.'s winfile code)
+
* File properties dialog ([[Martin Fuchs]], based partly on Rob D.'s winfile code)
* from WINE: Update German resource files (Henning Gerhardt <henning.gerhardt@web.de>)
+
* From Wine: updated German resource files ([mailto:henning.gerhardt@web.de] [[Henning Gerhardt]])
* switch to WIN32 API string functions ([[Martin Fuchs]])
+
* Switched to Win32 API string functions ([[Martin Fuchs]])
* Updated winefile French resources (Jonathan Ernst <Jonathan@ErnstFamily.ch>)
+
* Updated Winefile French resources ([mailto:Jonathan@ErnstFamily.ch] [[Jonathan Ernst]])
* Sync source code and resource scripts between WINE and ROS WINE and switch to UNICODE compilaton in Wine ([[Martin Fuchs]])
+
* Synced source code and resource scripts between WINE and ReactOS WINE, and switched to UNICODE compilation in Wine ([[Martin Fuchs]])
 +
 
 +
{{Navigation Changelog}}

Latest revision as of 13:44, 7 September 2008

This is the changelog for ReactOS™ version 0.2.7 (released August 22, 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.6 (released April 10, 2005).

General

With the release of 0.2.7, ReactOS has again gained further compatibility with Microsoft™ Windows™. The headers for ReactOS have been aligned with those of the Windows Software Development Kit (SDK), which gives us a greater range of driver compatibility. ReactOS has also been updated to be compliant with the latest GNU™ C Compiler (GCC)—i.e., GCC version 4—which, with our new build system provides a faster and more efficient build process. We have elected a new user interface (UI) coordinator, and work has begun to modify the interfaces seen by the user.

Apart from the UI work, many of these improvements are of an "under-the-hood" nature and, while quite important to the rapid progress of the project, are not necessarily obvious to the end user. However, these refinements to the ReactOS infrastructure facilitate the ongoing advancements in USB, Plug and Play, and networking functionality that will be prominent features of the next upcoming release.

Main 0.2.7 Changes

  • Header clean-up for compatibility with Windows SDK headers; implemented and used NDK; ReactOS is now built with our own headers (Alex Ionescu, Filip Navara, and Steven Edwards)
  • New My Computer, command prompt, and ReactOS logo icons (Mindflyer)
  • New build system called rbuild which is based on the eXtensible Markup Language (XML), and which allows for automatically generated makefiles (Casper Hornstup)
  • Improved appearance of the first-stage installer (Alex Ionescu)
  • GCC 4.x.x build fixes (Thomas Weidenmueller and Alex Ionescu)

Known Bugs

  • ReactOS fails to boot on some hardware and reports an AllocConsole error when no PS/2-style mouse is attached (see Bug 688)
  • This ReactOS release requires 64 MB of RAM to complete the first-stage installer (see Bug 703)

Translations

ReactOS Core

Kernel and Executive (NTOSKRNL)

(Hervé Poussineau)

  • Implemented:
    • IoRegisterDeviceInterface
    • IoSetDeviceInterfaceState
    • IoRegisterPlugPlayNotification
    • IoUnregisterPlugPlayNotification
    • PoRequestPowerIrp
    • IRP_MN_QUERY_RESOURCE_REQUIREMENTS for devices enumerated by Root bus

(Eric Kohl)

  • Implemented:
    • PLUGPLAY_GET_RELATED_DEVICE and PLUGPLAY_DEVICE_STATUS
    • PlugPlayControlProperty and PlugPlayControlGetDeviceDepth
    • CM_Get_Global_State/CM_Get_Global_State_Ex

(Alex Ionescu)

  • Kernel (Ke)
    • Implemented Guarded Mutex:
      • KeAcquireGuardedMutex, KeEnterGuardedRegion, KeLeaveGuardedRegion, KeInitializeGuardedMutex, KeAcquireGuardedMutexUnsafe, KeReleaseGuardedMutexUnsafe, KeAcquireGuardedMutex, KeReleaseGuardedMutex, KeTryToAcquireGuardedMutex
    • Fixed critical APC queuing and delivery bugs
    • Optimized Entering/Leaving critical sections and enabled APC delivery after each leave, if required
    • Fixed KeWaitForMultipleObjects if WaitAll was used
    • Rewrote context switching to be faster
    • Fixed KINTERRUPT structure and KeDisconnectInterrupt
    • Fixed a bug in which kernel queues were inserted into the ready thread list
  • Input/Output (Io)
    • Implemented IoIsfileOriginRemote, IoGetLowerDeviceObject, IoGetDiskDeviceObject, IoGetRequestorSessionId, IoGetRequestorProcessId, IoRegisterBootDriverRetinialization, IoAttachDevicetoDeviceStackSafe, IoEnumerateDeviceObjectList, IoGetDeviceAttachmentBaseRef, IoDetachDevice, IoRaiseHardError
    • Fixed controller objects implementation
    • Fixed attaching to devices (IoAttachDevice) so that the appropriate driver will be notified with IO_ATTACH_DEVICE_API
    • Fixed IoAttachDevicetoDeviceStack and IoAttachDevice to call the Safe function
    • Optimized IoGetRelatedDeviceObject
    • Removed IoOpenDeviceInstanceKey and IoQueryDeviceEnumInfo
    • Cleaned up IopAllocateVpb
    • Optimized IoCreateDevice, added support for more flags and removed hard-coded sector size and incorrect sizes which were previously set
    • Fixed IRP Code not to zero out the IRP, to free MDLs in failure cases, to set the correct IRP flags and to set the I/O object type
    • Reimplemented second-stage completion for IRPs to free ALL MDLs, to free memory depending on the flags used, not to call I/O Completion if an APC is registered, not to set event/call APCs in some failure cases, and not to use certain fields after the pointer can become invalid
    • Uses the correct stack count in I/O operations
    • Fixed IopDeleteFile to fix a memory leak and to dereference the completion port
    • Fixed IopCloseFile, NtQueryInformationFile, NtFlushBuffersFile, NtQueryDirectoryFile, NtReadFile, NtWriteFile, NtSetInformationFile, IopSecurityFile, IopQueryFileName, NtDeviceIoControlFile, NtLockFile, and NtUnlockFile, which contained several bugs related to IRPs and completion, were making assumptions or not supporting all the appropriate possibilities, were signaling the wrong event or making the wrong kind of call, or were using the wrong device object
    • Implemented lookaside lists for IRP packets to increase the allocation/deallocation speed by over 400%
    • Optimized completion packets by piggybacking them on IRP packets if possible, and added the correct memory flags to free them properly
    • Share NtDeviceIoControlFile and NtFsIoControlFile
    • Fixed IRP cancellation
    • Rewrote I/O interrupt functions to match the new structure, and optimized some code paths
  • Process Manager (Ps)
    • Created memory manager (Mm) functions when touching process/memory
    • Created kernel (Ke) functions when touching kernel structures and semantics
    • Cached and optimized system DLL (ntdll) loading/mapping, so that it is done only at startup
    • Implemented NtOpenProcess, PsRemoveLoadImageNotifyRoutine, PsGetCurrentProcessSessionId, PsSetLegoNotifyRoutine, PsRemoveCreateThreadNotifyroutine, PsGetVersion
    • Rewrote process/thread creation and exit functions
  • Memory Manager (Mm)
    • PEB and TEB are now properly allocated in memory, allowing 4KB granularity instead of 64KB, and removed all the hacks which allowed this earlier
    • Implemented MmCreateKernelStack and MmDeleteKernelStack
    • Took out many system structures from non-paged pool to paged pool, to reduce physical memory consumption
    • Removed pool debugging functions in retail builds to increase execution speed
    • Prohibit NtQueryVirtualMemory for kernel-mode addresses
    • Fixed bug in memory mapping which caused large applications to trigger the “blue screen of death” (BSOD)
    • Made the PE loader more lenient so that it can load a broader range of valid executables
  • Executive (Ex)
    • Fixed the lookaside functions, their macros and the way the functions were being exported
    • Moved Win32k object registration into Win32k—the pointers and initialization are now done when Win32k loads
  • Debugging Services (Dbgk/Kd)
    • Implemented some Dbgk code for user-mode debugging
    • Implemented modular debugging services for Bochs, GNU Debugger (GDB), etc.
  • Object Manager (Ob)
    • Implemented fast referencing stubs
    • Rewrote ObQueryNameString
    • Rewrote ObjectType creation to match the structures, flags and semantics present in Windows NT's Object Manager, from the caller's point of view
    • Implemented Object Create Information structure and semantics when capturing data from user-mode, securing and removing a lot of potential kernel exploits
    • Fixed ObCreateObject and ObInsertObject to work as in Microsoft Windows— ObCreateObject only allocates the object, while ObInsertObject does everything else
  • File System Runtime (FsRtl)
    • FsRtlMdlRead, FsRtlMdlReadComplete, FsMdlReadCompleteDev, FsRtlMdlWRiteComplete, FsRtlMdlWriteCompleteDev, FsRtlPrepareMdlWrite, CcMdlReadCompleted, CcMdlWriteComplete, CcMdlReadCompleteDev, FsRtlAllocateResource, FsRtlIsPagingFile, FsRtlBalanceReads
  • Security Subsystem (Se)
    • Implemented SeCreateAccessState, SeDeleteAccessState, and SeSetAccessStateGenericMapping based on a patch by Javier M. Mellid

(Thomas Weidenmueller)

  • Implemented RtlHashUnicodeString
  • Moved ntdll's atom table implementation to Rtl, and rewrote it to use proper structures and to share the generic implementation between ntoskrnl and ntdll
  • Updated the Rtl handle table implementation to use proper structures; however, reserved handles are not yet supported correctly

Kernel Mode Drivers

Input Device

  • i8042prt driver by [tinus]

ACPI

PCI

SERIAL

(Hervé Poussineau)

  • serial.sys driver completed except control and flow (XON/XOFF)
  • serenum.sys driver completed—now enumerates mice plugged into serial ports

USB

  • UHCI HCD driver supports recognizing Memory type of resource (Aleksey Bragin, Hervé Poussineau)
  • UHCI controller driver, which uses the Cromwell USB stack
  • Basic USB hub driver, which sometimes reports connected devices

VFAT

VGA

Networking

  • Implemented WSAStringToAddressA and WSAStringToAddressW in ws2_32 (Magnus Olsen)
  • Added DHCP service and make it start (Art Yerkes,

(Andrew Munger)

  • Implement get* integer reading
  • Properly implemented ipv4addrs (validates a set of IPv4 addresses)
  • Limit the number of returned DNS servers to 1 until iphlpapi is fixed

Session Manager (SMSS)

  • Removed loading of the kernel-mode part of the Win32 subsystem (win32k.sys)
  • Removed running of winlogon.exe

Win32™ Personality

User mode subsystem server (CSRSS)

  • Added loading of the kernel-mode part of the Win32 subsystem (win32k.sys);
  • Run winlogon.exe
  • Implemented EnumSystemLocalesW (Aleksey Bragin)

Kernel-mode subsystem server (Win32K)

(Magnus Olsen)

  • Implemented NtGdiDdCanCreateSurface and NtGdiDdBlt for DirectX™ (untested)
  • Expanded StretchBitBlt to all bit-per-pixel (BPP) settings (not yet fully implemented; use the code as a reference)
  • partially implemented fullscreen in changedisplay setting—I can play winquake™ in fullscreen now :)
  • Implemented NtGdiGetSystemPaletteUse and NtGdiSetSystemPaletteUse (this code has been taken from Wine)
  • Fixed winquake color glitch bug—the text is now white instead of black (Magnus Olsen)
  • Implemented NtGdiAnimatePalette (partly ripped from Wine; does not animate 100% of the palette) (Hervé Poussineau)
  • Speed-optimized the bitblt (Magnus Olsen, Gregor Anich), Alex Ionescu), Gé van Geldorp) (see svn log)
  • Repaired GDI to handle debugging functionality (Filip Navara)
  • Implemented NtGdiUnrealizedObject (James Tabor)
  • Implemented WH_KEYBOARD_LL hook (Gé van Geldorp)

Win32™ 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, RetrieveFileSecurity, StampFileSecurity, TakeOwnershipOfFile and UnmapAndCloseFile
  • Implemented RegOpenUserClassesRoot
  • Implemented IsTokenRestricted(), inspired by a patch to Wine by James Hawkins
  • Implemented TokenRestrictedSids

KERNEL32

  • Implemented GetCommProperties, ClearCommError, CommConfigDialogA, CommConfigDialogW (Saveliy Tretiakov)
  • Implemented GetCommConfig, SetCommConfig, FindFirstFileExW (Dmitry Philippov)

SETUPAPI

  • Work by Hervé Poussineau on devices enumeration by implementing:
    • CM_Enumerate_Classes(_Ex)
    • SetupDiCreateDeviceInfoA
    • SetupDiCreateDeviceInfoListExW
    • SetupDiEnumDeviceInfo
    • SetupDiGetActualSectionToInstallA
    • SetupDiGetClassDescriptionExA
    • SetupDiGetClassDevs(Ex)A/W
    • SetupDiGetDeviceInterfaceDetailA/W
    • SetupDiGetDeviceRegistryPropertyA/W

(Eric Kohl) implemented:

    • ConcatenatePaths
    • MyGetFileTitle
    • GetVersionInfoFromImage
    • StringTableDuplicate

DirectX

  • Reverted last previous sync with Wine and userhook—before we can sync with Wine, we need to rewrite the enumeration and registration of devices so that they work correctly in both ReactOS and Windows
  • Added SVN rev. 15043 and userhooks only for the mouse—the mouse now works in tribles in windowed mode, but in full screen it is a bit choppy; however, this has not been tested in tribles on ReactOS with the new code

Userenv

Libraries shared with Wine

(Gé van Geldorp)

  • Synced to Wine-20050419
  • Synced to Wine-20040419
  • Synced to Wine-20050524
  • Synced to Wine-20050628

USER32

  • Implemented DragDetect based on Wine code &copyright; 1993, 1994 Alexandre Julliard (Filip Navara)

(James Tabor) implemented:

    • TrackMouseEvent
    • NtUserGetAsyncKeyState and support for TrackMouseEvent
    • DrawMenuBar
    • CheckMenuRadioItem (not fully tested)
    • GetMenuString A and W (not fully tested)
    • ModifyMenu A and W
    • MDICascade, MDITile and WIN_ListChildren

Win32™ Applications

IPConfig

(Tim Jobling)

  • Relicensed to GNU Public License (GPL)
  • Changed C++ style commenting to C style
  • IPConfig now has the following functionality:
    • Displays NodeType with meaningful, human-readable names
    • Exclusively uses TCHAR strings
    • Displays physical address, DHCP enabled state, IP addresses and netmasks, default gateway, DHCP server and DHCP lease times
    • Parses command line options
    • Defaults to showing only the IP/SM/DG if no options are specified
    • Handles options /All and /?
    • Displays message about all unimplemented options

CMD

(Magnus Olsen)

  • Removed all hard-coded strings to their own .rc file
  • Caches codepage instead of always calling on win32 api for it
  • Added *.* syntax to dir command
  • Bugfix: Color now it work as it should
  • Bugfix: CD "Program Files" now works
  • Implemented CD s*
  • Translates %errorlevel% to a value when passed at command line—now errorlevel is implemented as it should be
    • left to do: check that all CMD commands are set to the correct value
  • Fixed a small bug in choice.c so that it prints out choice sadsad correctly
  • Added %time% and %cd% internal values (example: echo %cd% or echo %time%)
  • Added %DATE% (example: echo %date% works now)
  • Bugfix: date now prints out the names of the days of the week
  • Added %RANDOM% (for an example of how to use it: echo %random%)
  • Added %cmdcmdline% (for an example of how to use it: echo %CMDCMDLINE%)
  • Added %CMDEXTVERSION% (for an example of how to use it: echo %CMDEXTVERSION%—the value is hardcoded to 2, because that is the value Microsoft Windows 2000 and Windows XP report) (thanks to arty for testing this in Windows XP)
  • Added quick dirty hack getting our implementation working with 1>null by me (thanks to Hartex and Brandon for hunting down the bug)

(Klemens Friedl)

  • Added Help command
  • Added German language resource to the ReactOS Command Processor

(not completely finished, I will update it as soon as possible) ([3] Martin Rottensteiner)

  • Sets errorlevel to 9009 if command not found
  • Implemented exit /b # in batch files

(Brandon Turner)

  • Added exclusive deletion (for example: del * -abc.txt -text*.txt)
  • Fixed bug to allow Microsoft-style wildcards
  • Code clean up: added /y and /-y in move.c
  • simple check to fix > and | bugs with rem
  • Implemented /A in delete (for example: del /A:H /A:-R *.exe -ping.exe)
  • Bugfix: color.c now works similar to Microsoft CMD color
  • Bugfix: mv foo.txt c:\temp now gives you c:\tempfoo.txt

TASKMGR

  • Removed some hard-coded strings tested by Hartex (Filip Navara)

EXPLORER

  • Stepwise taskbar resizing (charn)
  • Swedish translation (David Nordenberg (dnordenberg /at/ users.sourceforge.net))
  • Added option to build Explorer as ReactOS shell without integrated Explorer part (Martin Fuchs)
  • Display of custom folders in start menu root (Martin Fuchs)
  • Fixed listbox insertion algorithms (Martin Fuchs)
  • Czech translation of Explorer ([4]Luk Frolka)
  • Russian translation (done by Dmitry Philippov; checked by fireball, DarkHobbit and others)
  • French translation (Hervé Poussineau)
  • Split big Explorer resource file into smaller, language-specific resource scripts (Martin Fuchs)
  • Implemented part of screensaver functions: get values from reg, and show screensaver (sikker2004)

WINEFILE

Versions / Official Changelogs / Community Changelogs
0.0.x Series 0.0.8 | 0.0.9 | 0.0.10 | 0.0.11 | 0.0.12 | 0.0.13 | 0.0.14 | 0.0.15 | 0.0.16 | 0.0.17 | 0.0.18 | 0.0.19 | 0.0.20 | 0.0.21
0.1.x Series 0.1.0 | 0.1.1 | 0.1.2 | 0.1.3 | 0.1.4 | 0.1.5
0.2.x Series 0.2.0 | 0.2.1 | 0.2.2 | 0.2.3 | 0.2.4 | 0.2.5 | 0.2.6 | 0.2.7 | 0.2.8 | 0.2.9
0.3.x Series 0.3.0 | 0.3.1 | 0.3.2 | 0.3.3 | 0.3.4 | 0.3.5 | 0.3.6 | 0.3.7 | 0.3.8 | 0.3.9 | 0.3.10 | 0.3.11 | 0.3.12 | 0.3.13 | 0.3.14 | 0.3.15 | 0.3.16 | 0.3.17
0.4.x Series 0.4.0 | 0.4.1 | 0.4.2 | 0.4.3 | 0.4.4 | 0.4.5 | 0.4.6 | 0.4.7 | 0.4.8 | 0.4.9 | 0.4.10 | 0.4.11 | 0.4.12 | 0.4.13