Difference between revisions of "ChangeLog-0.3.3"

From ReactOS Wiki
Jump to: navigation, search
m (DDRAW)
m (DDRAW)
Line 235: Line 235:
 
* Fix CreateDirectDraw crash ([[Magnus Olsen]])
 
* Fix CreateDirectDraw crash ([[Magnus Olsen]])
 
* Finish Main_DirectDraw_CreateSurface4 and Main_DirectDraw_CreateSurface ([[Magnus Olsen]])
 
* Finish Main_DirectDraw_CreateSurface4 and Main_DirectDraw_CreateSurface ([[Magnus Olsen]])
* Implement Main_DirectDraw_Compact with the same behaviour as MS DirectDraw_Compact.<br>According to MSDN, it is unimplemented and always returns DD_OK, but in fact it can return DDERR_NOEXCLUSIVEMODE when we have a exclusive mode set. ([[Magnus Olsen]])
+
* Implement Main_DirectDraw_Compact with the same behaviour as MS DirectDraw_Compact.<br>According to MSDN, it is unimplemented and always returns DD_OK, but in fact it can return DDERR_NOEXCLUSIVEMODE when we have an exclusive mode set. ([[Magnus Olsen]])
 
* Add SEH around many DDraw functions, this prevents some crashes ([[Magnus Olsen]])
 
* Add SEH around many DDraw functions, this prevents some crashes ([[Magnus Olsen]])
 
* Fix GetAvailableVidMem ([[Magnus Olsen]])
 
* Fix GetAvailableVidMem ([[Magnus Olsen]])

Revision as of 15:18, 21 July 2007

This is a work in progress.

IMPORTANT: When adding a change, write a REAL NAME of the person, not his irc or whatever nicks. This is an official paper. Also, reference bug numbers at the end of the change, in braces, like (your name, bug #2373). If this is not a bug, but a patch, reference it with (your name, ticket #2373) or something like that.



This is the changelog for ReactOS™ version 0.3.3 (released whenever), 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.1 (released 10 March, 2007).

General

Generic 0.3.3 Changes

  • Source tree restructure and cleanup (Alex Ionescu, Aleksey Bragin)
  • Update DejaVu font to 2.18 (Magnus Olsen)
  • Switch to DejaVu font in all cases, Cmd is now using DejaVu font as well, the GUI already uses it (Magnus Olsen)
  • Import usp10 from Wine, CVS revision 1.8 (Magnus Olsen)
  • Add a test case for a few APIs of the Win32k DirectX support, like NtGdiDdCreateDirectDrawObject, NtGdiDdDeleteDirectDrawObject, NtGdiDdQueryDirectDrawObject. The test case is not 100% correct because of different faults, so you need to check by hand why it failed in some cases. The test case works on every Windows that supports DirectX8 or higher, or ReactOS 0.2.9 or higher (Magnus Olsen)
  • Change ObpDosDevicesShortName to match the ob.h header prototype (Magnus Olsen)
  • Many header compatibility fixes between our DDK and MS DDK version 3790.1830 (Magnus Olsen)
  • Update FreeType to 2.3.4 (Magnus Olsen)
  • Create a folder called DXSDK, which contains headers that work similar as MS DXSDK 2004 December (Magnus Olsen)
  • Various compilation fixes for MSVC for different modules (Magnus Olsen)

RBUILD

  • Add option to macro to specify for which backend this macro is intended (Johannes Anderwald)
  • Add support for .ocx files (Ged Murphy)
  • Add OPTIMIZE configuration setting to config.rbuild/config.template.rbuild (-O, -Os, -O1, -O2, -O3) (Magnus Olsen)

Translations

  • Added some more LANG and SUBLANG definitions to the "winnt.h" header file (Colin Finck)
  • Changed the rules for the SUBLANG entries in translations (new rules can be found here), so the existing translations apply to more locales now (Colin Finck, Daniel Reimer, Magnus Olsen)
  • Added German Translations for charmap, console, msgina, serialui, win32csr (Daniel Reimer)
  • Commited Translations from Bugzilla (#2349, #2350, #2351, #2352, #2353, #2355) (Daniel Reimer) thx to (Kario) and (Smiley)
  • Added Brazilian Portuguese Translations for Control, Expand, Hdwwiz, Mmsys, ntvdm, "reactos.exe" (Setup tool under Windows), Regsvr32, Rundll32, Taskmgr, Userinit, Welcome (Wagner Leandro Bueno Angelo, bugs #2373, #2385)
  • Fixed spelling errors for Dutch translations in Explorer, Setup and Welcome. Added Dutch translation for Wordpad. (Joost de Meij, bug #2296)
  • Fixed spelling and grammar for Dutch translations in desk.cpl and intl.cpl. New Dutch translations for main.cpl (keyboard and mouse) and powercfg.cpl. (Joost de Meij, bug #2300)
  • Added, updated a few translations for polish, lithuanian, french, german, bulgarian, spanish (Johannes Anderwald)
  • Updated the Italian translation of Syssetup (Paolo Devoti, bug #2391)
  • Added/updated french translations for Calc, Cacls, Charmap, Desk, Explorer, Explorer-new, Fontview, Imagesoft, Intl_new, Matrix, Mmc, Msconfig, Regedit, Shutdown, Sndvol32, Solitaire, Syssetup, Taskmgr, Vmwinst, WineMine, Winhelp, WordPad (Pierre Schweitzer, bugs #1969, #2001, #2051, #2054, #2085, #2120, #2209, #2275, #2282, #2297, #2370, #2377, #2390, #2399, #2425, #2427)
  • Improved translations support for Calc, Solitaire, Syssetup (Pierre Schweitzer, bugs #2054, #2247, #2275, #2400)
  • Added Ukrainian translations for Cacls, Charmap, Mmc, Msconfig. Improved Ukrainian translations support for Comdlg32, Explorer, Console, Devmgr, Regedit, Solitaire, Userenv, Win32csr (Artem Reznikov, bug #2411)
  • Added Slovak translation for Calc (Mario Kacmar, bug #2405)
  • Polish translation team translated (or fixed/updated translations of) base applications that were present in 0.3.1, setup subsystem, cmd shell, some system utilities like format, cpl applets, win32 dll's related rc's and some other minor translations (Artek Wisniewski, Olaf Siejka, Lech Groblewicz, Konrad Chmielecki, bugs #2181, #2194)

Core

Kernel and Executive(NTOSKRNL)

  • "Fix" RtlQueryRegistryValues() usage (Alex Ionescu, Aleksey Bragin)
  • Mandatory address PCR via FS register in certain cases (Aleksey Bragin, Dmitry Gorbachev).
  • Fix wrong access-rights when referencing the object, fixes NtEnumerateKey() API (Aleksey Bragin).
  • KiRosFrldrLpbToNtLpb(): Round up to the correct size in pages (Aleksey Bragin).
  • Change "FreeLDR BIAS hack" to a better one: measure sizes of all 3 codepages, and place them contiguously (Aleksey Bragin).
  • Clear DPC request when delivering DPCs from the idle loop (Alex Ionescu).
  • Fix (and optimize) KeRemoveByKeyDeviceQueue() routine (Aleksey Bragin).
  • Fix freeing of an unallocated memory bug (Aleksey Bragin).
  • Correctly fill FullDllName for modules loaded by the bootloader. Don't load a module with the same name more than once (Aleksey Bragin).
  • If the module failed to load (e.g. fixup couldn't be done), then don't include it in the list of loaded modules (Aleksey Bragin).
  • Fix a bug with querying registry values (Herve Poussineau).
  • Fix a problem when a device, which was already in the list is freed and memory corruption is introduced (Aleksey Bragin).
  • Massive changes to the driver loading / device creation logic: Really reuse the driver's object (Aleksey Bragin).
  • Fix driver's object creation accordingly in NtLoadDriver() and IopActionInitChildServices() (Aleksey Bragin).
  • VMWare video driver regression is gone (Aleksey Bragin).
  • "New device found" wizard appears in the 3rd stage (Aleksey Bragin).
  • Move InvalidateRelations to a later stage, when it really should happen (Aleksey Bragin).
  • Minor bugfixes in various places related to these changes (Aleksey Bragin).
  • Remove a hack from IopCreateDriver(), no boot hang happens in VMWare without it anymore (Aleksey Bragin).
  • Give "RAW" filesystem driver a name (Aleksey Bragin).
  • Added a small piece of a new logic into IopCreateDriver(). In ReactOS it's being called two times almost immediately, which results in a non-unique driver object name, since KeTickCount is the same. In order to prevent this situation a loop is added, having 100 iterations as max (Aleksey Bragin).
  • Correctly set DN_DRIVER_LOADED flag (Aleksey Bragin).
  • Fix symbols loading due to an improved PE mapping (Aleksey Bragin).
  • Fix incorrect usage of sprintf in the kernel (Aleksey Bragin).
  • Rewrite KdbSymProcessBootSymbols() with respect to recent kernel changes (Aleksey Bragin).
  • Change KdbSymInit() to match standard kd-wrapper init function (Aleksey Bragin).
  • Always use PsLoadedModuleList as a list of modules (Aleksey Bragin).
  • Load kernel and hal symbols during BootPhase 1 initialization of this KD wrapper (Aleksey Bragin).
  • Commit a fix for KDBG's attach to process problem (Aleksey Bragin and an author of issue #1263).
  • Start turning KDBG into a KD wrapper, and thus removing KDBG-specific hacks in various places of the kernel (Aleksey Bragin).
  • KdbSymInit() became a general initialization routine (Aleksey Bragin).
  • KdpEnterDebuggerException() improvement related to KDBG support (Aleksey Bragin).

Hardware Abstraction Layer (HAL)

  • Reimplement HalpAssignPCISlotResources() based on the old implementation (Aleksey Bragin)

Run Time Library (RTL)

Kernel Mode Drivers

  • Fix HalGetInterruptVector()'s usage of level vs. vector (Aleksey Bragin).
  • Fix incorrect usage of DevicePropertyAddress in videoprt and ndis, so that ndis.sys+pcnet.sys load [again] in Windows XP (Aleksey Bragin).

Storage Stack

PCI

  • Fix incompatibility: In Windows IoGetDeviceProperty(DevicePropertyAddress) returns information as 0xDDDDFFFF (D=Device, F=Function) and not as a PCI_SLOT_NUMBER structure. This is confirmed by tests in Windows XP and 2003, and also found via Google (Aleksey Bragin).

i8042prt

  • Ignore incorrect responses to ACK and just retry sending data until either ACK is read, or max number of iterations is reached. This fixes the keyboard/mouse detection problems when running ReactOS inside VMWare (Aleksey Bragin)

Network stack

  • NDIS: Fix a multiplication error, which lead to a garbage DueTime being passed to KeSetTimerEx() (Aleksey Bragin)
  • AFD: Fix a race condition resulting in a BSOD when running FireFox (Aleksey Bragin)

NT System Library (NTDLL)

  • Implemented strtoull (msvcrt.dll & ntdll.dll, most generally in libcntpr) (Pierre Schweitzer, bug #2314)

Services

Services.exe

  • Move calls to SetServiceStatus into service.exe (Ged Murphy)

tcpsvcs

  • rewrote the service handler and parts of the main control thread, fixes starting / stopping (Ged Murphy)

Win32™ Personality

User mode subsystem server (CSRSS)

  • Fix a bug where a lock was not released in win32csr (Johannes Anderwald)
  • Fix user32, gdi32 and dnsapi's base addresses so that no relocations occur during system bootup (Aleksey Bragin)

Kernel-mode subsystem server (Win32K)

  • dont double free memory (Johannes Anderwald)
  • remove MenuItem from MenuItemList on request (Johannes Anderwald)
  • Fix return call of GetObject under certain conditions (Ged Murphy)
  • Implement SPI_GET/SETMINIMIZEDMETRICS and SPI_SETNONCLIENTMETRICS in IntSystemParametersInfo (Timo Kreuzer, bug 1668)
  • NtUserBuildHwndList: non-recursive implementation, also processing child windows (Timo Kreuzer)
  • IntSetSysColors: update SysColor brushes and pens and broadcast WM_SYCOLORCHANGE (Timo Kreuzer)
  • NtGdiMoveToEx: copy old cursor pos back to caller instead of copying from caller (Timo Kreuzer)
  • NtGdiGetObjectW: fail if buffer != 0 and count == 0, don't write beyond buffer size (Timo Kreuzer)
  • NtGdiGetObjectW: use SEH only once (Timo Kreuzer)
  • Implement EXTPEN support (Timo Kreuzer)
  • NtGdiGetObjectW: add support for EXTPEN and PALETTE, fix BITMAP and BRUSH (Timo Kreuzer)
  • IntGdiAddFontResource: Add the filename to the font entry (Timo Kreuzer)
  • Partly implement NtGdiGetFontResourceInfoInternalW (Timo Kreuzer)
  • Handle FW_DONTCARE in GetFontScore (Timo Kreuzer)
  • NtGdiPaintRgn: fix a region leak, unlock a bitmap (Timo Kreuzer)
  • IntGetNCUpdateRegion: fix region leak (Timo Kreuzer)
  • co_UserRedrawWindow: Don't use a region after it was deleted (Timo Kreuzer)
  • Fix broken IntValidateParent function (Timo Kreuzer)
  • co_WinPosSetWindowPos: Validate parent windows if a region is bitcopied (Timo Kreuzer)
  • co_WinPosSetWindowPos: fix window drawing (Timo Kreuzer, bugs #902, #735)
  • Set default screensaver timeout to 10 minutes (Aleksey Bragin)
  • Bug fixes for NtGdiDdCreateDirectDrawObject, NtGdiDdCanCreateSurface, NtGdiDdGetScanLine and NtGdiDdWaitForVerticalBlank for various minor bugs, so that they work similar to the Windows NT4/2000/XP/2003 functions in most cases (Magnus Olsen)
  • Bug fixes for NtGdiDdCreateSurface, it can create one surface now, but it contains many bugs (Magnus Olsen)
  • Rewrite NtGdiDdBlt, it can now operate on a surface, but it might contain bugs (Magnus Olsen)
  • Revert revision 21677, this change is not needed, I confirm VMware's own graphics driver does not release the DX interface in windows XP/2003 or higher.
    I removed this, so the VMware driver gets a DX interface, this enables Windows XP graphics driver again. Unfortunately, there are no DX hardware accelerations from VMware any longer. (Magnus Olsen)
  • Remove a Windows 95/98/Me behaviour in NtGdiDdQueryDirectDrawObject, also tested under Windows 2000 to see if this behaviour really existed or not.
    puvmList and puNumHeaps should be ignored by Windows NT when they are passed down. After I fix the last part, this API is 99.9% compatible with Windows 2000 and higher. (Magnus Olsen)

Control panel applets

desk.cpl

intl.cpl

  • Add working Numbers, Currency, Time, Date tabs. Fix some bugs. (Alexey Zavyalov, issue #1988).

odbccp32.cpl

sysdm.cpl

  • Make the Device Manager open both devmgmt.exe in ROS and devmgmt.msc in Windows (Ged Murphy)

timedate.cpl

Win32™ Applications

Cmd

Device Manager

  • make entry points unicode compliant and fix linkage (Ged Murphy)

Downloader

  • Slightly modified the XML file to fix grammar and spelling problems and update the FreeBASIC link to Version 0.17b (Nathan Davidson, bug #2358)

Explorer

  • check for application existance on some apps before adding them to the start menu (Ged Murphy)
  • remove old apps like winefile and add new ones like devmgmt and servman (Ged Murphy)

Fontview

HTML Help

  • wrote a basic exe to call into hhctrl.ocx (Ged Murphy)

Service Manager

  • make entry points unicode compliant and fix linkage (Ged Murphy)

Shutdown

  • Rewrote the shutdown utility to make it work, and more compatible with the syntax of Windows' shutdown utility (Frode Lillerud, bug #2379)
  • Added localization support and a version resource to the Shutdown utility (Colin Finck)

Tracert

  • partially rewrote tracert to make it more modular (Ged Murphy)

Userinit

  • Load system metrics, fonts and colors from registry (Timo Kreuzer)

Winhelp

Win32™ Libraries

ADVAPI32

  • Export LsaEnumerateTrustedDomains to get dameware loading (Ged Murphy)
  • Ensure SetLastError is called when EnumServicesStatusEx is returning required buffer sizes (Ged Murphy)

CLUSAPI

COMCTL32

  • Fix setting focus in Property sheet (Timo Kreuzer)
  • Remove a call to TREEVIEW_Update() which causes an infinite loop on ReactOS (Aleksey Bragin)

CRYPTNET

DDRAW

  • Adapt Wine's SetCooperativeLevel to ReactOS DDraw and fix a crash, so SetCooperativeLevel passes one test. Many more tests need to be done, I also took DDRAWI_DIRECTDRAW_LCL->dwObsolete1 as device windows. Memory leaks might exist. (Magnus Olsen)
  • Start reimplementing CreateSurface and start implementing Main_DirectDraw_CreateSurface. We now need to finish internal_CreateSurface and CopyDDSurfDescToDDSurfDesc2 (Magnus Olsen)
  • Bugfix: The linking interface was used, when we did not require a linking interface and the other way round. (Magnus Olsen)
  • Bugfix: Clean up the linking interface code, so it gets simplier (like reusing the same DX handler and other stuff) (Magnus Olsen)
  • Bugfix: Make GetFourCCCodes thread-safe (Magnus Olsen)
  • Maarten Bosma noticed that I did take the wrong structure at the allocation, I also commented up the code a bit. Fixed by (Magnus Olsen)
  • Add a hack, so we only create one DirectDraw interface (Magnus Olsen)
  • Fix a memory crash bug in GetFourCCCodes (Magnus Olsen)
  • Comment out GetFOURCC data from DDHALINFO, it produces some strange crash. (Magnus Olsen)
  • Fix CreateDirectDraw crash (Magnus Olsen)
  • Finish Main_DirectDraw_CreateSurface4 and Main_DirectDraw_CreateSurface (Magnus Olsen)
  • Implement Main_DirectDraw_Compact with the same behaviour as MS DirectDraw_Compact.
    According to MSDN, it is unimplemented and always returns DD_OK, but in fact it can return DDERR_NOEXCLUSIVEMODE when we have an exclusive mode set. (Magnus Olsen)
  • Add SEH around many DDraw functions, this prevents some crashes (Magnus Olsen)
  • Fix GetAvailableVidMem (Magnus Olsen)
  • Change HeapAlloc to malloc and some weird problems are gone (Magnus Olsen)
  • Fix smaller bugs in the cleanup, so it frees memory we allocated (Magnus Olsen)
  • Bugfix: When malloc fails, gcc generated code will crash. This fix will prevent DDraw Alloc crash. (Magnus Olsen)
  • Clean up debug messages (Magnus Olsen)
  • Bug fix: Wrong size of memory was allocated in startup.c (Magnus Olsen)
  • Clean up Create_DirectDraw, thanks to Thomas Weidenmueller (Magnus Olsen)
  • Bugfix in the GetFreq* code (Magnus Olsen)
  • Bugfix: If we have two or more DirectDraw objects, we always choose the latest hDD not the object's own hDD
    Use This->lpLcl->lpGbl->hDD = This->lpLcl->hDD; to set the object's own hDD before calling any dxhal API (Magnus Olsen)
  • Rename Main_DirectDraw_GetAvailableVidMem to Main_DirectDraw_GetAvailableVidMem4 (Magnus Olsen)
  • Fixing smaller bugs in Main_DirectDraw_GetAvailableVidMem4, works completely similar now to MS version of this API (Magnus Olsen)
  • Implement Main_DirectDraw_GetAvailableVidMem for directdraw2 and directdraw3 (Magnus Olsen)
  • Commit which API are under development and hard tested. Mark which one have been completed and act like the ones from MS DDraw. (Magnus Olsen)
  • Commit GetDeviceIdentifier and GetDeviceIdentifier7 (Magnus Olsen)
  • Start and almost finish GetDeviceIdentifier implementation (Magnus Olsen)
  • Rewrite SetCooperativeLevel, it starts working similar to Windows' DDraw. (Magnus Olsen)
  • Fixing some bugs in startup.c, check for DDHALINFO_GETDRIVERINFOSET before using DdGetDriverInfo (Magnus Olsen)
  • Fixing some bugs in startup.c, add a FIXME for fixing CreateSurfaceEx, GetDriverState and DestroyDDLocal callbacks for HAL.(Magnus Olsen)
  • Make ddraw.dll a little more msvs frendly (Magnus Olsen)
  • Fixing smaller bugs in startup.c, it does not set a window handler or use the window handler's hdc, it creates an own hdc (Magnus Olsen)
  • Fixing right behaviour for SetCooperativeLevel with normal flag set in window mode. Fixing gpl.dwflag being set right. (Magnus Olsen)
  • Adding table lockups for DirectDraw 1-6, but they are not complete (Magnus Olsen)
  • Remove out GetDeviceIdentifier (Magnus Olsen)
  • Fixed DirectDrawCreate, this function works now (Magnus Olsen)
  • Found out a bit more how DirectDraw_QueryInterface works and comment the new investigations (Magnus Olsen)
  • Add the new table to QueryInterface, they are partly supported now, the new IIDs are IID_IDirectDraw4, IID_IDirectDraw2 and IID_IDirectDraw. (Magnus Olsen)
  • Rewrite a little part of Create_DirectDraw and add a "reenable" option. (Magnus Olsen)

GDI32

  • Partly implement GetFontResourceInfoW, remove GetFontResourceInfo stub (Timo Kreuzer)
  • GetObject: add missing object types, fix SetLastError usage (Timo Kreuzer)
  • add support for ETO_GLYPH_INDEX in ExtTextOut (Sebastian Gasiorek, bug #975)
  • GetNonFontObject: fix SetLastError usage (Timo Kreuzer)
  • Bugfix for DdQueryDirectDrawObject, it did not fill in some information (Magnus Olsen)
  • Bugfix for DdQueryDirectDrawObject aka gdientry2, it did not clear some values, wrong behaviours as well (Magnus Olsen)
  • Bugfix for DdCreateSurface, it can now create one surface. The code is tested under Windows, in my syscall demo for win32k. We do not support the creation of more than one surface at the moment. Multi surface creation will be added later (Magnus Olsen)

HHCTRL.OCX

  • added dll from Wine, small changes to get it building on ROS (Ged Murphy)

KBDFR

  • Partially rewrote french keyboard layout (kbdfr.dll) in order to have correct accents display (currently broken due of a regression, bug #2230) (Pierre Schweitzer, bug #1919)

KBDPL1

KERNEL32

SYSSETUP

  • Don't create the GetFirefox shortcut anymore as GetFirefox has been removed (Colin Finck)
  • Fix some calls to CreateShortcut which was preventing some apps from appearing in the start menu (Ged Murphy)
  • Added checks for admin password during 2nd stage setup (Pierre Schweitzer, bug #2247)
  • 2nd stage setup is now in the closest local language to keyboard layout (Sylvain Petreolle, Pierre Schweitzer)

USER32

  • Implement support for SPI_SETNONCLIENTMETRICS, SPI_GET/SETMINIMIZEDMETRICS in SystemParametersInfoA (Timo Kreuzer, bug #1668)
  • Add undocumented behavior of LoadStringW: return pointer to string if buffer size == 0 (Timo Kreuzer)
  • Don't remove keyboard focus from any other window than the one that was disabled (Timo Kreuzer)
  • EnumChildWindows: call EnumWindows if hWndParent == NULL, else process children (Timo Kreuzer)
  • CreateIconFromResource: pass LR_DEFAULTSIZE|LR_SHARED flags to CreateIconFromResourceEx (Timo Kreuzer)

WTSAPI32

SETUP

  • Fix a question about formatting appearing 2 times (Colin Finck, issue #1964).

Template:Changelog