Difference between revisions of "ChangeLog-0.3.6"

From ReactOS Wiki
Jump to: navigation, search
(Translations)
m (rename template, remove additional category)
 
(115 intermediate revisions by 15 users not shown)
Line 1: Line 1:
This is the changelog for ReactOS™ [[0.3.6|version 0.3.6]] (not released yet), 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.3.5|version 0.3.5]] (released 30 June, 2008).
+
This is the changelog for ReactOS™ [[0.3.6|version 0.3.6]] (released 6 August, 2008), 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.3.5|version 0.3.5]] (released 30 June, 2008).
  
 
= General =
 
= General =
== Generic 0.3.5 Changes ==
+
== Generic 0.3.6 Changes ==
 +
* Move ARM register definitions to the NDK ([[ReactOS Portable Systems Group]])
 +
* Bugchecks now work on ARM ([[ReactOS Portable Systems Group]])
 +
* Red Screen of Death now functioning ([[ReactOS Portable Systems Group]])
 +
* Create separate boot data files for each architecture because of differing Registry configurations ([[ReactOS Portable Systems Group]])
 +
* Clean up KTRAP_FRAME and KEXCEPTION_FRAME definitions ([[ReactOS Portable Systems Group]])
 +
* Fix PFAST_IO_UNLOCK_ALL_BY_KEY definition ([[ReactOS Portable Systems Group]])
 +
* Implement support for IOCTL_CDROM_DISK_TYPE, IOCTL_DISK_GET_DRIVE_GEOMETRY, IOCTL_DISK_GET_PARTITION_INFO ([[ReactOS Portable Systems Group]])
 +
* ntdll, smlib, sms builds for ARM ([[ReactOS Portable Systems Group]])
 +
* Update WinUser, CWPRETSTRUCT, MOUSEHOOKSTRUCTEX ([[James Tabor]])
 +
* Fix members of UNIVERSAL_FONT_ID, based on msdn ([[Stefan Ginsberg]])
 +
* Fix READ_PORT_xxx macros ([[Timo Kreuzer]])
 +
* Fix FLOATOBJ-definition for usermode drivers and non-x86 targets ([[Timo Kreuzer]])
 +
* Remove XFORM members from DC structure and use MATRIX instead. Use MatrixS2XForm and XForm2MatrixS for intermediate conversion. ([[Stefan Ginsberg]])
 +
* Fix prototypes of _beginthread and _beginthreadex ([[Timo Kreuzer]])
  
 
== Translations ==
 
== Translations ==
 
+
* Updated Slovak and Czech translations for calc, solitaire, winmine, shell32 and desk.cpl by [[Mário Kačmár]] (bug #3519)
* Add/update spanish and basque translation for notepad, explorer, explorere-new, winlogon, access.cpl, deskadp, deskmon, slayer, shell32 and shimgvw. ([[Javier Remacha]], bug #3376)
+
* Added/updated Spanish and basque translations for notepad, explorer, explorere-new, winlogon, access.cpl, deskadp, deskmon, slayer, shell32 and shimgvw. ([[Javier Remacha]], bug #3376)
* Add/update Ukrainian translation for kbswitch and shell32 by Artem Reznikov (bug #3405).
+
* Added/updated Ukrainian translation for kbswitch and shell32 by [[Artem Reznikov]] (bug #3405).
* Update Slovak translation for shell32, newdev, intl.cpl and mmsys.cpl by Mario Kacmar (bug #3414)
+
* Added German translation of strings in INF-files (media/inf) (bug #3396) ([[Matthias Kupfer]])
 +
* Added/updated Slovak translation for shell32, newdev, eventvwr, devmgr, regedit/clb, regedit, intl.cpl, mmsys.cpl, media/inf/*.inf, calc, solitare, winemine, setup/reactos and desk.cpl by [[Mário Kačmár]] (bug #3414, #3518, #3519, #3610)
 +
* Update Czech translation for several win32/cpl files and calc by [[Radek Liska]] (bug #3413)
 +
* Update Italian translation for usetup, regedit and sehll32 by [[Paolo Devoti]] (bug #3435)
 +
* Update Polish translation of usrmgr by [[Maciej Bialas]] (bug #3480)
 +
* Update Slovak, Ukranian and Polish translations for packmgr by [[Mário Kačmár]] (bug #3601)
 +
* Added Norwegian translation of magnify and downloader by [[Lars Martin Hambro]] (bug #3504)
 +
* Updated French translation for Shell32.dll ([[Pierre Schweitzer]])
  
 
= Host Tools =
 
= Host Tools =
 
== Buildno ==
 
== Buildno ==
 +
* Fix warnings when compiled with gcc 4.2 or later ([[Daniel Verkamp]])
  
== CabMan ==
+
== Gendib ==
 +
* Fix crash when no command line argument is given ([[Christoph von Wittich]])
  
 
== RBuild ==
 
== RBuild ==
 +
* Correct LD to not assume the base address is an entrypoint ([[ReactOS Portable Systems Group]])
  
== Sysreg ==
+
== Rsym ==
 +
* Allow a stabs entry to be longer than 256 characters, so that ROS may be compiled with -feliminate-unused-debug-symbols which reduces the needed disk space a lot. ([[Jeffrey Morlan]])
  
 
= Core =
 
= Core =
 
== Bootloader (FreeLoader) ==
 
== Bootloader (FreeLoader) ==
 +
* Reduce Freeldr memory requirements: FreeLoader first reads entire ntoskrnl.exe (about 3M) into memory, then copies it to other address. Now, freeldr reads it straight to the place, not allocating extra memory for buffer ([[Dmitry Gorbachev]], bug #3447)
 +
* Modify i386 and PowerPC ports in several places to use the heap to allocate temporary data ([[Stefan Ginsberg]])
 +
* Add ramdisk support for non-clean architectures ([[ReactOS Portable Systems Group]])
 +
* Add driver database code ([[ReactOS Portable Systems Group]])
  
 
== Kernel and Executive (NTOSKRNL) ==
 
== Kernel and Executive (NTOSKRNL) ==
=== Cache ===
+
* Fix exports for ARM ([[ReactOS Portable Systems Group]])
 +
* Add memcmp to exports ([[ReactOS Portable Systems Group]])
  
 
=== CM ===
 
=== CM ===
 +
* Add ramdisk class ([[ReactOS Portable Systems Group]])
  
 
=== EX ===
 
=== EX ===
 +
* Include a "System Idle Process" as the first item in QSI SystemProcessInformation ([[Aleksey Bragin]])
 +
* Pass thread's CreateTime in QSI SystemProcessInformation ([[Aleksey Bragin]])
 +
* Better implementation of QSI SystemInterruptInformation ([[Aleksey Bragin]])
 +
* Remove a hack in the executive handle implementation which worked around a memory corruption bug ([[Stefan Ginsberg]], bug #3512)
 +
* Correct a debug print to make sure it is Execute in Place boot ([[ReactOS Portable Systems Group]])
  
 
=== FSRTL ===
 
=== FSRTL ===
 +
* Add IO_REPARSE, IO_REMOUNT, FlagOn, BooleanFlagOn, ClearFlag, FILE_READ_ONLY_VOLUME, FILE_SEQUENTIAL_WRITE_ONCE, FILE_SUPPORTS_TRANSACTIONS, FSRTL_FLAG_ADVANCED_HEADER, FSRTL_FLAG2_PURGE_WHEN_MAPPED, FSRTL_FLAG2_IS_PAGING_FILE, FSRTL_FCB_HEADER_V0, FSRTL_FCB_HEADER_V1 definitions ([[ReactOS Portable Systems Group]])
 +
* Add FILE_ID_FULL_DIR_INFORMATION, FILE_ID_BOTH_DIR_INFORMATION structures ([[ReactOS Portable Systems Group]])
 +
* Add FSRTL_COMPARISION_RESULT enumeration ([[ReactOS Portable Systems Group]])
 +
* Add FsRtlSetupAdvancedHeader macro ([[ReactOS Portable Systems Group]])
 +
* Add FsRtlIsFatDbcsLegal, FsRtlTeardownPerStreamContexts prototype ([[ReactOS Portable Systems Group]])
  
 
=== IO ===
 
=== IO ===
 +
* Save pointer to driver's section in DriverSection during driver loading ([[Aleksey Bragin]], bug #3221)
 +
* Fix unloading function to check if a driver to be unloaded really has DriverSection set, and if not, fail ([[Aleksey Bragin]], bug #3221)
 +
* Fix Irp flags assignment in case of an IoAllocateIrp call with ChargeQuota set to TRUE ([[Aleksey Bragin]])
 +
* Fixed double freeing of IRP in NtSetInformationFile ([[Michael Martin]])
 +
* Dereference the device object instead of an I/O work item ([[ReactOS Portable Systems Group]])
 +
* Have PnP handle BusRelations instead of ignoring them ([[ReactOS Portable Systems Group]])
  
 
=== KD ===
 
=== KD ===
 +
* Fix an allocation of paged pool during phase 0 ([[Stefan Ginsberg]])
  
 
=== KE ===
 
=== KE ===
 +
* Fix a problem with normal and special APCs being inserted in the wrong order, spotted by Yury Sidorov. Now Borland Turbo Debugger should be able to debug applications, also it can fix hangs in other applications ([[Aleksey Bragin]], [[Yury Sidorov]], bug #3426)
 +
* Implement KiSaveProcessorControlState, KiApcInterrupt, KiPrefetchAbortHandler, KiDispatchException ([[ReactOS Portable Systems Group]])
 +
* Rewrite low level trap/exception/system call code for ARM ([[ReactOS Portable Systems Group]])
 +
* Rewrite system call interface using a BSD model ([[ReactOS Portable Systems Group]])
 +
* Move timebase code into its own file ([[ReactOS Portable Systems Group]])
 +
* Fire off DPC when quantum has ended ([[ReactOS Portable Systems Group]])
 +
* Check if trap originated from kernel mode or user mode ([[ReactOS Portable Systems Group]])
 +
* Use KdpSerialPrint instead of arm_kprintf ([[ReactOS Portable Systems Group]])
 +
* Implement prefetch abort handler ([[ReactOS Portable Systems Group]])
 +
* Implement KeArmInstructionFaultStatusRegisterGet, KeTrapFrameToContext, KeContextToTrapFrame, KeSaveStateForHibernate, KeQueryActiveProcessors, KeSetDmaIoCoherency, KeFlushEntireTb, KeGetRecommendedSharedDataAlignment, KeDisableInterrupts, KeInvalidateAllCaches, KeIcacheFlushCount, KiUserInitializeApc ([[ReactOS Portable Systems Group]])
 +
* Call TRAP_PROLOG with 0 ([[ReactOS Portable Systems Group]])
 +
* Decrement PC count by 4 to reach previous instruction, increment by 4 to skip actual instruction during a DebugService trap ([[ReactOS Portable Systems Group]])
 +
* Enable timer expiration ([[ReactOS Portable Systems Group]])
 +
* Reorganize function stubs according to port targets ([[ReactOS Portable Systems Group]])
 +
* Implement NtSetLdrEntries, NtVdmControl ([[ReactOS Portable Systems Group]])
 +
* Enable interrupts after probing and capturing parameters during a system call ([[ReactOS Portable Systems Group]])
 +
* Enable WFI during idle loop ([[ReactOS Portable Systems Group]])
 +
* Request APC interrupt if thread context switched to has APCs pending and enabled ([[ReactOS Portable Systems Group]])
 +
* Perform DPC watchdog debugging code if a DPC lasts longer than a second ([[ReactOS Portable Systems Group]])
 +
* Optimize and simplify trap handling and system calls by using a common exit ([[ReactOS Portable Systems Group]])
 +
* PDT of CSRSS has no entry for TCB of the thread, fix this problem ([[Dmitry Gorbachev]], bug #3591)
 +
* Get rid of a confusing goto in apc.c, a remnant of some code refactoring ([[Stefan Ginsberg]])
 +
* In KiMoveApcState, fix reversal of RepairList arguments. ([[Jeffrey Morlan]], bug #1720)
 +
* Fix KeInsertQueueApc error checking ([[Jeffrey Morlan]])
 +
* Fix handle table calculations so it doesn't crash at creating 4100+ handles ([[Christoph von Wittich]])
  
 
=== MM ===
 
=== MM ===
 +
* Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile ([[Yury Sidorov]], bug #3408)
 +
* VirtualAlloc() fixes ([[Yury Sidorov]], bug #3467):
 +
** Invalid parameter error is returned if requested memory area is located above USER_SHARED_DATA address (0x7FFE0000) (WinXP compatible).
 +
** Access violation error is returned if existing memory area found on requested address and this area have uninitialized region list.
 +
* MiGetLastKernelAddress was totally broken on x86 and always returned the highest available physical page, thus the PFN database always end up at the address 0x80000000 and higher (just before the kernel). And when PFN database's size was bigger than usual (e.g. 1Gb of RAM and more), the PFN database zeroed out the kernel. This logic was introduced by 32640 commit. Fix it. ([[Aleksey Bragin]])
 +
* Implement MmDeleteVirtualMapping, MmGetPageProtect, MmRawDeleteVirtualMapping ([[ReactOS Portable Systems Group]])
 +
* Refactor ARM memory manager code in preparation for user mode support ([[ReactOS Portable Systems Group]])
 +
* Fix and refactor MmDeleteVirtualMapping to sync with x86 version more ([[ReactOS Portable Systems Group]])
 +
* Remove code designed to unmap page table entries when they are not required, reducing complexity and overhead ([[ReactOS Portable Systems Group]])
 +
* Remove code that was actually trying to calculate and keep track of LowestAddress, a mostly static value that was precalculated ([[ReactOS Portable Systems Group]])
 +
* Remove MiGetUserPageDirectoryCount from ARM MM ([[ReactOS Portable Systems Group]])
 +
* Remove redundant value keeping track of an embedded data structure in the address space ([[ReactOS Portable Systems Group]])
 +
* Remove MmInitializeKernelAddressSpace and use MmInitializeHandBuilt Process instead ([[ReactOS Portable Systems Group]])
 +
* Change kernel address space from a static structure to a pointer into the idle process' system address space, fixing an issue where the kernel address space would become associated with no processes at all ([[ReactOS Portable Systems Group]])
 +
* Remove redundant address now that address space ownership problem is fixed ([[ReactOS Portable Systems Group]])
 +
* Change lock used in address space creation back to a guarded mutex for the time being ([[ReactOS Portable Systems Group]])
 +
* Remove MADDRESS_SPACE as it is no longer needed ([[ReactOS Portable Systems Group]])
 +
* When releasing a page directly to a pending allocation request, zero it first ([[Jeffrey Morlan]], bug #3543)
  
 
=== OB ===
 
=== OB ===
 +
* Fix a bug where handles would randomly fail to be inherited ([[Jeffrey Morlan]])
  
=== PO ===
+
=== PS ===
 +
* Don't leak critical region when going through failure return branch ([[Dmitry Gorbachev]])
 +
* Prevent BSOD if ObReferenceObjectByHandle failed in NtGetContextThread and NtSetContextThread ([[Yury Sidorov]])
 +
* Fix some incorrect object dereferencing in PspSetPrimaryToken ([[Jeffrey Morlan]])
  
=== PS ===
+
== SMSS ==
 +
* Fix handle leak in SmExecPgm ([[Jeffrey Morlan]])
  
 
== Hardware Abstraction Layer (HAL) ==
 
== Hardware Abstraction Layer (HAL) ==
 +
* Implement HalQuery/SetDisplayParameters, HalQuery/ReleaseDisplayOwnership, HalDisplayString for ARM ([[ReactOS Portable Systems Group]])
  
 
== Run Time Library (RTL) ==
 
== Run Time Library (RTL) ==
 +
* Prevent crashes when heapPtr is NULL, also fix broken heap magic output ([[Aleksey Bragin]], [[Roel Messiant]])
 +
* Implement RtlCaptureContext ([[ReactOS Portable Systems Group]])
 +
* Write a DebugService routine for ARM ([[ReactOS Portable Systems Group]])
 +
* Implement DebugService2 ([[ReactOS Portable Systems Group]])
 +
* Fix export of NlsOemLeadByteInfo ([[ReactOS Portable Systems Group]])
 +
* Add backwards compatibility support for non-AVL tree routines ([[ReactOS Portable Systems Group]])
 +
* Add RtlInsertElementGenericTableAvl, RtlDeleteElementGenericTableAvl, RtlLookupElementGenericTableAvl, RtlEnumerateGenericTableWithoutSplayingAvl, RtlFreeOemString, RtlOemStringToCountedUnicodeString, RtlUnicodeStringToCountedOemString, RtlOemToUnicodeN prototypes ([[ReactOS Portable Systems Group]])
 +
* Fix generic table prototypes ([[ReactOS Portable Systems Group]])
 +
* Always call ZwRaiseException in user mode and RtlDispatchException in kernel mode. If RtlDispatchException failed call ZwRaiseException in kernel mode. Otherwise unhandled RtlRaiseException() call in kernel mode simply ignored (do nothing)! ([[Yury Sidorov]])
 +
* Call RtlRaiseStatus in RtlRaiseException, if something went wrong  ([[Yury Sidorov]])
 +
* Speed-up user mode exception handling by calling RtlDispatchException() first if there is no active user mode debugger. This avoids switches to kernel mode if exception can be handled by SEH ([[Yury Sidorov]])
 +
* Implement RtlSetUserValueHeap, RtlSetUserFlagsHeap, RtlGetUserInfoHeap functions. It is quick implementation and it works. It fixes "Out of memory" error in all InnoSetup based installations. A lot of software can be at least installed in ReactOS now. Also it fixes Delphi applications which use TMemoryStream class. ([[Yury Sidorov]])
 +
* Optimize RtlTimeFieldsToTime so it doesn't have to loop 400 times ([[Jeffrey Morlan]])
 +
* Fix handle leak in RtlCreateUserThread ([[Jeffrey Morlan]])
 +
* RtlpCreateCriticalSectionSem: use InterlockedCompareExchangePointer instead of InterlockedCompareExchange for a handle ([[Timo Kreuzer]])
  
 
== Kernel Mode Drivers ==
 
== Kernel Mode Drivers ==
Line 55: Line 167:
 
* Fix a few memory leaks ([[Cameron Gutman]])
 
* Fix a few memory leaks ([[Cameron Gutman]])
 
* Fix lock releasing issues ([[Cameron Gutman]])
 
* Fix lock releasing issues ([[Cameron Gutman]])
 +
* Don't pass a bad IRP on failure ([[Cameron Gutman]])
 +
* Also cancel the connect IRP ([[Cameron Gutman]])
 +
* Add DeviceObject checks ([[Cameron Gutman]])
 +
* Unlock MDL pages before completing ([[Cameron Gutman]])
  
 
=== TCPIP ===
 
=== TCPIP ===
 
* Fix problems in the IRP cancellation routine ([[Cameron Gutman]])
 
* Fix problems in the IRP cancellation routine ([[Cameron Gutman]])
 
* Fix a problem in which we wait on an event that isn't set ([[Cameron Gutman]])
 
* Fix a problem in which we wait on an event that isn't set ([[Cameron Gutman]])
* Don't mark the irp as pending while setting its cancel routine ([[Cameron Gutman]])
+
* Don't mark the IRP as pending while setting its cancel routine ([[Cameron Gutman]])
 +
* Remove a hack from DispTdiSendDatagram ([[Cameron Gutman]])
  
 
=== NDIS ===
 
=== NDIS ===
 
* Reenable commented out spinlocks in MiniIndicateData ([[Cameron Gutman]])
 
* Reenable commented out spinlocks in MiniIndicateData ([[Cameron Gutman]])
 
* Don't raise IRQL before calling MiniDoRequest ([[Cameron Gutman]])
 
* Don't raise IRQL before calling MiniDoRequest ([[Cameron Gutman]])
 
=== BLUE ===
 
  
 
=== BOOTVID ===
 
=== BOOTVID ===
 
+
* Fix a problem in VgaIsPresent: Content of the Address Register goes to the Data Register, and vice versa. It also writes content of the Map Select Register (which is number 4) into the Bit Mask Register (number 8) ([[Dmitry Gorbachev]], bug #2125)
=== EXT2 ===
+
* Implement VidResetDisplay for ARM ([[ReactOS Portable Systems Group]])
  
 
=== FASTFAT ===
 
=== FASTFAT ===
 
+
* Removed wrong FIXME: CcInitializeCacheMap doesn't raise exceptions. ([[Pierre Schweitzer]], bug #3315)
=== I8042PRT ===
 
  
 
=== KDCOM ===
 
=== KDCOM ===
 
+
* Separate KDCOM into i386 and ARM ([[ReactOS Portable Systems Group]])
=== NDIS ===
+
* Implement KdPortPutByteEx, KdPortInitializeEx for ARM ([[ReactOS Portable Systems Group]])
  
 
=== NTFS ===
 
=== NTFS ===
 +
* Free memory after use ([[Pierre Schweitzer]])
 +
* Some code cleanup ([[Pierre Schweitzer]])
 +
* Fixed a bug that made ROS freezing ([[Pierre Schweitzer]])
  
 
=== RAMDISK ===
 
=== RAMDISK ===
 +
* Add RAMDISK_BOOT_INITIALIZATION_FAILED bugcheck ([[ReactOS Portable Systems Group]])
 +
* Define NT RAM DISK device interface ([[ReactOS Portable Systems Group]])
 +
* Add boot support for ramdisk ([[ReactOS Portable Systems Group]])
 +
* Implement RamdiskAddDevice, RamdiskOpenClose, RamdiskPnp, RamdiskCreateRamdisk, RamdiskDeviceControl, RamdiskCreateDiskDrive, RamdiskQueryDeviceRelations, RamdiskWorkerThread, RamdiskReadWrite, RamdiskReadWriteReal, RamdiskMapPages, RamdiskUnmapPages ([[ReactOS Portable Systems Group]])
 +
* Add device state data ([[ReactOS Portable Systems Group]])
 +
* Add support for IRP_MN_SURPRISE_REMOVAL ([[ReactOS Portable Systems Group]])
 +
* Handle IRP_MN_QUERY_ID, IRP_MN_QUERY_DEVICE_TEXT/BUS_INFORMATION/CAPABILITES, IRP competion for bus and ([[ReactOS Portable Systems Group]])
 +
* Implement IRP_MN_QUERY_RESOURCES/RESOURCE_REQUIREMENTS for bus and drive ([[ReactOS Portable Systems Group]])
 +
* Separate ramdisk device extensions into bus and drive device extensions ([[ReactOS Portable Systems Group]])
 +
* Rename device types to bus and drive, not FDO and PDO ([[ReactOS Portable Systems Group]])
 +
* Implement work queue to handle requests asynchronously ([[ReactOS Portable Systems Group]])
 +
* Fill out device relation count instead of leaving it uninitialized at 2 billion ([[ReactOS Portable Systems Group]])
 +
* Create Ram disk drive device object and name based off of GUID, DOS device symbolic name, and DOS drive letter ([[ReactOS Portable Systems Group]])
 +
* Fix parameters sent to IoCreateDevice ([[ReactOS Portable Systems Group]])
 +
* Write out all IOCTLs the ramdisk emulation core needs to handle ([[ReactOS Portable Systems Group]])
 +
* Use "enable Microsoft Compiler extension" GCC flag ([[ReactOS Portable Systems Group]])
 +
* Implement IOCTL_CDROM_GET_LAST_SESSION, IOCTL_CDROM_READ_TOC ([[ReactOS Portable Systems Group]])
 +
* Implement support for both ISO and FAT ramdisks ([[ReactOS Portable Systems Group]])
 +
* Correct multiple calculation bugs in RamdiskMapPages ([[ReactOS Portable Systems Group]])
  
 
=== SCSIPORT ===
 
=== SCSIPORT ===
* Don't release the same spinlock twice on failure ([[Cameron Gutman]])
+
* Don't release the same spinlock twice on failure ([[Cameron Gutman]]) (bug #3520)
 
 
=== SERIAL ===
 
 
 
=== SERENUM ===
 
  
=== VIDEOPRT ===
+
=== VGA ===
 +
* Fix vgaddi by linking to libcntpr to resolve crt imports and include ioaccess.h to avoid hal imports ([[Timo Kreuzer]], bug #2073)
  
 
== NT System Library (NTDLL) ==
 
== NT System Library (NTDLL) ==
 +
* Initialize TLS expansion bitmap properly, it fixes accessing uninitialized memory when all regular TEB slots for TLS data are occupied ([[Aleksey Bragin]])
 +
* Add an initial breakpoint for usermode process startup, this makes usermode debuggers working ([[Yury Sidorov]], [[Aleksey Bragin]])
 +
* Remove dependency on GCC-specific extension ([[ReactOS Portable Systems Group]])
 +
* Make exports per-architecture ([[ReactOS Portable Systems Group]])
  
 
== Static Libraries ==
 
== Static Libraries ==
 +
=== CRT ===
 +
* Use "size_t" instead of "unsigned int" where appropriate in crt string functions ([[Samuel Serapión]])
 +
* Fix double linking of snprintf, _snprintf should be used in CRT ([[Aleksey Bragin]])
 +
* Implement %p for scanf ([[Peter Oberndorfer]])
 +
* Implement ___setlc_active_func/___unguarded_readlc_active_add_func ([[Jon Griffiths]])
 +
* Move atoi64 outside of MSVCRT def ([[ReactOS Portable Systems Group]])
 +
* Fix memory leak in vfwprintf ([[Jeffrey Morlan]])
 +
* In exit and _cexit, call atexit routines ([[Jeffrey Morlan]], bug #3432)
 +
 
=== TCP ===
 
=== TCP ===
 
* Release spinlock on failure path before returning ([[Cameron Gutman]])
 
* Release spinlock on failure path before returning ([[Cameron Gutman]])
  
=== NTFSLIB ===
+
=== MINGW ===
 
+
* Get explorer working again, by making wmain explicitly call the C++ initialization function __main. gcc only adds the call automatically in a function called main. ([[Jeffrey Morlan]])
=== SCRNSAVE ===
 
  
 
== Keyboard Layouts ==
 
== Keyboard Layouts ==
 +
* Add Slovak QWERTY keyboard layout (kbdsk1.dll) by ([[Mário Kačmár]], bug #3528)
 +
* Add Thai Kedmanee, Thai Pattachote, Thai Pattachote (non-shift lock) keyboard layouts (Alexey Komarov)
 +
* Add Irish, Latin American keyboard layouts ([[Dimitry Chapyshev]])
  
 
= USETUP =
 
= USETUP =
 +
* Remove all translations for the "Paged Memory", "Nonpaged Memory" and "Free Memory" progress bars.<br>This is debug stuff, which should have never been translated. As the translated strings are also sometimes longer than the english ones, they led to unnecessary problems like overlapping text. ([[Colin Finck]])
  
 
= Win32&trade; Personality =
 
= Win32&trade; Personality =
 
== User mode subsystem server (CSRSS) ==
 
== User mode subsystem server (CSRSS) ==
 +
* Miscellaneous console bugfixes ([[Jeffrey Morlan]], bug #3267)
 +
* Some fixes for console alias functions ([[Jeffrey Morlan]])
 +
* Fix console screen buffer reference-counting ([[Jeffrey Morlan]], bug #3524)
 +
* If process has no console, return STATUS_INVALID_HANDLE; don't pretend to succeed. ([[Jeffrey Morlan]])
 +
* Don't wait for a console control handler thread to terminate. ([[Jeffrey Morlan]])
 +
* Make console handles start at 3, not 7 ([[Jeffrey Morlan]])
 +
* Prevent objects from being deleted while in use ([[Jeffrey Morlan]])
 +
* Implement handle access masks and optional inheritability ([[Jeffrey Morlan]])
 +
* Implement DUPLICATE_CLOSE_SOURCE and DUPLICATE_SAME_ACCESS options ([[Jeffrey Morlan]])
 +
* Fix various bugs in console scrollbars, and make them functional ([[Jeffrey Morlan]])
  
 
== Kernel-mode subsystem server (Win32K) ==
 
== Kernel-mode subsystem server (Win32K) ==
 +
* Fix a typo in the DC_ATTR structure (mxDevicetoWorld -> mxDeviceToWorld) ([[Stefan Ginsberg]])
 +
* Check if pool allocation succeeded right after allocation, not at the end of the function, when the pointer has been used quite a few times already ([[Aleksey Bragin]])
 +
* Remove XFORM members from DCLEVEL and use MATRIX instead ([[Stefan Ginsberg]])
 +
* Fixed RestoreDC and lots of visual glitches as result. Especially in Delphi applications ([[Yury Sidorov]], bug #3491)
 +
* Rewrite path handle support and reorder path.c ([[James Tabor]])
 +
* Sync and modify Wine's PATH_WidenPath and Path_DoArcPart ([[James Tabor]])
 +
* Implement AngleArc ([[James Tabor]])
 +
* Port GraphApp draw arc fill algorithm from App crossplatform programming package ([[James Tabor]])
 +
* Fix ellipse drawing ([[James Tabor]], bug #3337)
 +
* Fix set palette issue ([[James Tabor]], bug #733)
 +
* Change drawing to CCW ([[James Tabor]])
 +
* Have arc and ellipse drawing use new fill square algorithms ([[James Tabor]])
 +
* Fix problem of selecting Start menu then mousing over and clicking another application ([[James Tabor]], bug #972)
 +
* Implement GetLastActivePopup based on Wine ([[James Tabor]])
 +
* Move WM_ACTIVATEAPP calls before WM_NC/ACTIVATE calls ([[James Tabor]])
 +
* Fix DCE to pass more tests ([[James Tabor]])
 +
* Add QUERY_WINDOW_FOCUS, QUERY_WINDOW_ACTIVE ([[James Tabor]])
 +
* Remove NtUserGetSystemMetric, NtUserGetProp, NtUserGetWindowThreadProcessId, NtUserGetShellWindow ([[James Tabor]])
 +
* Fix prototype for NtUserDragDetect and add escape key hit ([[James Tabor]])
 +
* Fix RestoreDC ([[James Tabor]])
 +
* Provide reference to previous message handle, preventing window object from becoming zero while posting send messages as it closes ([[James Tabor]], bug #3490)
 +
* Port WaitForInputIdle from Wine and improve NtUserWaitForInputIdle ([[James Tabor]])
 +
* Add checks to ensure thread is locked while waiting in co_MsqSendMessage ([[James Tabor]])
 +
* Implement NtUserMessageCall ([[James Tabor]], bug #2451)
 +
* Started implementing NtUserRegisterClassExWOW ([[James Tabor]])
 +
* Separate default Window proc from messages ([[James Tabor]])
 +
* Add WH_GETMESSAGE support ([[James Tabor]])
 +
* Fix CurrentWnd for when it has a NULL value ([[James Tabor]], 3527)
 +
* Rewrite hook implementation ([[James Tabor]])
 +
* Use SEH in NtUserCallMsgFilter ([[James Tabor]])
 +
* Add support for system commands related to hooks ([[James Tabor]])
 +
* Enable message filter hooks and add call hook support for debug hook ([[James Tabor]])
 +
* Fix show window call ([[James Tabor]])
 +
* Start implementing BroadcastSystemMessage ([[James Tabor]])
 +
* Add support for SMTO_NOTIMEOUTIFNOTHUNG ([[James Tabor]])
 +
* Fix WH_CALLWNDPROC/RET for multithreaded support ([[James Tabor]])
 +
* Fix NtUserCallMsgFilter to initiate hook call ([[James Tabor]])
 +
* Support relative callback proc with module base ([[James Tabor]])
 +
* Implement EngGetTickCount, NotifyWinEvent, SetWinEventHook, UnhookWinEvent ([[James Tabor]])
 +
* Fix bounds checking in NtGdiDoPalette and have it use a temporary kernel mode buffer ([[Jeffrey Morlan]])
 +
* Fix messed-up colors in taskbar icons in qemu 16bpp mode. BuildDIBPalette was previously assuming all 16bpp DIBs were 565. ([[Jeffrey Morlan]])
 +
* Remove dependencies on the user-mode DLL ntdll. ([[Jeffrey Morlan]])
 +
* Fix some incorrect error handling in NtGdiAlphaBlend, NtGdiBitBlt, NtGdiStretchBlt, NtGdiPolyPatBlt, NtGdi(Get|Set)BitmapDimension, and NtGdiGetDCforBitmap. ([[Jeffrey Morlan]])
 +
* Fix leak of DIBSECTION structure. ([[Jeffrey Morlan]])
 +
* Prevent overflow in IntGdiCreateBitmap, fix bug in calculating bytes per line. ([[Jeffrey Morlan]])
 +
* Fix crash in NtUserSetClipboardData with CF_TEXT format ([[Jeffrey Morlan]], bug #3536)
 +
* Fix NtUserBeginPaint update rectangle calculation so as not to be affected by anything in the non-client area ([[Jeffrey Morlan]])
 +
* Fix bug involving deleting item from submenu. ([[Jeffrey Morlan]], bug #3292)
 +
* Fix various code that attempts to dereference NULL pointers ([[Christoph von Wittich]])
 +
* DC_AllocDc: Set DC's iGraphicsMode to GM_COMPATIBLE when creating a DC ([[Timo Kreuzer]])
 +
* NtGdiRectangle: only exclude bottom/right pixels if dc is GM_COMPATIBLE ([[Timo Kreuzer]])
 +
* IntRectangle: Use coordinate transformation, if transform is not scale, call IntGdiPolygon ([[Timo Kreuzer]])
 +
* IntRectangle/IntGdiPolygon: use special locking order to avoid lockups, don't unlock objects that weren't locked ([[Timo Kreuzer]])
  
 
== Services ==
 
== Services ==
 
 
=== services ===
 
=== services ===
 
+
* Implemented ScmDeleteMarkedServices. Services can be deleted now ([[Yury Sidorov]])
=== tcpsvcs ===
 
 
 
=== umpnpmgr ===
 
  
 
== Control panel applets ==
 
== Control panel applets ==
=== Appwiz-New ===
+
=== Console ===
 
+
* If there is no process name passed in, try to obtain the console title. If that does not work either, use default of cmd.exe as a title. ([[Johannes Anderwald]], bug #3397)
=== Desk ===
 
 
 
=== Input ===
 
  
 
=== Intl ===
 
=== Intl ===
 +
* Fixed country codes (each country appears once only) ([[Matthias Kupfer]], bug #3488)
  
=== Ncpa ===
+
=== Mmsys ===
 +
* Implement Audio dialog ([[Dmitry Chapyshev]])
  
=== Usrmgr ===
+
=== Sysdm ===
 +
* Enable/disable edit field when checkbox is (de)-selected ([[Johannes Anderwald]], bug #3390)
 +
* Initialize range control ([[Johannes Anderwald]], bug #3390)
 +
* Use ES_NUMBER style for edit text ([[Johannes Anderwald]], bug #3390)
 +
* Update swedish translation ([[Andreas Bjerkeholt]])
  
=== Sysdm ===
+
=== Telephon ===
 +
* Add an empty dialog resource and implement initializing the dialog ([[Johannes Anderwald]], bug #3443)
  
 
=== Timedate ===
 
=== Timedate ===
 +
* Fixed flickering clock ([[Matthias Kupfer]])
 +
* Extended range of years in month view ([[Matthias Kupfer]])
 +
 +
=== Usrmgr ===
 +
* Implement removal of a user from a user group ([[Eric Kohl]])
 +
* Implement a simple dialog for adding a user to user groups ([[Eric Kohl]])
  
 
== Win32&trade; Applications ==
 
== Win32&trade; Applications ==
=== 3dtext ===
 
 
=== Autochk ===
 
 
=== Blankscr ===
 
 
=== Charmap ===
 
 
 
=== Cmd ===
 
=== Cmd ===
 
+
* Fix argument parsing for label command. ([[Jeffrey Morlan]], bug #3530 part 2)
=== Control ===
+
* Fix mkdir so it won't create directories with the same name as DOS devices ([[Jeffrey Morlan]])
 
+
* Improvements to ConPrintfPaging ([[Jeffrey Morlan]], bug #3530 part 1)
=== Downloader ===
 
 
 
=== Dwnl ===
 
  
 
=== Explorer ===
 
=== Explorer ===
 
+
* Fix menu leaks ([[Jeffrey Morlan]])
=== Explorer_new ===
 
 
 
=== Fontview ===
 
 
 
=== Magnify ===
 
 
 
=== Matrix ===
 
 
 
=== Mazescr ===
 
  
 
=== Msconfig ===
 
=== Msconfig ===
 +
* Check the checkboxes of the services which have the running state ([[Johannes Anderwald]], bug #1986)
 +
* Add AUTOCHECKBOX style to all 3 checkboxes on general page for all languages ([[Johannes Anderwald]], bug #1986)
 +
* Enable/disable checkboxes when normal/diagnostic startup is selected ([[Johannes Anderwald]], bug #1986)
  
 
=== Notepad ===
 
=== Notepad ===
 +
* Simplified code for WriteText which avoids infinite loops and fixes EOLN conversion. ([[Hervé Poussineau]], bug #3551)
 +
* Removed some non-understandable unicode code in WriteText ([[Pierre Schweitzer]])
 +
* Added a check to prevent crash when trying to create an empty file ([[Pierre Schweitzer]])
 +
* Fixed formatting for WriteText ([[Pierre Schweitzer]])
  
=== Regedt32 ===
+
=== Userinit ===
 
+
* Make userinit.exe exit when it's done everything. No need to wait for explorer to exit first ([[Jeffrey Morlan]])
=== Taskmgr ===
 
 
 
=== Vgafontedit ===
 
  
 
== Win32&trade; Libraries ==
 
== Win32&trade; Libraries ==
 
=== ADVAPI32 ===
 
=== ADVAPI32 ===
 +
* Check for correct access, DELETE, when deleting services ([[Michael Martin]])
 +
* Dependencies param in CreateService is a double terminated string array ([[Michael Martin]])
 +
* Fixed dependency string length to pass correct size to rpcserver ([[Michael Martin]])
 +
* Fix under-allocation in LsaQueryInformationPolicy. ([[Jeffrey Morlan]], bug #3428)
  
=== COMCTL32 ===
+
=== DNSAPI ===
 
+
* Fix heap corruptions and memory leaks ([[Art Yerkes]], [[Colin Finck]], [[Samuel Serapión]])
=== D3D9 ===
 
 
 
=== DirectX ===
 
  
 
=== GDI32 ===
 
=== GDI32 ===
 +
* Fix a typo in the DC_ATTR structure (mxDevicetoWorld -> mxDeviceToWorld) ([[Stefan Ginsberg]])
  
=== GDIPLUS ===
+
=== INETMIB1 ===
 +
* Import inetmib1 from Wine ([[Dmitry Chapyshev]])
  
=== INETMIB1 ===
+
=== MSAFD ===
 +
* Properly handle STATUS_TIMEOUT ([[Cameron Gutman]])
 +
* Don't crash if STATUS_END_OF_FILE and NULL ReturnedBytes are passed ([[Cameron Gutman]])
 +
* Handle STATUS_INVALID_CONNECTION ([[Cameron Gutman]])
  
=== KERNEL32 ===
+
=== MSGINA ===
 +
* Fix handle leaks in WlxStartApplication ([[Jeffrey Morlan]])
  
 
=== KERNEL32 ===
 
=== KERNEL32 ===
 +
* Port Wine's WideCharToMultiByte implementation for conversion to a codepage to ReactOS.<br>It adds support for DefaultChar, UsedDefaultChar and the flag WC_NO_BEST_FIT_CHARS. ([[Colin Finck]])
 +
* Added comments to the CPTABLEINFO structure based on documentation from http://www.ping.uio.no/~ovehk/nls/ ([[Colin Finck]])
 +
* Add a new check for 'MultiByteCount < 0' to WideCharToMultiByte (verified under WinXP SP2) ([[Colin Finck]])
 +
* Fixed WriteProcessMemory. With this fix applied, user mode debuggers are able to work much better - be able to write in memory, set breakpoints, etc. ([[Yury Sidorov]], [[Aleksey Bragin]], bug #3415)
 +
* Don't trim spaces at the end of a value as it might be part of the value ([[Johannes Anderwald]], bug #3437)
 +
* Remove a dependency on msvcrt, which would cause bug 3373 to reappear. ([[Jeffrey Morlan]])
 +
* Fix IntWriteConsoleInput to copy the data to the capture buffer, not the other way around ([[Jeffrey Morlan]])
 +
* Don't enter the ConsoleLock if it has already been deleted by DllMain (Dmitry Gorbachev)
  
 
=== MSVCRT ===
 
=== MSVCRT ===
 +
* Fix ordinals of msvcrt according to Windows Server 2003 SP1's msvcrt.dll ([[Colin Finck]])
 +
* Implement new versions of wctomb and wcstombs, which consider the language set by setlocale() and work according to all behaviours I could find when testing under WinXP SP2 ([[Colin Finck]])
  
=== SECUR32 ===
+
=== MSVCRT40 ===
 +
* Import msvcrt40 from Wine ([[Dmitry Chapyshev]])
  
=== SHELL32 ===
+
=== Odbccp32 ===
 +
* Add a DllMain function ([[Christoph von Wittich]], bug #3603)
 +
 
 +
=== OpenGL32 ===
 +
* Modified to make use of precompiled headers ([[Stefan Ginsberg]])
 +
 
 +
=== PSAPI ===
 +
* Make EnumDeviceDrivers and EnumProcessModules return the total size, even if the buffer is smaller. ([[Jeffrey Morlan]], bug #3319)
  
=== UEXT2 ===
+
=== SETUPAPI ===
 +
* Support of [Strings.LanguageID]-sections for INF-files added in setupapi (bug #3396) ([[Matthias Kupfer]])
 +
* Fix creation of shortcuts when using [ProfileItems] directive ([[Marc Piulachs]])
 +
* Add support for undocumented third parameter in Name entry ([[Marc Piulachs]])
  
=== UNTFS ===
+
=== SHELLEX ===
 +
* Add fontex.dll ([[Dmitry Chapyshev]])
 +
 
 +
=== SHELL32 ===
 +
* Remove duplicate properties entry in recycle bin context menu shell extension ([[Johannes Anderwald]])
 +
* Make string "empty recycle bin" translatable ([[Johannes Anderwald]])
 +
* Use "FriendlyTypeName" key for file types when available which allows translated file types ([[Johannes Anderwald]])
 +
* Display default icon in file property dialog ([[Johannes Anderwald]])
 +
* Only display filename in the title for the file property dialog ([[Johannes Anderwald]])
 +
* Don't load OpenWith shell extension on desktop, mydocuments, controlpanel, recyclebin, drive, control panel and folder items ([[Johannes Anderwald]])
 +
* Allow translation of static shell verbs such as open/edit/find/play/preview/print/runas used in context menu items ([[Johannes Anderwald]])
 +
* Implement _ILIsNetHood ([[Johannes Anderwald]])
 +
* Don't show OpenWith dialog on network neighbourhoud shell folder ([[Johannes Anderwald]])
 +
* Use translatable "open" verb for shelllink's context menu ([[Johannes Anderwald]])
 +
* Enumerate context menu handlers also in the progid key ([[Johannes Anderwald]])
 +
* Shortcut items now show again the "open" item ([[Johannes Anderwald]])
 +
* Implement IShellPropSheetExt for shellink ([[Johannes Anderwald]])
 +
* Implement IShellPropSheetExt handling for file property dialogs for standard file classes and for 3rd party extensions ([[Johannes Anderwald]])
 +
* Fix folder options dialog title ([[Johannes Anderwald]])
 +
* Implement changing drive volume name ([[Johannes Anderwald]])
 +
* Display default volume label "local disk" if there is no title ([[Johannes Anderwald]])
 +
* Implement folder property dialog ([[Johannes Anderwald]])
 +
* Register network neighbourhood as a desktop namespace extension ([[Johannes Anderwald]])
 +
* Don't display network propery dialog since it is not yet implemented ([[Johannes Anderwald]])
 +
* Fix potential buffer overflows spotted by [[Christoph von Wittich]] ([[Johannes Anderwald]])
 +
* Add check after retrieving desktop pointer ([[James Tabor]])
  
 
=== USER32 ===
 
=== USER32 ===
 
+
* Add GetConnected ([[James Tabor]])
=== WININET ===
+
* Attempt to fix problem with shared pointer, currently hides the issue ([[James Tabor]], bug #3503)
 +
* Implement CallNextHookEx ([[James Tabor]])
 +
* Setup WH_MOUSE with callbacks ([[James Tabor]])
 +
* Plug in WH_KEYBOARD callback ([[James Tabor]])
 +
* Add call window proc hooks ([[James Tabor]])
 +
* Add checks for NULL pointers to keep Wine message test from crashing ([[James Tabor]])
 +
* Add WH_FOREGROUNDIDLE hook ([[James Tabor]])
  
 
=== WS2_32 ===
 
=== WS2_32 ===
 +
* Implemented freeaddrinfo() and getaddrinfo() ([[Yury Sidorov]])
 +
* Implement bare boned getprotobyname() and getprotobynumber() ([[Yury Sidorov]])
 +
* Make winsock functions return proper error codes instead of success (will help to identify any probs with network apps) ([[Yury Sidorov]])
 +
* Do not return success in unimplemented export getaddrinfo ([[Christoph von Wittich]])
  
{{Changelog}}
+
{{Navigation Changelog}}
[[Category:ChangeLogs]]
 

Latest revision as of 14:06, 7 September 2008

This is the changelog for ReactOS™ version 0.3.6 (released 6 August, 2008), 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.3.5 (released 30 June, 2008).

General

Generic 0.3.6 Changes

Translations

  • Updated Slovak and Czech translations for calc, solitaire, winmine, shell32 and desk.cpl by Mário Kačmár (bug #3519)
  • Added/updated Spanish and basque translations for notepad, explorer, explorere-new, winlogon, access.cpl, deskadp, deskmon, slayer, shell32 and shimgvw. (Javier Remacha, bug #3376)
  • Added/updated Ukrainian translation for kbswitch and shell32 by Artem Reznikov (bug #3405).
  • Added German translation of strings in INF-files (media/inf) (bug #3396) (Matthias Kupfer)
  • Added/updated Slovak translation for shell32, newdev, eventvwr, devmgr, regedit/clb, regedit, intl.cpl, mmsys.cpl, media/inf/*.inf, calc, solitare, winemine, setup/reactos and desk.cpl by Mário Kačmár (bug #3414, #3518, #3519, #3610)
  • Update Czech translation for several win32/cpl files and calc by Radek Liska (bug #3413)
  • Update Italian translation for usetup, regedit and sehll32 by Paolo Devoti (bug #3435)
  • Update Polish translation of usrmgr by Maciej Bialas (bug #3480)
  • Update Slovak, Ukranian and Polish translations for packmgr by Mário Kačmár (bug #3601)
  • Added Norwegian translation of magnify and downloader by Lars Martin Hambro (bug #3504)
  • Updated French translation for Shell32.dll (Pierre Schweitzer)

Host Tools

Buildno

Gendib

RBuild

Rsym

  • Allow a stabs entry to be longer than 256 characters, so that ROS may be compiled with -feliminate-unused-debug-symbols which reduces the needed disk space a lot. (Jeffrey Morlan)

Core

Bootloader (FreeLoader)

  • Reduce Freeldr memory requirements: FreeLoader first reads entire ntoskrnl.exe (about 3M) into memory, then copies it to other address. Now, freeldr reads it straight to the place, not allocating extra memory for buffer (Dmitry Gorbachev, bug #3447)
  • Modify i386 and PowerPC ports in several places to use the heap to allocate temporary data (Stefan Ginsberg)
  • Add ramdisk support for non-clean architectures (ReactOS Portable Systems Group)
  • Add driver database code (ReactOS Portable Systems Group)

Kernel and Executive (NTOSKRNL)

CM

EX

  • Include a "System Idle Process" as the first item in QSI SystemProcessInformation (Aleksey Bragin)
  • Pass thread's CreateTime in QSI SystemProcessInformation (Aleksey Bragin)
  • Better implementation of QSI SystemInterruptInformation (Aleksey Bragin)
  • Remove a hack in the executive handle implementation which worked around a memory corruption bug (Stefan Ginsberg, bug #3512)
  • Correct a debug print to make sure it is Execute in Place boot (ReactOS Portable Systems Group)

FSRTL

IO

  • Save pointer to driver's section in DriverSection during driver loading (Aleksey Bragin, bug #3221)
  • Fix unloading function to check if a driver to be unloaded really has DriverSection set, and if not, fail (Aleksey Bragin, bug #3221)
  • Fix Irp flags assignment in case of an IoAllocateIrp call with ChargeQuota set to TRUE (Aleksey Bragin)
  • Fixed double freeing of IRP in NtSetInformationFile (Michael Martin)
  • Dereference the device object instead of an I/O work item (ReactOS Portable Systems Group)
  • Have PnP handle BusRelations instead of ignoring them (ReactOS Portable Systems Group)

KD

KE

MM

  • Prevent boolean flags from being optimized away by compiler (due to PSEH usage) by making them volatile (Yury Sidorov, bug #3408)
  • VirtualAlloc() fixes (Yury Sidorov, bug #3467):
    • Invalid parameter error is returned if requested memory area is located above USER_SHARED_DATA address (0x7FFE0000) (WinXP compatible).
    • Access violation error is returned if existing memory area found on requested address and this area have uninitialized region list.
  • MiGetLastKernelAddress was totally broken on x86 and always returned the highest available physical page, thus the PFN database always end up at the address 0x80000000 and higher (just before the kernel). And when PFN database's size was bigger than usual (e.g. 1Gb of RAM and more), the PFN database zeroed out the kernel. This logic was introduced by 32640 commit. Fix it. (Aleksey Bragin)
  • Implement MmDeleteVirtualMapping, MmGetPageProtect, MmRawDeleteVirtualMapping (ReactOS Portable Systems Group)
  • Refactor ARM memory manager code in preparation for user mode support (ReactOS Portable Systems Group)
  • Fix and refactor MmDeleteVirtualMapping to sync with x86 version more (ReactOS Portable Systems Group)
  • Remove code designed to unmap page table entries when they are not required, reducing complexity and overhead (ReactOS Portable Systems Group)
  • Remove code that was actually trying to calculate and keep track of LowestAddress, a mostly static value that was precalculated (ReactOS Portable Systems Group)
  • Remove MiGetUserPageDirectoryCount from ARM MM (ReactOS Portable Systems Group)
  • Remove redundant value keeping track of an embedded data structure in the address space (ReactOS Portable Systems Group)
  • Remove MmInitializeKernelAddressSpace and use MmInitializeHandBuilt Process instead (ReactOS Portable Systems Group)
  • Change kernel address space from a static structure to a pointer into the idle process' system address space, fixing an issue where the kernel address space would become associated with no processes at all (ReactOS Portable Systems Group)
  • Remove redundant address now that address space ownership problem is fixed (ReactOS Portable Systems Group)
  • Change lock used in address space creation back to a guarded mutex for the time being (ReactOS Portable Systems Group)
  • Remove MADDRESS_SPACE as it is no longer needed (ReactOS Portable Systems Group)
  • When releasing a page directly to a pending allocation request, zero it first (Jeffrey Morlan, bug #3543)

OB

  • Fix a bug where handles would randomly fail to be inherited (Jeffrey Morlan)

PS

  • Don't leak critical region when going through failure return branch (Dmitry Gorbachev)
  • Prevent BSOD if ObReferenceObjectByHandle failed in NtGetContextThread and NtSetContextThread (Yury Sidorov)
  • Fix some incorrect object dereferencing in PspSetPrimaryToken (Jeffrey Morlan)

SMSS

Hardware Abstraction Layer (HAL)

Run Time Library (RTL)

  • Prevent crashes when heapPtr is NULL, also fix broken heap magic output (Aleksey Bragin, Roel Messiant)
  • Implement RtlCaptureContext (ReactOS Portable Systems Group)
  • Write a DebugService routine for ARM (ReactOS Portable Systems Group)
  • Implement DebugService2 (ReactOS Portable Systems Group)
  • Fix export of NlsOemLeadByteInfo (ReactOS Portable Systems Group)
  • Add backwards compatibility support for non-AVL tree routines (ReactOS Portable Systems Group)
  • Add RtlInsertElementGenericTableAvl, RtlDeleteElementGenericTableAvl, RtlLookupElementGenericTableAvl, RtlEnumerateGenericTableWithoutSplayingAvl, RtlFreeOemString, RtlOemStringToCountedUnicodeString, RtlUnicodeStringToCountedOemString, RtlOemToUnicodeN prototypes (ReactOS Portable Systems Group)
  • Fix generic table prototypes (ReactOS Portable Systems Group)
  • Always call ZwRaiseException in user mode and RtlDispatchException in kernel mode. If RtlDispatchException failed call ZwRaiseException in kernel mode. Otherwise unhandled RtlRaiseException() call in kernel mode simply ignored (do nothing)! (Yury Sidorov)
  • Call RtlRaiseStatus in RtlRaiseException, if something went wrong (Yury Sidorov)
  • Speed-up user mode exception handling by calling RtlDispatchException() first if there is no active user mode debugger. This avoids switches to kernel mode if exception can be handled by SEH (Yury Sidorov)
  • Implement RtlSetUserValueHeap, RtlSetUserFlagsHeap, RtlGetUserInfoHeap functions. It is quick implementation and it works. It fixes "Out of memory" error in all InnoSetup based installations. A lot of software can be at least installed in ReactOS now. Also it fixes Delphi applications which use TMemoryStream class. (Yury Sidorov)
  • Optimize RtlTimeFieldsToTime so it doesn't have to loop 400 times (Jeffrey Morlan)
  • Fix handle leak in RtlCreateUserThread (Jeffrey Morlan)
  • RtlpCreateCriticalSectionSem: use InterlockedCompareExchangePointer instead of InterlockedCompareExchange for a handle (Timo Kreuzer)

Kernel Mode Drivers

AFD

TCPIP

NDIS

BOOTVID

  • Fix a problem in VgaIsPresent: Content of the Address Register goes to the Data Register, and vice versa. It also writes content of the Map Select Register (which is number 4) into the Bit Mask Register (number 8) (Dmitry Gorbachev, bug #2125)
  • Implement VidResetDisplay for ARM (ReactOS Portable Systems Group)

FASTFAT

  • Removed wrong FIXME: CcInitializeCacheMap doesn't raise exceptions. (Pierre Schweitzer, bug #3315)

KDCOM

NTFS

RAMDISK

SCSIPORT

  • Don't release the same spinlock twice on failure (Cameron Gutman) (bug #3520)

VGA

  • Fix vgaddi by linking to libcntpr to resolve crt imports and include ioaccess.h to avoid hal imports (Timo Kreuzer, bug #2073)

NT System Library (NTDLL)

Static Libraries

CRT

TCP

MINGW

  • Get explorer working again, by making wmain explicitly call the C++ initialization function __main. gcc only adds the call automatically in a function called main. (Jeffrey Morlan)

Keyboard Layouts

  • Add Slovak QWERTY keyboard layout (kbdsk1.dll) by (Mário Kačmár, bug #3528)
  • Add Thai Kedmanee, Thai Pattachote, Thai Pattachote (non-shift lock) keyboard layouts (Alexey Komarov)
  • Add Irish, Latin American keyboard layouts (Dimitry Chapyshev)

USETUP

  • Remove all translations for the "Paged Memory", "Nonpaged Memory" and "Free Memory" progress bars.
    This is debug stuff, which should have never been translated. As the translated strings are also sometimes longer than the english ones, they led to unnecessary problems like overlapping text. (Colin Finck)

Win32™ Personality

User mode subsystem server (CSRSS)

  • Miscellaneous console bugfixes (Jeffrey Morlan, bug #3267)
  • Some fixes for console alias functions (Jeffrey Morlan)
  • Fix console screen buffer reference-counting (Jeffrey Morlan, bug #3524)
  • If process has no console, return STATUS_INVALID_HANDLE; don't pretend to succeed. (Jeffrey Morlan)
  • Don't wait for a console control handler thread to terminate. (Jeffrey Morlan)
  • Make console handles start at 3, not 7 (Jeffrey Morlan)
  • Prevent objects from being deleted while in use (Jeffrey Morlan)
  • Implement handle access masks and optional inheritability (Jeffrey Morlan)
  • Implement DUPLICATE_CLOSE_SOURCE and DUPLICATE_SAME_ACCESS options (Jeffrey Morlan)
  • Fix various bugs in console scrollbars, and make them functional (Jeffrey Morlan)

Kernel-mode subsystem server (Win32K)

  • Fix a typo in the DC_ATTR structure (mxDevicetoWorld -> mxDeviceToWorld) (Stefan Ginsberg)
  • Check if pool allocation succeeded right after allocation, not at the end of the function, when the pointer has been used quite a few times already (Aleksey Bragin)
  • Remove XFORM members from DCLEVEL and use MATRIX instead (Stefan Ginsberg)
  • Fixed RestoreDC and lots of visual glitches as result. Especially in Delphi applications (Yury Sidorov, bug #3491)
  • Rewrite path handle support and reorder path.c (James Tabor)
  • Sync and modify Wine's PATH_WidenPath and Path_DoArcPart (James Tabor)
  • Implement AngleArc (James Tabor)
  • Port GraphApp draw arc fill algorithm from App crossplatform programming package (James Tabor)
  • Fix ellipse drawing (James Tabor, bug #3337)
  • Fix set palette issue (James Tabor, bug #733)
  • Change drawing to CCW (James Tabor)
  • Have arc and ellipse drawing use new fill square algorithms (James Tabor)
  • Fix problem of selecting Start menu then mousing over and clicking another application (James Tabor, bug #972)
  • Implement GetLastActivePopup based on Wine (James Tabor)
  • Move WM_ACTIVATEAPP calls before WM_NC/ACTIVATE calls (James Tabor)
  • Fix DCE to pass more tests (James Tabor)
  • Add QUERY_WINDOW_FOCUS, QUERY_WINDOW_ACTIVE (James Tabor)
  • Remove NtUserGetSystemMetric, NtUserGetProp, NtUserGetWindowThreadProcessId, NtUserGetShellWindow (James Tabor)
  • Fix prototype for NtUserDragDetect and add escape key hit (James Tabor)
  • Fix RestoreDC (James Tabor)
  • Provide reference to previous message handle, preventing window object from becoming zero while posting send messages as it closes (James Tabor, bug #3490)
  • Port WaitForInputIdle from Wine and improve NtUserWaitForInputIdle (James Tabor)
  • Add checks to ensure thread is locked while waiting in co_MsqSendMessage (James Tabor)
  • Implement NtUserMessageCall (James Tabor, bug #2451)
  • Started implementing NtUserRegisterClassExWOW (James Tabor)
  • Separate default Window proc from messages (James Tabor)
  • Add WH_GETMESSAGE support (James Tabor)
  • Fix CurrentWnd for when it has a NULL value (James Tabor, 3527)
  • Rewrite hook implementation (James Tabor)
  • Use SEH in NtUserCallMsgFilter (James Tabor)
  • Add support for system commands related to hooks (James Tabor)
  • Enable message filter hooks and add call hook support for debug hook (James Tabor)
  • Fix show window call (James Tabor)
  • Start implementing BroadcastSystemMessage (James Tabor)
  • Add support for SMTO_NOTIMEOUTIFNOTHUNG (James Tabor)
  • Fix WH_CALLWNDPROC/RET for multithreaded support (James Tabor)
  • Fix NtUserCallMsgFilter to initiate hook call (James Tabor)
  • Support relative callback proc with module base (James Tabor)
  • Implement EngGetTickCount, NotifyWinEvent, SetWinEventHook, UnhookWinEvent (James Tabor)
  • Fix bounds checking in NtGdiDoPalette and have it use a temporary kernel mode buffer (Jeffrey Morlan)
  • Fix messed-up colors in taskbar icons in qemu 16bpp mode. BuildDIBPalette was previously assuming all 16bpp DIBs were 565. (Jeffrey Morlan)
  • Remove dependencies on the user-mode DLL ntdll. (Jeffrey Morlan)
  • Fix some incorrect error handling in NtGdiAlphaBlend, NtGdiBitBlt, NtGdiStretchBlt, NtGdiPolyPatBlt, NtGdi(Get|Set)BitmapDimension, and NtGdiGetDCforBitmap. (Jeffrey Morlan)
  • Fix leak of DIBSECTION structure. (Jeffrey Morlan)
  • Prevent overflow in IntGdiCreateBitmap, fix bug in calculating bytes per line. (Jeffrey Morlan)
  • Fix crash in NtUserSetClipboardData with CF_TEXT format (Jeffrey Morlan, bug #3536)
  • Fix NtUserBeginPaint update rectangle calculation so as not to be affected by anything in the non-client area (Jeffrey Morlan)
  • Fix bug involving deleting item from submenu. (Jeffrey Morlan, bug #3292)
  • Fix various code that attempts to dereference NULL pointers (Christoph von Wittich)
  • DC_AllocDc: Set DC's iGraphicsMode to GM_COMPATIBLE when creating a DC (Timo Kreuzer)
  • NtGdiRectangle: only exclude bottom/right pixels if dc is GM_COMPATIBLE (Timo Kreuzer)
  • IntRectangle: Use coordinate transformation, if transform is not scale, call IntGdiPolygon (Timo Kreuzer)
  • IntRectangle/IntGdiPolygon: use special locking order to avoid lockups, don't unlock objects that weren't locked (Timo Kreuzer)

Services

services

  • Implemented ScmDeleteMarkedServices. Services can be deleted now (Yury Sidorov)

Control panel applets

Console

  • If there is no process name passed in, try to obtain the console title. If that does not work either, use default of cmd.exe as a title. (Johannes Anderwald, bug #3397)

Intl

  • Fixed country codes (each country appears once only) (Matthias Kupfer, bug #3488)

Mmsys

Sysdm

Telephon

  • Add an empty dialog resource and implement initializing the dialog (Johannes Anderwald, bug #3443)

Timedate

Usrmgr

  • Implement removal of a user from a user group (Eric Kohl)
  • Implement a simple dialog for adding a user to user groups (Eric Kohl)

Win32™ Applications

Cmd

  • Fix argument parsing for label command. (Jeffrey Morlan, bug #3530 part 2)
  • Fix mkdir so it won't create directories with the same name as DOS devices (Jeffrey Morlan)
  • Improvements to ConPrintfPaging (Jeffrey Morlan, bug #3530 part 1)

Explorer

Msconfig

  • Check the checkboxes of the services which have the running state (Johannes Anderwald, bug #1986)
  • Add AUTOCHECKBOX style to all 3 checkboxes on general page for all languages (Johannes Anderwald, bug #1986)
  • Enable/disable checkboxes when normal/diagnostic startup is selected (Johannes Anderwald, bug #1986)

Notepad

Userinit

  • Make userinit.exe exit when it's done everything. No need to wait for explorer to exit first (Jeffrey Morlan)

Win32™ Libraries

ADVAPI32

  • Check for correct access, DELETE, when deleting services (Michael Martin)
  • Dependencies param in CreateService is a double terminated string array (Michael Martin)
  • Fixed dependency string length to pass correct size to rpcserver (Michael Martin)
  • Fix under-allocation in LsaQueryInformationPolicy. (Jeffrey Morlan, bug #3428)

DNSAPI

GDI32

  • Fix a typo in the DC_ATTR structure (mxDevicetoWorld -> mxDeviceToWorld) (Stefan Ginsberg)

INETMIB1

MSAFD

MSGINA

KERNEL32

  • Port Wine's WideCharToMultiByte implementation for conversion to a codepage to ReactOS.
    It adds support for DefaultChar, UsedDefaultChar and the flag WC_NO_BEST_FIT_CHARS. (Colin Finck)
  • Added comments to the CPTABLEINFO structure based on documentation from http://www.ping.uio.no/~ovehk/nls/ (Colin Finck)
  • Add a new check for 'MultiByteCount < 0' to WideCharToMultiByte (verified under WinXP SP2) (Colin Finck)
  • Fixed WriteProcessMemory. With this fix applied, user mode debuggers are able to work much better - be able to write in memory, set breakpoints, etc. (Yury Sidorov, Aleksey Bragin, bug #3415)
  • Don't trim spaces at the end of a value as it might be part of the value (Johannes Anderwald, bug #3437)
  • Remove a dependency on msvcrt, which would cause bug 3373 to reappear. (Jeffrey Morlan)
  • Fix IntWriteConsoleInput to copy the data to the capture buffer, not the other way around (Jeffrey Morlan)
  • Don't enter the ConsoleLock if it has already been deleted by DllMain (Dmitry Gorbachev)

MSVCRT

  • Fix ordinals of msvcrt according to Windows Server 2003 SP1's msvcrt.dll (Colin Finck)
  • Implement new versions of wctomb and wcstombs, which consider the language set by setlocale() and work according to all behaviours I could find when testing under WinXP SP2 (Colin Finck)

MSVCRT40

Odbccp32

OpenGL32

PSAPI

  • Make EnumDeviceDrivers and EnumProcessModules return the total size, even if the buffer is smaller. (Jeffrey Morlan, bug #3319)

SETUPAPI

  • Support of [Strings.LanguageID]-sections for INF-files added in setupapi (bug #3396) (Matthias Kupfer)
  • Fix creation of shortcuts when using [ProfileItems] directive (Marc Piulachs)
  • Add support for undocumented third parameter in Name entry (Marc Piulachs)

SHELLEX

SHELL32

USER32

WS2_32

  • Implemented freeaddrinfo() and getaddrinfo() (Yury Sidorov)
  • Implement bare boned getprotobyname() and getprotobynumber() (Yury Sidorov)
  • Make winsock functions return proper error codes instead of success (will help to identify any probs with network apps) (Yury Sidorov)
  • Do not return success in unimplemented export getaddrinfo (Christoph von Wittich)
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