Difference between revisions of "ChangeLog-0.3.13"

From ReactOS Wiki
Jump to: navigation, search
(update changelog to rebranch from r51036)
Line 168: Line 168:
  
 
== BASE ==
 
== BASE ==
 +
 
=== APPLICATIONS ===
 
=== APPLICATIONS ===
 +
* Change all C function prototype declarations with an empty argument list to use void, or the list specified in the function definition. ([[Roel Messiant]])
 +
* According to the C language specification, such a declaration means "no information about the number or types of the parameters is supplied". ([[Roel Messiant]])
 +
* This can expose cases where gcc allows us to pass an excessive amount of arguments to functions in certain cases. ([[Roel Messiant]])
 +
* Thanks to Thomas Faber for informing us about this. ([[Roel Messiant]])
 +
 +
==== CALC ====
 +
* Initialize next field. Fixes CID 11063 ([[Timo Kreuzer]])
 +
 +
==== CHARMAP ====
 +
* Make the text copy field a richedit control. (Carlo; {{bug|5275}})
 +
* Use WM_CHAR to copy the characters (Carlo; {{bug|5275}})
 +
* Fix definition of MSFTEDIT_CLASS for the resource compiler (Carlo; {{bug|5275}})
 +
 +
===== DOSKEY =====
 +
 
==== CMDUTILS ====
 
==== CMDUTILS ====
* Fix compilation with msvc by GetProcAddress'ing undocumented functions, TCHAR -> WCHAR in the process ([[Jérôme Gardou]])
+
* Fix compilation with msvc by GetProcAddress'ing undocumented functions ([[Jérôme Gardou]])
 +
* TCHAR -> WCHAR in the process ([[Jérôme Gardou]])
 +
* Anti Oracle Movement has begun. Adding go-oo and LibreOffice to rapps. ([[Daniel Reimer]])
  
 
===== XCOPY =====
 
===== XCOPY =====
 +
* Fix compilation with msvc ([[Jérôme Gardou]])
 +
* 1. Someone should send this to wine (this is NOT lazyness) ([[Jérôme Gardou]])
 +
* 2. Someone should tell mingw dev about http://msdn.microsoft.com/en-us/library/aa381050%28v=VS.85%29.aspx ([[Jérôme Gardou]])
 
* Spanish translation by JasonGenie at gmail dot com ([[Amine Khaldi]]; {{bug|5889}})
 
* Spanish translation by JasonGenie at gmail dot com ([[Amine Khaldi]]; {{bug|5889}})
 
* Add stubs for all page heap API functions. ([[Aleksey Bragin]])
 
* Add stubs for all page heap API functions. ([[Aleksey Bragin]])
Line 180: Line 201:
 
==== FINDSTR ====
 
==== FINDSTR ====
 
* Port findstr (incomplete, as author of this patch states, it may satisfy RosBE, .c .h and .rc files) from FreeDOS project. Needed for RosBE-on-ReactOS support. ([[Aleksey Bragin]]; {{bug|5724}})
 
* Port findstr (incomplete, as author of this patch states, it may satisfy RosBE, .c .h and .rc files) from FreeDOS project. Needed for RosBE-on-ReactOS support. ([[Aleksey Bragin]]; {{bug|5724}})
 +
 +
===== SOLITAIRE =====
 +
 +
==== GAMES ====
 +
* do not include already included file in rc files ([[Jérôme Gardou]])
 +
* add missing close for handle ([[Matthias Kupfer]])
 +
* one more fix (on request of Pierre S.) ([[Matthias Kupfer]])
 +
 +
==== MPLAY32 ====
 +
* Hackfix playback ([[Johannes Anderwald]]; {{bug|5867}})
 +
 +
===== EVENTVWR =====
 +
 +
==== MSCUTILS ====
 +
* Fix handling of NULL lpComputerName. (Rafal; {{bug|5926}})
 +
* Handle lpData conversion to a wide string and make sure it's NULL terminated. (Rafal; {{bug|5926}})
 +
 +
===== FTP =====
  
 
==== NETWORK ====
 
==== NETWORK ====
 +
* FTP has been a really, really naughty app.. Fix up function prototypes and definitions after () -> (void) change. ([[Roel Messiant]])
 +
* Fixes build.. if I'm lucky. ([[Roel Messiant]])
 +
 +
===== NSLOOKUP =====
 
* Use memcpy with sizeof instead of strncpy with strlen to make sure the destination string will be zero terminated. ([[Timo Kreuzer]])
 
* Use memcpy with sizeof instead of strncpy with strlen to make sure the destination string will be zero terminated. ([[Timo Kreuzer]])
 
* CID 1649 ([[Timo Kreuzer]])
 
* CID 1649 ([[Timo Kreuzer]])
  
 
===== PING =====
 
===== PING =====
 +
* Add localization support to ping.  (; {{bug|5500}})
 
* Implement small helper MyLoadString, using FindResource, LoadResource, LockResource and replacing LoadString, so we don't need to link to user32 anymore. ([[Timo Kreuzer]])
 
* Implement small helper MyLoadString, using FindResource, LoadResource, LockResource and replacing LoadString, so we don't need to link to user32 anymore. ([[Timo Kreuzer]])
 +
* Add German translation. ([[Timo Kreuzer]])
 +
* Polish translation of ping.  (Olaf)
 +
* Italian translation of ping.  (Vincenzo)
 +
* French translation patch from myself aka Pierre Schweitzer, with deepest love, and so on... ([[Pierre Schweitzer]])
 
* Fix typos ;) ([[Johannes Anderwald]])
 
* Fix typos ;) ([[Johannes Anderwald]])
 
* Fix MyLoadString.  (menone7)
 
* Fix MyLoadString.  (menone7)
 +
* Add Ukrainian translation by Eugene Sakara. ([[Aleksey Bragin]])
 +
 +
==== NOTEPAD ====
 +
* By me: use StringCchCat instead of _tcscat to prevent possible buffer overruns. (EDIJS; {{bug|5871}})
 +
* Edijs: Zero initialize the caption string. ([[Aleksey Bragin]]; {{bug|5992}})
 +
 +
==== PAINT ====
 +
* apply  (Black_Fox; {{bug|5434}})
 +
* fix minor bugs introduced by it (Black_Fox; {{bug|5434}})
 +
* generalize changes related to mirroring rectangular selections to free form selections (Black_Fox; {{bug|5434}})
 +
* solve problem regarding selection contents update (Black_Fox; {{bug|5434}})
 +
 +
==== RAPPS ====
 +
* Igor Paliychuk: ([[Amine Khaldi]])
 +
* Update some broken links. ([[Amine Khaldi]])
 +
* Changed the cyrillic "P" to a latin "P" in the beginning of the VBox driver's russian and ukrainian descriptions (rapps doesn't display it when it's cyrillic). ([[Amine Khaldi]])
 +
* French translation by Jason Toscano <JasonGenie at gmail dot com> ([[Pierre Schweitzer]]; {{bug|5993}})
 +
* Corrections/adjustements by me ([[Pierre Schweitzer]]; {{bug|5993}})
 +
* Fix french translation file encoding ([[Pierre Schweitzer]])
 +
* Fix a bug while testing Rapps under Windows. If you had an application with no registered DisplayName installed, Rapps used to consider every application with no RegName in its database (= currently all Rapps applications) installed. Therefore the list of available applications has always been empty. ([[Colin Finck]])
 +
* Now an application is always added to the ListView if no RegName is set for it. ([[Colin Finck]])
 +
* Rafal Harabien (rafalh1992@o2.pl) ([[Colin Finck]]; {{bug|5999}})
 +
* Fix links and descriptions in the Rapps database, also update some application versions ([[Colin Finck]]; {{bug|5999}})
 +
* I took the last patch in the bug report and applied the changes to remood.txt manually (due to mixed encoding within the same file). ([[Colin Finck]]; {{bug|5999}})
 +
* 0.3.13, here we go (again) ([[Colin Finck]])
  
 
==== REGEDIT ====
 
==== REGEDIT ====
 +
* Katayama Hirofumi: Unicodify regedit, add support for import/export of v5 reg files. Based on Wine regedit. ([[Aleksey Bragin]])
 +
* REGE ([[Aleksey Bragin]]; {{bug|5547}})
 +
* Katayama Hirofumi: Don't leak open handles to keys. ([[Aleksey Bragin]]; {{bug|5547}})
 +
* Katayama Hirofumi: Misc code changes/ cleanup. ([[Aleksey Bragin]]; {{bug|5547}})
 
* Fix a bug causing registry entries with names containing a backslash to be displayed incorrectly ([[Cameron Gutman]])
 
* Fix a bug causing registry entries with names containing a backslash to be displayed incorrectly ([[Cameron Gutman]])
 +
* Merge ScmControlService() and ScmSendStartCommand() into ScmSendServiceCommand(). ([[Eric Kohl]])
 
* Adam Kachwalla <geekdundee@gmail.com> ([[Aleksey Bragin]]; {{bug|5711}})
 
* Adam Kachwalla <geekdundee@gmail.com> ([[Aleksey Bragin]]; {{bug|5711}})
** Make address bar case-insensitive
+
* Load Hive..." and "Unload Hive..." menu items implemented ([[Aleksey Bragin]]; {{bug|5711}})
** Remove trailing slashes in address bar when at root keys (e.g. "HKEY_LOCAL_MACHINE\" or "HKEY_CURRENT_USER\")
+
* Make address bar case-insensitive ([[Aleksey Bragin]]; {{bug|5711}})
 +
* Remove trailing slashes in address bar when at root keys (e.g. "HKEY_LOCAL_MACHINE\" or "HKEY_CURRENT_USER\") ([[Aleksey Bragin]]; {{bug|5711}})
 +
* Address "go" button added ([[Aleksey Bragin]]; {{bug|5711}})
 +
* Removed ~8px slack from bottom of the app (not needed and looks better) ([[Aleksey Bragin]]; {{bug|5711}})
 +
* Factored out error displaying functions into error.c file. ([[Aleksey Bragin]]; {{bug|5711}})
 +
* Adam Kachwalla: Fix inconsistent formatting. ([[Aleksey Bragin]]; {{bug|5716}})
 +
* Me: to anyone who's gonna try syncing the code with Wine's regedit: Have fun! ([[Aleksey Bragin]]; {{bug|5716}})
 +
 
 +
==== TASKMGR ====
 +
* Fix Russian translation, by spb-ivan92. ([[Aleksey Bragin]]; {{bug|5685}})
 +
* Rafal Harabien: Add support for DELETE key to processes and applications list in taskmgr. ([[Aleksey Bragin]]; {{bug|5646}})
  
 
=== SERVICES ===
 
=== SERVICES ===
Line 203: Line 291:
 
* RControlService: Check if a control request is acceptable for a user mode service before sending it to the service. ([[Eric Kohl]])
 
* RControlService: Check if a control request is acceptable for a user mode service before sending it to the service. ([[Eric Kohl]])
 
* RControlService: Check the current state before sending a control request. ([[Eric Kohl]])
 
* RControlService: Check the current state before sending a control request. ([[Eric Kohl]])
* Merge ScmControlService() and ScmSendStartCommand() into ScmSendServiceCommand(). ([[Eric Kohl]])
 
 
* Revert r49366. ([[Eric Kohl]])
 
* Revert r49366. ([[Eric Kohl]])
 
* Fix a typo (|| instead of |). Found by clang. ([[Timo Kreuzer]])
 
* Fix a typo (|| instead of |). Found by clang. ([[Timo Kreuzer]])
 +
* Protect the service start and sending of control packages by critical sections. This way, services will be started one by one and control packages will also be sent one by one. ([[Eric Kohl]])
 +
* Please test if this fixes bug #5924. ([[Eric Kohl]])
 +
* Protect whole contents of ScmStartService() with a critical section instead of just a few parts of ScmStartUserModeService(). Seems to fix the comment #8 issue of bug #5924. ([[Aleksey Bragin]])
 +
* Use one instead of two critical sections to synchronize service start and control actions. ([[Eric Kohl]])
 +
* Fail, if an already running service is started again. ([[Eric Kohl]])
 +
* Leave the critical section when the allocation of the control packet fails. ([[Eric Kohl]])
 +
* Bug spotted by hzlilx. ([[Eric Kohl]])
  
 
==== EVENTLOG ====
 
==== EVENTLOG ====
Line 216: Line 310:
  
 
==== USETUP ====
 
==== USETUP ====
* fix GeoID bug (forgotten \0) ([[Matthias Kupfer]])
 
* add missing close for handle ([[Matthias Kupfer]])
 
* one more fix (on request of Pierre S.) ([[Matthias Kupfer]])
 
  
 
=== SETUP ===
 
=== SETUP ===
 +
* Update Ukrainian translation by Igor Paliychuk. ([[Amine Khaldi]]; {{bug|5536}})
 
* 5540 5604 5614 5617 for more details. ([[Amine Khaldi]]; {{bug|5536}})
 
* 5540 5604 5614 5617 for more details. ([[Amine Khaldi]]; {{bug|5536}})
 +
* Update Estonian translation by anthrax11. ([[Amine Khaldi]]; {{bug|5625}})
 
* Fix a really mean bug: wcslen() returns the size in characters whereas MaximumLength has to be in bytes. ([[Pierre Schweitzer]])
 
* Fix a really mean bug: wcslen() returns the size in characters whereas MaximumLength has to be in bytes. ([[Pierre Schweitzer]])
 
* Now, this sets MaximumLength to its appropriate size and prevents some memory issues (and buffers having odd size, which is weird for an unicode string...). ([[Pierre Schweitzer]])
 
* Now, this sets MaximumLength to its appropriate size and prevents some memory issues (and buffers having odd size, which is weird for an unicode string...). ([[Pierre Schweitzer]])
 +
* Get rid of indirection ([[Johannes Anderwald]]; {{bug|5190}})
 +
* Fix a buffer overflow (overread) when adding a locale key to the registry. The history of this bug is funny: ([[Aleksey Bragin]]; {{bug|5810}})
 +
* 1. Eric wrote the code, which sets a key of REG_SZ type, as 4 widechars plus terminating zero, but passes 8 as the bytesize of the buffer. It's not fully correct (a terminating zero is absent from the bytesize of the buffer, but MSDN doesn't specify if it should be added or not, and hardcoding "8" is not the best idea too) but not dramatic. That was revision 9596, 7 years ago. ([[Aleksey Bragin]]; {{bug|5810}})
 +
* 2. Lentin notices something is not right in this code, and decides to "fix" it by multiplying that same hardcoded value by.... guess what? sizeof(PWCHAR)! That is, size of a pointer, which on an x86 would be 4 bytes. Massive out of bounds access obviously happens. That was revision 31642, 3 years ago. ([[Aleksey Bragin]]; {{bug|5810}})
 +
* 3. Very soon Colin reshuffles and improves the code based on patch #2635, however the problem still goes unnoticed (r31655+). ([[Aleksey Bragin]]; {{bug|5810}})
  
 
==== CMD ====
 
==== CMD ====
Line 234: Line 332:
 
* Track the only Global Hook ReactOS has. ([[James Tabor]])
 
* Track the only Global Hook ReactOS has. ([[James Tabor]])
 
* Revert last change. ([[James Tabor]])
 
* Revert last change. ([[James Tabor]])
 +
* Fix some visual problems in the toolbar ([[Giannis Adamopoulos]])
 +
* Fix array access out of bounds. ([[Pierre Schweitzer]]; {{bug|5990}})
 +
* Make fix of r51022 compiler independant, on Johannes' suggestion. ([[Pierre Schweitzer]])
  
 
==== EXPLORER-NEW ====
 
==== EXPLORER-NEW ====
 
* Fix another "sizeof" usage mistake ([[Cameron Gutman]])
 
* Fix another "sizeof" usage mistake ([[Cameron Gutman]])
 
* CID 1631 ([[Cameron Gutman]])
 
* CID 1631 ([[Cameron Gutman]])
 +
* Allow displaying seconds in tray upon registry setting (Edijs)
  
 
=== SYSTEM ===
 
=== SYSTEM ===
 +
 +
==== RUNONCE ====
 +
* Fixed a typo in french translation ([[Pierre Schweitzer]])
  
 
==== SMSS ====
 
==== SMSS ====
Line 246: Line 351:
 
==== WINLOGON ====
 
==== WINLOGON ====
 
* Add msg constants (by smiley) ([[Johannes Anderwald]])
 
* Add msg constants (by smiley) ([[Johannes Anderwald]])
 +
* Implement receiving notifications from win32k to play sounds of MessageBeep ([[Giannis Adamopoulos]])
 +
* Remove a documented definition from undocuser.h ([[Giannis Adamopoulos]])
 +
* Fix a typo. ([[Amine Khaldi]])
  
 
== BOOT ==
 
== BOOT ==
Line 294: Line 402:
 
* Delete a duplicate line. ([[Dmitry Gorbachev]])
 
* Delete a duplicate line. ([[Dmitry Gorbachev]])
 
* compile headless support only for x86 ([[Timo Kreuzer]])
 
* compile headless support only for x86 ([[Timo Kreuzer]])
 +
* Fix broken release version ([[Timo Kreuzer]])
 +
* Reduce difference with the cmake branch, mostly msvc and amd64 fixes. ([[Amine Khaldi]])
 
* merge most spec file changes from cmake branch ([[Timo Kreuzer]])
 
* merge most spec file changes from cmake branch ([[Timo Kreuzer]])
 
* add stub files to build ([[Timo Kreuzer]])
 
* add stub files to build ([[Timo Kreuzer]])
 
* Add missing stubs.h ([[Timo Kreuzer]])
 
* Add missing stubs.h ([[Timo Kreuzer]])
 +
* try to fix build ([[Timo Kreuzer]])
  
 
==== FREELDR ====
 
==== FREELDR ====
Line 310: Line 421:
  
 
===== CACHE =====
 
===== CACHE =====
* Cache manager rewrite: ([[Art Yerkes]])
+
* The cache manager rewrite I started years ago has finally appeared in ([[Art Yerkes]])
** The cache manager rewrite I started years ago has finally appeared in ReactOS' trunk and although at this point it's not quite perfectly integrated, it's enough to boot up the bootcd or livecd. To check out the more mature original, check out arty-newcc-reactos, branch arty-newcc on bitbucket.org. Amine Khaldi encouraged me quite a bit to not give up on it, and was able to reach out and be an advocate when i really wasn't able to.  Others agree that the time has come to begin removing the old cache manager. I expect the remaining problems in the version going to trunk will be taken care of relatively quickly.
+
* ReactOS' trunk and although at this point it's not quite perfectly ([[Art Yerkes]])
** The motivation for this effort lies in the particularly hairy relationship between ReactOS' cache manager and data sections. This code completely removes page sharing between cache manager and section and reimagines cache manager as being a facility layered on the memory manager, not really caring about individual pages, but simply managing data section objects where caching might occur.
+
* integrated, it's enough to boot up the bootcd or livecd. To check out ([[Art Yerkes]])
** It took me about 2 years to do the first pass of this rewrite and most of this year to fix some lingering issues, properly implement demand paging in ReactOS (code which didn't come with this patch in a recognizable form), and finish getting the PrivateCacheMap and SharedCacheMap relationship correct.
+
* the more mature original, check out arty-newcc-reactos, branch ([[Art Yerkes]])
** Currently, the new ntoskrnl/cache directory contains an own implementation of data file sections. After things have settled down, we can begin to deprecate and remove the parts of ReactOS' section implementation that depend on a close relationship with cache manager. Eventually, I think that the extra code added to ntoskrnl/cache/section will be removed and ReactOS' own sections will replace the use of the special MM_CACHE_SECTION_SEGMENT in the cache path.
+
* arty-newcc on bitbucket.org . Amine Khaldi encouraged me quite a bit ([[Art Yerkes]])
** Note also, that this makes all cache manager (and new section parts) use wide file offsets. If my section code were to take over other parts of the ReactOS memory manager, they would also benefit from these improvements.
+
* to not give up on it, and was able to reach out and be an advocate ([[Art Yerkes]])
** I invite anyone who wants to to peek at this code and fix whatever bugs can be found.
+
* when i really wasn't able to.  Others agree that the time has come to ([[Art Yerkes]])
* Part 1 of fixes: ([[Art Yerkes]])
+
* begin removing the old cache manager. I expect the remaining problems ([[Art Yerkes]])
** For some reason beyond me, I had abbreviated MiCowSectionPage to always assume CoW rather than always not CoW for cache sections.
+
* in the version going to trunk will be taken care of relatively ([[Art Yerkes]])
** Make sure we're looking for cache type sections rather than as we were in the branch) data file sections. More needed.
+
* quickly. ([[Art Yerkes]])
* Make sure to initialize our page operation mutex. ([[Art Yerkes]])
+
* The motivation for this effort lies in the particularly hairy ([[Art Yerkes]])
* Scan the whole range of the MemoryArea for pages to evict. ([[Art Yerkes]])
+
* relationship between ReactOS' cache manager and data sections. This ([[Art Yerkes]])
* This fixes cache section page eviction. ([[Art Yerkes]])
+
* code completely removes page sharing between cache manager and section ([[Art Yerkes]])
 +
* and reimagines cache manager as being a facility layered on the memory ([[Art Yerkes]])
 +
* manager, not really caring about individual pages, but simply managing ([[Art Yerkes]])
 +
* data section objects where caching might occur. ([[Art Yerkes]])
 +
* It took me about 2 years to do the first pass of this rewrite and most ([[Art Yerkes]])
 +
* of this year to fix some lingering issues, properly implement demand ([[Art Yerkes]])
 +
* paging in ReactOS (code which didn't come with this patch in a ([[Art Yerkes]])
 +
* recognizable form), and finish getting the PrivateCacheMap and ([[Art Yerkes]])
 +
* SharedCacheMap relationship correct. ([[Art Yerkes]])
 +
* Currently, the new ntoskrnl/cache directory contains an own ([[Art Yerkes]])
 +
* implementation of data file sections. After things have settled down, ([[Art Yerkes]])
 +
* we can begin to deprecate and remove the parts of ReactOS' section ([[Art Yerkes]])
 +
* implementation that depend on a close relationship with cache ([[Art Yerkes]])
 +
* manager. Eventually, I think that the extra code added to ([[Art Yerkes]])
 +
* ntoskrnl/cache/section will be removed and ReactOS' own sections will ([[Art Yerkes]])
 +
* replace the use of the special MM_CACHE_SECTION_SEGMENT in the cache ([[Art Yerkes]])
 +
* path. ([[Art Yerkes]])
 +
* Note also, that this makes all cache manager (and new section parts) ([[Art Yerkes]])
 +
* use wide file offsets. If my section code were to take over other ([[Art Yerkes]])
 +
* parts of the ReactOS memory manager, they would also benefit from ([[Art Yerkes]])
 +
* these improvements. ([[Art Yerkes]])
 +
* I invite anyone who wants to to peek at this code and fix whatever ([[Art Yerkes]])
 +
* bugs can be found. ([[Art Yerkes]])
 +
* KSUSER, KS, SYSAUDIO] ([[Johannes Anderwald]])
 +
* Make pin / node / allocator create requests compatible to ms by removing obsolete slash before object class ([[Johannes Anderwald]])
 +
* Return correct error code in ksuser's KsCreatePin ([[Johannes Anderwald]])
 +
* ReactOS KS is now able to create audio pins in Windows XP, though playback is not yet working ([[Johannes Anderwald]])
 +
* All changes except ksuser change has been verified to work with VBox 3.2.10 ([[Johannes Anderwald]])
 +
* KS user changes not tested yet as KSStudio not working in trunk ([[Johannes Anderwald]])
  
 
===== DISK =====
 
===== DISK =====
Line 347: Line 486:
 
* Plus added useful asserts (used to catch r50615 bug!) ([[Pierre Schweitzer]])
 
* Plus added useful asserts (used to catch r50615 bug!) ([[Pierre Schweitzer]])
 
* Merge changes to rtl from cmake branch. Mostly use portable interlocked functions ([[Timo Kreuzer]])
 
* Merge changes to rtl from cmake branch. Mostly use portable interlocked functions ([[Timo Kreuzer]])
 +
* Merge MSVC fixes from cmake branch ([[Timo Kreuzer]])
 
* Move page heap related code to heappage.c. ([[Aleksey Bragin]])
 
* Move page heap related code to heappage.c. ([[Aleksey Bragin]])
 +
* Fixed RtlMultiByteToUnicodeN & RtlAnsiCharToUnicodeChar prototype ([[Pierre Schweitzer]])
 +
* Added missing paged code marker to RtlAnsiCharToUnicodeChar ([[Pierre Schweitzer]])
 +
* Added a small hack to RtlAnsiCharToUnicodeChar. Indeed, when it's called during second stage, it's failing due to missing NLS table. ([[Pierre Schweitzer]])
 +
* Probably usetup that doesn't define a registry entry. And then, FreeLdr just passes null pointer. ([[Pierre Schweitzer]])
 +
* Silence this dprint. It's flooding the debug log. ([[Amine Khaldi]])
 +
* Fix compilation when NDEBUG is not defined ([[Jérôme Gardou]])
 +
* Revert 47615. Please fix actual sysreg instead of adding inconsistency between 1st, 2nd and 3rd stages debugging connections. This should fix sysreg3's inability to do backtraces. ([[Aleksey Bragin]]; {{bug|5811}})
  
 
===== SRC =====
 
===== SRC =====
Line 359: Line 506:
 
=== 3RDPARTY ===
 
=== 3RDPARTY ===
 
* Add missing breaks.  (Samuel)
 
* Add missing breaks.  (Samuel)
 +
 +
=== CPL ===
 +
 +
==== CONSOLE ====
 +
* French translation by Jason Toscano <JasonGenie@gmail.com> ([[Pierre Schweitzer]])
 +
* Corrections/adjustements by me ([[Pierre Schweitzer]])
 +
 +
==== TIMEDATE ====
 +
* Fix French translation. ([[Sylvain Petreolle]])
 +
 +
==== USRMGR ====
 +
* French translation by Jason Toscano <JasonGenie at gmail dot com> ([[Pierre Schweitzer]]; {{bug|5921}})
 +
* Corrections/adjustements by me ([[Pierre Schweitzer]]; {{bug|5921}})
 +
* Fix build ([[Pierre Schweitzer]])
 +
* Blame rbuild ~ ([[Pierre Schweitzer]])
  
 
=== DIRECTX ===
 
=== DIRECTX ===
 +
 +
==== DDRAW ====
 
* Jerome Gardou: Almost all of the ddraw->refcount winetests pass. One remains, due to the fact that IdirectDrawSurface::SetPalette is unimplemented. IDirectDraw::Createpalette is implemented too, but needs testing. There are no parameter checks. ([[Aleksey Bragin]]; {{bug|4909}})
 
* Jerome Gardou: Almost all of the ddraw->refcount winetests pass. One remains, due to the fact that IdirectDrawSurface::SetPalette is unimplemented. IDirectDraw::Createpalette is implemented too, but needs testing. There are no parameter checks. ([[Aleksey Bragin]]; {{bug|4909}})
 
* Comments from me: The patch is not build-tested, however I did my best to merge it to existing ddraw and I prefer the actual code to be in the repository rather than hanging in bugzilla for years (last comment to the patch is dated 29.10.2009). ([[Aleksey Bragin]]; {{bug|4909}})
 
* Comments from me: The patch is not build-tested, however I did my best to merge it to existing ddraw and I prefer the actual code to be in the repository rather than hanging in bugzilla for years (last comment to the patch is dated 29.10.2009). ([[Aleksey Bragin]]; {{bug|4909}})
Line 390: Line 554:
 
* Make LdrQueryImageFileExecutionOptions avoid heap usage when possible (and when it's not possible, fail with out of memory status). ([[Aleksey Bragin]])
 
* Make LdrQueryImageFileExecutionOptions avoid heap usage when possible (and when it's not possible, fail with out of memory status). ([[Aleksey Bragin]])
 
* Fixes a dramatic count of ~100 failures in "kernel32_winetest heap". ([[Aleksey Bragin]])
 
* Fixes a dramatic count of ~100 failures in "kernel32_winetest heap". ([[Aleksey Bragin]])
 +
* Fixed build ([[Pierre Schweitzer]])
 
* Don't access unitialized memory. Caught thanks to a new heap manager, and this fixes all weird actctx exceptions in kernel32_winetest heap. ([[Aleksey Bragin]])
 
* Don't access unitialized memory. Caught thanks to a new heap manager, and this fixes all weird actctx exceptions in kernel32_winetest heap. ([[Aleksey Bragin]])
 +
* Fix amd64 build. ([[Kamil Hornicek]])
 +
* Attempt nr. 2: link wined3d to crt on amd64 build. ([[Kamil Hornicek]])
 
* Fix LdrVerifyImageMatchesChecksum() prototype. ([[Aleksey Bragin]])
 
* Fix LdrVerifyImageMatchesChecksum() prototype. ([[Aleksey Bragin]])
 
* Move RtlPcToFileHeader to rtl/libsupp.c ([[Timo Kreuzer]])
 
* Move RtlPcToFileHeader to rtl/libsupp.c ([[Timo Kreuzer]])
 
* Raise harderror and terminate process when the image is of a foreign architecture. ([[Timo Kreuzer]])
 
* Raise harderror and terminate process when the image is of a foreign architecture. ([[Timo Kreuzer]])
 
* Fix harderror status on machine type mismatch and pass file name. ([[Timo Kreuzer]])
 
* Fix harderror status on machine type mismatch and pass file name. ([[Timo Kreuzer]])
 +
 +
=== WIN32 ===
 +
* Rafal Harabien: ([[Giannis Adamopoulos]]; {{bug|5580}})
 +
* Always call IntKeyboardInput and co_MsqPostKeyboardMessage while holding the user lock ([[Giannis Adamopoulos]]; {{bug|5580}})
 +
* Simplify cleaning up sent messages ([[Giannis Adamopoulos]]; {{bug|5580}})
  
 
==== ADVAPI32 ====
 
==== ADVAPI32 ====
 
=== WIN32 ===
 
 
* Roel Messiant: Properly handle STATUS_BUFFER_TOO_SMALL in RegEnumValueW implementation. ([[Aleksey Bragin]]; {{bug|2492}})
 
* Roel Messiant: Properly handle STATUS_BUFFER_TOO_SMALL in RegEnumValueW implementation. ([[Aleksey Bragin]]; {{bug|2492}})
 
* Katayama Hirofumi: Use DataLength field in RegEnumValueW instead of DataOffset. ([[Aleksey Bragin]]; {{bug|2492}})
 
* Katayama Hirofumi: Use DataLength field in RegEnumValueW instead of DataOffset. ([[Aleksey Bragin]]; {{bug|2492}})
Line 405: Line 575:
 
* Implement LsaAddPrivilegesToAccount(), LsaCreateTrustedDomain(), LsaDeleteTrustedDomain() and LsaOpenTrustedDomainByName(). ([[Eric Kohl]])
 
* Implement LsaAddPrivilegesToAccount(), LsaCreateTrustedDomain(), LsaDeleteTrustedDomain() and LsaOpenTrustedDomainByName(). ([[Eric Kohl]])
 
* Move the Encrypted File System (EFS) functions into their own file. ([[Eric Kohl]])
 
* Move the Encrypted File System (EFS) functions into their own file. ([[Eric Kohl]])
 +
* Sync the out of sync winemine to Wine 1.3.5 and fork it, because of the modified look, improved resources and different code structure. ([[Daniel Reimer]])
 +
* Additionally call it winmine, as it is in windows, too. ([[Daniel Reimer]])
 
* Roel Messiant: Fix short-circuit evaluation. ([[Aleksey Bragin]]; {{bug|5677}})
 
* Roel Messiant: Fix short-circuit evaluation. ([[Aleksey Bragin]]; {{bug|5677}})
 
* Implement LsaAddAccountRights(), LsaQueryTrustedDomainInfoByName() and LsaRemoveAccountRights(). ([[Eric Kohl]])
 
* Implement LsaAddAccountRights(), LsaQueryTrustedDomainInfoByName() and LsaRemoveAccountRights(). ([[Eric Kohl]])
Line 432: Line 604:
 
* Revert 45676 ([[Johannes Anderwald]])
 
* Revert 45676 ([[Johannes Anderwald]])
 
* It appears that the definitions for IID_IUnknown differ for kernel mode COM and user mode COM ([[Johannes Anderwald]])
 
* It appears that the definitions for IID_IUnknown differ for kernel mode COM and user mode COM ([[Johannes Anderwald]])
 +
* Sync with wine 1.3.14 ([[Amine Khaldi]])
 +
* Fix include order of resources. ([[Timo Kreuzer]])
 +
* remove comctl_Cn.rc, it contains and outdated simplified chineese translation, that wine has in comctl_Zh.rc ([[Timo Kreuzer]])
  
 
==== DEVMGR ====
 
==== DEVMGR ====
 
* DisplayDevicePropertyText: Use full DWORD value, not just one byte of it (CID 1803). ([[Roel Messiant]])
 
* DisplayDevicePropertyText: Use full DWORD value, not just one byte of it (CID 1803). ([[Roel Messiant]])
 +
 +
==== FUSION ====
 +
* sync to wine 1.3.10 ([[Christoph von Wittich]])
 +
* use crt="msvcrt" instead of <library>msvcrt</library> ([[Christoph von Wittich]])
  
 
==== GDI32 ====
 
==== GDI32 ====
Line 440: Line 619:
 
* remove useless memory reallocation : the buffer size must be dword aligned, we have no way to guarantee the buffer location will be. ([[Jérôme Gardou]])
 
* remove useless memory reallocation : the buffer size must be dword aligned, we have no way to guarantee the buffer location will be. ([[Jérôme Gardou]])
 
* pass BITMAPINFO pointer size to NtGdiGetDIBitsInternal ([[Jérôme Gardou]])
 
* pass BITMAPINFO pointer size to NtGdiGetDIBitsInternal ([[Jérôme Gardou]])
 +
* Consistent formatting, no code change. ([[Jérôme Gardou]])
 
* Implement GdiGetDcAttr. Just for convenience / cleaner code. ([[Timo Kreuzer]])
 
* Implement GdiGetDcAttr. Just for convenience / cleaner code. ([[Timo Kreuzer]])
 
* Move EFLOAT handling in seperate file, its x86 specific ([[Timo Kreuzer]])
 
* Move EFLOAT handling in seperate file, its x86 specific ([[Timo Kreuzer]])
Line 449: Line 629:
 
* Fix broken portable implementation of _lrintf ([[Timo Kreuzer]])
 
* Fix broken portable implementation of _lrintf ([[Timo Kreuzer]])
 
* Fix broken portable implementation of _lrintf, 2nd try :) ([[Timo Kreuzer]])
 
* Fix broken portable implementation of _lrintf, 2nd try :) ([[Timo Kreuzer]])
 +
* In GetDIBits convert a BITMAPCOREHEADER to a BITMAPINFOHEADER before calling win32k, like done in other places. Convert it back after. This allows to simplify NtGdiGetDIBitsInternal (not done yet) ([[Timo Kreuzer]])
 +
* Fix build ([[Timo Kreuzer]])
 +
* Revert r50519 and r50519 ([[Timo Kreuzer]])
 +
* Remove the old SetDIBBits, it severed us well.... Hold on to the win32k call. ([[James Tabor]]; {{bug|5886}})
 +
* Tested, Area.exe, wine gdi32 bitmaps test, AbiWord 2.8.6, OOo 2.4.3, SM 2.0.11 and ReactOS applications. ([[James Tabor]]; {{bug|5886}})
 +
* Aimp 2.61.583 (FULL, pinted okay), CoolPlayer 219, winamp 0.98d and winamp 2.95 (not FUll). The rest have drawing issue with DIB. . ([[James Tabor]]; {{bug|5886}})
 +
* Protect SetDIBitsToDevice with seh and track it. This is for vbrun60spXX. Code fix ups and cleanup. ([[James Tabor]])
 +
* allocate sufficient buffer when creating a DIBSECTION compatible bitmap. ([[Jérôme Gardou]])
 +
* Fixes bug 5822 ([[Jérôme Gardou]])
 +
 +
==== IMAGEHLP ====
 +
* partial winesync ([[Christoph von Wittich]])
  
 
==== IPHLPAPI ====
 
==== IPHLPAPI ====
Line 464: Line 656:
 
* Revert incorrect changes from 34404 and 40910: RtlSetUserFlagsHeap() doesn't set usual heap flags, it sets special user-settable heap entry flags. With the new heap manager such usage corrupts heap integrity (not to say prototype of this function is incorrect). ([[Aleksey Bragin]])
 
* Revert incorrect changes from 34404 and 40910: RtlSetUserFlagsHeap() doesn't set usual heap flags, it sets special user-settable heap entry flags. With the new heap manager such usage corrupts heap integrity (not to say prototype of this function is incorrect). ([[Aleksey Bragin]])
 
* RtlReAllocateHeap() is supposed to copy user values and flags so there is no need to set them afterwise again. ([[Aleksey Bragin]])
 
* RtlReAllocateHeap() is supposed to copy user values and flags so there is no need to set them afterwise again. ([[Aleksey Bragin]])
 +
* Fix a typo in comments. ([[Aleksey Bragin]])
 
* Print delphi exception with the Exception code 0xeedfade, we were previously only checking for 0xeedface, maybe an older value. ([[Timo Kreuzer]])
 
* Print delphi exception with the Exception code 0xeedfade, we were previously only checking for 0xeedface, maybe an older value. ([[Timo Kreuzer]])
 
* Remove the old version of WaitNamedPipeW. ([[Eric Kohl]])
 
* Remove the old version of WaitNamedPipeW. ([[Eric Kohl]])
Line 472: Line 665:
 
* Fixed implementation of LoadLibraryExA() & DisableThreadLibraryCalls() using those changes ([[Pierre Schweitzer]])
 
* Fixed implementation of LoadLibraryExA() & DisableThreadLibraryCalls() using those changes ([[Pierre Schweitzer]])
 
* This is matching w2k3 implementation. This is of course a WIP. ([[Pierre Schweitzer]])
 
* This is matching w2k3 implementation. This is of course a WIP. ([[Pierre Schweitzer]])
 +
* Updates for Rapps Download Database. ([[Daniel Reimer]])
 
* Revert r49761 on Pierre's request ([[Timo Kreuzer]])
 
* Revert r49761 on Pierre's request ([[Timo Kreuzer]])
 
* Fix heap corruptions in MoveFileWithProgress ([[Johannes Anderwald]])
 
* Fix heap corruptions in MoveFileWithProgress ([[Johannes Anderwald]])
Line 477: Line 671:
 
* Introduced in rev 18073 (25.Sept 2005) ([[Johannes Anderwald]])
 
* Introduced in rev 18073 (25.Sept 2005) ([[Johannes Anderwald]])
 
* ReadDirectoryChangesW: Treat the OVERLAPPED structure as an IO_STATUS_BLOCK, not one of its fields. ([[Roel Messiant]])
 
* ReadDirectoryChangesW: Treat the OVERLAPPED structure as an IO_STATUS_BLOCK, not one of its fields. ([[Roel Messiant]])
 +
* 64 bit compatibility fix for IsWow64Process.  (Thomas)
 +
* Add french translation for runonce utility ([[Johannes Anderwald]]; {{bug|5918}})
 +
* Add svn:eol-style native property ([[Johannes Anderwald]]; {{bug|5918}})
 +
* Fix language id (SUBLANG_DEFAULT -> SUBLANG_NEUTRAL) ([[Johannes Anderwald]]; {{bug|5918}})
 +
* Properly implement GetLastError and export it. ([[Pierre Schweitzer]])
 +
* Get rid of old function Basep8BitStringToLiveUnicodeString() that doesn't exist under Windows, and that was even unused ([[Pierre Schweitzer]])
 +
* Rename Basep8BitStringToHeapUnicodeString() to Basep8BitStringToDynamicUnicodeString() and fix its implementation (and all the calls) ([[Pierre Schweitzer]])
 +
* Define BasepUnicodeStringTo8BitString() ([[Pierre Schweitzer]])
 +
* Get rid of Wine's implementation of GetTempFileNameA/W and reimplement them in the Windows 2003 way. ([[Pierre Schweitzer]])
 +
* This fixes bug #5481 ([[Pierre Schweitzer]])
 +
* Don't mix tab index and memory length... ([[Pierre Schweitzer]])
 +
* This fixes several bugs in GetTempFileNameW() and prevents memory corruption ~ ([[Pierre Schweitzer]])
 +
* Winetest regression is gone :) ([[Pierre Schweitzer]])
 +
* Forgotten changes to .pspec. ([[Pierre Schweitzer]])
 +
* Why is there still a .def? ([[Pierre Schweitzer]])
 +
* Don't make GetBinaryTypeA() rely on Wine's strings conversions functions ([[Pierre Schweitzer]])
 +
* Don't make FindFirstChangeNotificationA() rely on Wine's strings conversions functions ([[Pierre Schweitzer]])
 +
* Don't make CopyFileExA() rely on Wine's strings conversions functions ([[Pierre Schweitzer]])
 +
* Add some debug prints ([[Giannis Adamopoulos]])
 +
* Fix some cases where we didn't check for the return value of CsrAllocateCaptureBuffer ([[Giannis Adamopoulos]])
 +
* Remove unused .def file. We're using .pspec here ([[Pierre Schweitzer]])
 +
* Fix buffer overwrite in GetModuleFileName(). Spotted by DPH. ([[Aleksey Bragin]]; {{bug|5964}})
 +
* Start unifying kernel32 Find* functions. ([[Pierre Schweitzer]])
 +
* All calls end in same methods that are working only in unicode now. ([[Pierre Schweitzer]])
 +
* Next step would be to unify stream & files using only one struct. ([[Pierre Schweitzer]])
 +
* Apply consistent formatting to FlushFileBuffers. ([[Pierre Schweitzer]])
 +
* No code changes yet ([[Pierre Schweitzer]])
 +
* FlushFileBuffers: ([[Pierre Schweitzer]])
 +
* In spite of what MSDN pretends, it appears that FlushFileBuffers flushes console input buffer when it's called with a console handle. Then, do it here as well. ([[Pierre Schweitzer]])
 +
* Get rid of SetLastErrorByStatus here... ([[Pierre Schweitzer]])
 +
* Fixed implementation of both GetFileTime/SetFileTime ([[Pierre Schweitzer]])
 +
* Fix PNP_QueryArbitratorFreeData() and PNP_QueryArbitratorFreeSize() prototypes. ([[Eric Kohl]])
  
 
==== LSASRV ====
 
==== LSASRV ====
Line 482: Line 708:
 
* Change the calling convention of all LSA-RPC function to stdcall. ([[Eric Kohl]])
 
* Change the calling convention of all LSA-RPC function to stdcall. ([[Eric Kohl]])
 
* Export some of the LSA-RPC functions. ([[Eric Kohl]])
 
* Export some of the LSA-RPC functions. ([[Eric Kohl]])
 +
 +
==== MPRAPI ====
 +
* Sync to Wine-1.3.8 ([[Aleksey Bragin]]; {{bug|5718}})
 +
 +
==== MSAFD ====
 +
* Correct calculating PollBufferSize ([[Johannes Anderwald]])
 +
* Found by DPH ([[Johannes Anderwald]])
 +
* Fix bug introduced in 51007 ([[Johannes Anderwald]])
 +
* FatCreateCcb has no params. ([[Ged Murphy]])
 +
* Fixes building on msvc ([[Ged Murphy]])
  
 
==== MSI ====
 
==== MSI ====
 +
* Sync to Wine-1.3.5. ([[Aleksey Bragin]])
 
* Fix freed memory access and fix freeing of invalid pointer. (from http://www.winehq.org/pipermail/wine-patches/2010-October/094849.html ) ([[Aleksey Bragin]]; {{bug|3755}})
 
* Fix freed memory access and fix freeing of invalid pointer. (from http://www.winehq.org/pipermail/wine-patches/2010-October/094849.html ) ([[Aleksey Bragin]]; {{bug|3755}})
  
Line 501: Line 738:
 
==== OLEACC ====
 
==== OLEACC ====
 
* Use an actual entrypoint. Needed to record the instance handle, used by various function that access resources of the module. Should fix oleacc:main winetest. ([[Roel Messiant]])
 
* Use an actual entrypoint. Needed to record the instance handle, used by various function that access resources of the module. Should fix oleacc:main winetest. ([[Roel Messiant]])
 +
 +
==== OPENGL32 ====
 +
* Naive try to fix bug 5057 ([[Jérôme Gardou]])
 +
* use well defined macro instead of weird pointer calculation ([[Jérôme Gardou]])
 +
* reset thread specific data on a thread detach call ([[Jérôme Gardou]])
 +
* Fixes crash in heroes 3 and probably others ([[Jérôme Gardou]])
  
 
==== RPCRT4 ====
 
==== RPCRT4 ====
 
* Add a missing format type to unmarshall_discriminant(). ([[Eric Kohl]])
 
* Add a missing format type to unmarshall_discriminant(). ([[Eric Kohl]])
 +
 +
==== SECUR32 ====
 +
* Don't leave packageinfo uninitialized. Even though it's not the way it should work, wine's rpcrt4 doesn't really expect that function to return no packages at all. Should prevent freeing an unitialized pointer. ([[Aleksey Bragin]]; {{bug|5778}})
  
 
==== SETUPAPI ====
 
==== SETUPAPI ====
Line 519: Line 765:
 
* Implement CM_Is_Version_Available and CM_Is_Version_Available_Ex. ([[Eric Kohl]])
 
* Implement CM_Is_Version_Available and CM_Is_Version_Available_Ex. ([[Eric Kohl]])
 
* Add resource descriptor function stubs. ([[Eric Kohl]])
 
* Add resource descriptor function stubs. ([[Eric Kohl]])
 +
* Implement CM_Get_Device_Interface_AliasA, CM_Get_Device_Interface_AliasW and  ([[Eric Kohl]])
 +
* CM_Get_Device_Interface_Alias_ExW. ([[Eric Kohl]])
 +
* Add a stub for CM_Get_Device_Interface_Alias_ExA. ([[Eric Kohl]])
 +
* Add 'pSetup'-Prefix to the string table functions according to the new naming convention. ([[Eric Kohl]])
 +
* Remove the obsolete function StringTableTrim. ([[Eric Kohl]])
 +
* Rename functions according to the new naming scheme: ([[Eric Kohl]])
 +
* CaptureAndConvertAnsiArg --> pSetupCaptureAndConvertAnsiArg ([[Eric Kohl]])
 +
* CenterWindowRelativeToParent --> pSetupCenterWindowRelativeToParent ([[Eric Kohl]])
 +
* ConcatenatePaths --> pSetupConcatenatePaths ([[Eric Kohl]])
 +
* DuplicateString --> pSetupDuplicateString ([[Eric Kohl]])
 +
* EnablePrivilege --> pSetupEnablePrivilege ([[Eric Kohl]])
 +
* GetVersionInfoFromImage --> pSetupGetVersionInfoFromImage ([[Eric Kohl]])
 +
* IsUserAdmin --> pSetupIsUserAdmin ([[Eric Kohl]])
 +
* MultiByteToUnicode --> pSetupMultiByteToUnicode ([[Eric Kohl]])
 +
* MyGetFileTitle --> pSetupGetFileTitle ([[Eric Kohl]])
 +
* OpenAndMapForRead --> pSetupOpenAndMapForRead ([[Eric Kohl]])
 +
* RegistryDelnode --> pSetupRegistryDelnode ([[Eric Kohl]])
 +
* UnicodeToMultiByte --> pSetupUnicodeToMultiByte ([[Eric Kohl]])
 +
* UnmapAndCloseFile --> pSetupUnmapAndCloseFile ([[Eric Kohl]])
  
 
==== SHELL32 ====
 
==== SHELL32 ====
Line 526: Line 791:
 
* Don't add shortcuts / executables to recent file list ([[Johannes Anderwald]])
 
* Don't add shortcuts / executables to recent file list ([[Johannes Anderwald]])
 
* Add NULL checks in IShellView and IDropTarget implementations. Should fix bug #5780. ([[Roel Messiant]])
 
* Add NULL checks in IShellView and IDropTarget implementations. Should fix bug #5780. ([[Roel Messiant]])
 +
* Check the correct pidl instead of the free one ([[Johannes Anderwald]])
 +
* Found by the amazing DPH! ([[Johannes Anderwald]])
 +
* WDMAUD.DRV] ([[Johannes Anderwald]])
 +
* Check if the provided waveformat is at least size of WAVEFORMAT ([[Johannes Anderwald]])
 +
* Compute extra details such as the size or wBitsPerSample from the provided members ([[Johannes Anderwald]])
 +
* Backup i/o completion handle before commiting the audio buffer as the struct might have already been released ([[Johannes Anderwald]])
 +
* Fixes playback of mmsys cpl  ([[Johannes Anderwald]])
 +
* Found by DPH! ([[Johannes Anderwald]])
 +
* Use correct (?) raster operations for drawing sjortcuts. ([[Jérôme Gardou]])
 +
* Also note that now NtGdiMaskBlt locks the device contexts : this should avoid some race conditions, such as icons drawn on top of windows and the like. ([[Jérôme Gardou]])
 +
* Win32k sucks less. ([[Jérôme Gardou]])
 +
* So does reactos. ([[Jérôme Gardou]])
 +
* Dedicated to Timo. Sleep well, mate. ([[Jérôme Gardou]])
 +
* Return the icon index, not the icon id ([[Johannes Anderwald]])
 +
* Fixes bug 5742 ([[Johannes Anderwald]])
  
 
==== SHLWAPI ====
 
==== SHLWAPI ====
Line 533: Line 813:
 
* SC Manager needs SC_MANAGER_ENUMERATE_SERVICE access right to be able to open a service ([[Jérôme Gardou]])
 
* SC Manager needs SC_MANAGER_ENUMERATE_SERVICE access right to be able to open a service ([[Jérôme Gardou]])
 
* Add debug prints to help tracking down the "EnableUserModePnpManager()" issue ([[Jérôme Gardou]])
 
* Add debug prints to help tracking down the "EnableUserModePnpManager()" issue ([[Jérôme Gardou]])
 +
* EnableUserModePnpManager:  StartServiceW can fail due to the service already running. Check last error for such a case. Should fix bug #5846. ([[Michael Martin]])
 +
 +
==== URLMON ====
 +
* Sync to WINE 1.3.4 ([[Cameron Gutman]])
 +
* Sync to Wine 1.3.9 ([[Cameron Gutman]])
  
 
==== USER32 ====
 
==== USER32 ====
Line 554: Line 839:
 
* use unmodified wine code for STATIC_PaintIconfn ([[Timo Kreuzer]])
 
* use unmodified wine code for STATIC_PaintIconfn ([[Timo Kreuzer]])
 
* Fix CreateIcon and CreateIconIndirect. Fixes user32_winetest:cursoricon. (Yes we execute less tests, but that is correct! wine probably only passes these tests by chance) ([[Timo Kreuzer]])
 
* Fix CreateIcon and CreateIconIndirect. Fixes user32_winetest:cursoricon. (Yes we execute less tests, but that is correct! wine probably only passes these tests by chance) ([[Timo Kreuzer]])
 +
* TRANSLATION: fix typo in shutdown. ([[Sylvain Petreolle]])
 +
* Fix a typo. Fixes "Calling invalid routine number 0x10 in NtUserCallOneParam()" ([[Timo Kreuzer]])
 +
* remove a hack in DrawMenuBar (Rafa≈; {{bug|5949}})
 +
* Revert a previous change that shouldn't have been comitted yet. ([[Timo Kreuzer]])
 +
* Go back to use of SetWindowLongW instead of GetWindowLongPtrW for GWL_STYLE to reduce diff to wine code. ([[Timo Kreuzer]])
 +
* Sync edit.c with wine head. ([[Timo Kreuzer]])
 +
* When the Edit receives WM_KILLFOCUS, it will notify its parent (the ListView) (Thomas; {{bug|5895}})
 +
* of losing focus, which in turn will send WM_CLOSE to destroy the edit control. (Thomas; {{bug|5895}})
 +
* This will cause the edit to receive WM_DESTROY and free the EDITSTATE. (Thomas; {{bug|5895}})
 +
* When control returns to the WM_KILLFOCUS handler, this would call (Thomas; {{bug|5895}})
 +
* EDIT_UnlockBuffer on the now invalid EDITSTATE. (Thomas; {{bug|5895}})
 +
* Fix this by checking the validity of the EDITSTATE before calling EDIT_UnlockBuffer. (Thomas; {{bug|5895}})
 +
* Fixes explorer crash, when cancelling file renaming. (Thomas; {{bug|5895}})
 +
* Rafal Harabien: Add some missing bitmaps to user32. They are copied from Wine. Change "old" cursors identifiers to defines from winuser.h (OCR_*). ([[Aleksey Bragin]]; {{bug|6000}})
  
 
==== WINHTTP ====
 
==== WINHTTP ====
 +
* Sync to WINE 1.3.4 ([[Cameron Gutman]])
 +
* Sync the inet_ntop.c change from wininet ([[Cameron Gutman]])
 +
* Update the diff ([[Cameron Gutman]])
 +
* Update rapps database ([[Daniel Reimer]])
 +
* Sync to Wine 1.3.9 ([[Cameron Gutman]])
  
 
==== WININET ====
 
==== WININET ====
Line 562: Line 866:
 
* Use WSASetLastError instead of errno in inet_ntop.c ([[Cameron Gutman]])
 
* Use WSASetLastError instead of errno in inet_ntop.c ([[Cameron Gutman]])
 
* Thanks to IRC:igorko for pointing out the bug ([[Cameron Gutman]])
 
* Thanks to IRC:igorko for pointing out the bug ([[Cameron Gutman]])
 +
* Sync wininet to WINE 1.3.4 ([[Cameron Gutman]])
 +
* Regenerate wininet_ros.diff so that it actually applies against current WINE head ([[Cameron Gutman]])
 +
* Add a forgotten change to the diff ([[Cameron Gutman]])
 +
* Sync to Wine 1.3.9 ([[Cameron Gutman]])
 +
* Revert part of r47411. The revision was a wine sync, but no wine code was reverted, only the use of zlib is disabled. Fixes downloading audiograbber with rapps. ([[Timo Kreuzer]]; {{bug|5663}})
  
 
==== WINMM ====
 
==== WINMM ====
Line 592: Line 901:
 
* EOF */ ([[Pierre Schweitzer]])
 
* EOF */ ([[Pierre Schweitzer]])
 
* Remove unused vars ~ ([[Pierre Schweitzer]])
 
* Remove unused vars ~ ([[Pierre Schweitzer]])
 +
* Prevent code duplication by using vfatAttachFCBToFileObject() for volume opening, instead of rewritting the whole function. ([[Pierre Schweitzer]])
 +
* Properly check requested disposition when opening a volume. ([[Pierre Schweitzer]])
 +
* This fixes bug #5839. Trying to exec \\.\C: in explorer run dialog now ends with an error, as it does on Windows. ([[Pierre Schweitzer]])
 +
* Do not set file attributes in case they are set to 0 or -1 ([[Pierre Schweitzer]])
  
 
==== FASTFAT_NEW ====
 
==== FASTFAT_NEW ====
Line 628: Line 941:
  
 
=== KSFILTER ===
 
=== KSFILTER ===
* Make pin / node / allocator create requests compatible to ms by removing obsolete slash before object class ([[Johannes Anderwald]])
 
* Return correct error code in ksuser's KsCreatePin ([[Johannes Anderwald]])
 
* ReactOS KS is now able to create audio pins in Windows XP, though playback is not yet working ([[Johannes Anderwald]])
 
* All changes except ksuser change has been verified to work with VBox 3.2.10 ([[Johannes Anderwald]])
 
* KS user changes not tested yet as KSStudio not working in trunk ([[Johannes Anderwald]])
 
 
 
* Simplify KsTopologyPropertyHandler by using KspReadMediaCategory helper ([[Johannes Anderwald]])
 
* Simplify KsTopologyPropertyHandler by using KspReadMediaCategory helper ([[Johannes Anderwald]])
 
* Return correct status code in case of an overflow ([[Johannes Anderwald]])
 
* Return correct status code in case of an overflow ([[Johannes Anderwald]])
Line 681: Line 988:
 
* WDMAUD.DRV] ([[Johannes Anderwald]])
 
* WDMAUD.DRV] ([[Johannes Anderwald]])
 
* Merge from audio branch ([[Johannes Anderwald]])
 
* Merge from audio branch ([[Johannes Anderwald]])
 +
* Fix build  ([[Johannes Anderwald]])
  
 
=== MULTIMEDIA ===
 
=== MULTIMEDIA ===
Line 690: Line 998:
  
 
===== SNDBLST.OLD =====
 
===== SNDBLST.OLD =====
 +
 +
====== TEST ======
 +
* Disable DroidSansFallback.ttf. ([[Sylvain Petreolle]])
 +
* Enable DroidSansFallback.ttf. ([[Sylvain Petreolle]])
 +
* Disable DroidSansFallback.ttf. ([[Sylvain Petreolle]])
 +
* Enable DroidSansFallback.ttf. ([[Sylvain Petreolle]])
 +
* Update rapps database and add encoded's VMWare Sound driver. ([[Daniel Reimer]])
 +
* Test commit ([[Daniel Reimer]])
 +
* revert it... test commit... ([[Daniel Reimer]])
  
 
==== NDIS ====
 
==== NDIS ====
Line 742: Line 1,059:
 
* No code changes. ([[Dmitry Gorbachev]])
 
* No code changes. ([[Dmitry Gorbachev]])
 
* See thread <http://www.reactos.org/forum/viewtopic.php?f=14&t=8809> for more details. ([[Dmitry Gorbachev]])
 
* See thread <http://www.reactos.org/forum/viewtopic.php?f=14&t=8809> for more details. ([[Dmitry Gorbachev]])
 +
* Rafal Harabien: Sync UniATA to 0.40a5. Changelog: ([[Aleksey Bragin]]; {{bug|5976}})
 +
* Fixed bug with BSOD on newer SATA/AHCI Intel chips.  ([[Aleksey Bragin]]; {{bug|5976}})
 +
* Added support for different number of devices on different channls. ([[Aleksey Bragin]]; {{bug|5976}})
 +
* Updated AHCI support code (not ready yet). ([[Aleksey Bragin]]; {{bug|5976}})
 +
* All ReactOS specific changes have been left. ([[Aleksey Bragin]]; {{bug|5976}})
  
 
==== SCSIPORT ====
 
==== SCSIPORT ====
Line 811: Line 1,133:
 
* Fix multiple bugs in round buffer implementation ([[Johannes Anderwald]])
 
* Fix multiple bugs in round buffer implementation ([[Johannes Anderwald]])
 
* Should result in less audio glitches, especially when playing audio files with low sample rates. Please report any regressions! ([[Johannes Anderwald]])
 
* Should result in less audio glitches, especially when playing audio files with low sample rates. Please report any regressions! ([[Johannes Anderwald]])
 +
* Fix a comment ([[Timo Kreuzer]])
 
* Disable driver specific filter / pin / node property handlers until bug leading to crashes has been found ([[Johannes Anderwald]])
 
* Disable driver specific filter / pin / node property handlers until bug leading to crashes has been found ([[Johannes Anderwald]])
 
* Fix stupid bug which lead to access an invalid buffer. ([[Johannes Anderwald]])
 
* Fix stupid bug which lead to access an invalid buffer. ([[Johannes Anderwald]])
Line 834: Line 1,157:
 
* Fix node property handler ([[Johannes Anderwald]])
 
* Fix node property handler ([[Johannes Anderwald]])
 
* Take advantage of IPinCount interface ([[Johannes Anderwald]])
 
* Take advantage of IPinCount interface ([[Johannes Anderwald]])
 +
* Try fix msvc issues for cmake branch ([[Johannes Anderwald]])
 +
* Fix more msvc issues. ([[Amine Khaldi]])
 +
* Remove the oldest hack in portcls ([[Johannes Anderwald]])
 +
* Please report any regression(s) ([[Johannes Anderwald]])
 +
* Only perform copying audio bytes to dma buffer while the adapter is reset state is KSREST_END ([[Johannes Anderwald]])
 +
* Set the reset state indicator before canceling the audio buffers ([[Johannes Anderwald]])
 +
* Should fix the audio hang experienced in Winamp when skipping audio bytes ([[Johannes Anderwald]])
 +
* Re-add the hack for gcc ([[Johannes Anderwald]])
 +
* Fix build ([[Johannes Anderwald]])
  
 
== HAL ==
 
== HAL ==
 +
* Fix amd64 build ([[Timo Kreuzer]])
 +
* Big rapps Update ([[Daniel Reimer]])
 
* Implement HalStopProfileInterrupt and add required RTC register and flag definitions. ([[Eric Kohl]])
 
* Implement HalStopProfileInterrupt and add required RTC register and flag definitions. ([[Eric Kohl]])
 +
* Fix build failure from r48863. ([[Eric Kohl]])
 
* Check that the interrupt line is not 255 ([[Cameron Gutman]])
 
* Check that the interrupt line is not 255 ([[Cameron Gutman]])
 
* Check that the interrupt pin is not 0 ([[Cameron Gutman]])
 
* Check that the interrupt pin is not 0 ([[Cameron Gutman]])
Line 848: Line 1,183:
 
* Make directory/buildfiles for OMAP3-specific HAL. Shared between ZOOM2 and Beagle for now. ([[sir_richard]])
 
* Make directory/buildfiles for OMAP3-specific HAL. Shared between ZOOM2 and Beagle for now. ([[sir_richard]])
 
* Convert while (TRUE); to ASSERT(FALSE); on unimplemented pathes. ([[Timo Kreuzer]])
 
* Convert while (TRUE); to ASSERT(FALSE); on unimplemented pathes. ([[Timo Kreuzer]])
 +
* Fix Port numbers and ranges in HalpDefaultIoSpace (divide by 0x100) (Rafal; {{bug|5925}})
 +
* By me: (Rafal; {{bug|5925}})
 +
* Fix DMA 1 port range and fix comment (Rafal; {{bug|5925}})
  
 
=== CRT ===
 
=== CRT ===
Line 855: Line 1,193:
 
* Remove empty file ([[Gregor Schneider]])
 
* Remove empty file ([[Gregor Schneider]])
 
* New implementation of all printf functions. It's stream based (like MS one is) rather than buffer based (like our old is). Floating point is not 100% finished, but current implementation is good enough to boot. It can be enabled by a config switch. ([[Timo Kreuzer]])
 
* New implementation of all printf functions. It's stream based (like MS one is) rather than buffer based (like our old is). Floating point is not 100% finished, but current implementation is good enough to boot. It can be enabled by a config switch. ([[Timo Kreuzer]])
 +
* Fix build ([[Timo Kreuzer]])
 
* Fix a bug in streamout(), that could cause a buffer overrun and made msvcrt_winetest crash. ([[Timo Kreuzer]])
 
* Fix a bug in streamout(), that could cause a buffer overrun and made msvcrt_winetest crash. ([[Timo Kreuzer]])
 
* In streamout() handle %%, negative fieldwidth and negative precision. ([[Timo Kreuzer]])
 
* In streamout() handle %%, negative fieldwidth and negative precision. ([[Timo Kreuzer]])
Line 879: Line 1,218:
 
* Enable new printf implementation. ([[Timo Kreuzer]])
 
* Enable new printf implementation. ([[Timo Kreuzer]])
 
* Fix a number of errors in floating point output. ([[Timo Kreuzer]])
 
* Fix a number of errors in floating point output. ([[Timo Kreuzer]])
 +
* fix build ([[Timo Kreuzer]])
 
* Set errno when a overflow occurs in strtoull ([[Johannes Anderwald]])
 
* Set errno when a overflow occurs in strtoull ([[Johannes Anderwald]])
 
* Fixes 2 wine tests failures in msvcrt:string ([[Johannes Anderwald]])
 
* Fixes 2 wine tests failures in msvcrt:string ([[Johannes Anderwald]])
 +
* Fix build ([[Johannes Anderwald]])
 
* Rewrite broken _flsbuf and implement _flswbuf ([[Timo Kreuzer]])
 
* Rewrite broken _flsbuf and implement _flswbuf ([[Timo Kreuzer]])
 
* use _flswbuf in wstreamout ([[Timo Kreuzer]])
 
* use _flswbuf in wstreamout ([[Timo Kreuzer]])
 
* Fixes broken text output in dwnl etc ([[Timo Kreuzer]])
 
* Fixes broken text output in dwnl etc ([[Timo Kreuzer]])
 +
* Fix build ([[Timo Kreuzer]])
 
* Fix _flsbuf return value ([[Timo Kreuzer]])
 
* Fix _flsbuf return value ([[Timo Kreuzer]])
 
* Improve code readability a bit ([[Timo Kreuzer]])
 
* Improve code readability a bit ([[Timo Kreuzer]])
Line 891: Line 1,233:
 
* gather several undocumented definitions for user32 that were defined in several different files, sometimes in the source, sometimes in headers and sometimes defined several times here and there ([[Giannis Adamopoulos]])
 
* gather several undocumented definitions for user32 that were defined in several different files, sometimes in the source, sometimes in headers and sometimes defined several times here and there ([[Giannis Adamopoulos]])
 
* This file should not contain internal user32 definitions but undocumented public definitions ([[Giannis Adamopoulos]])
 
* This file should not contain internal user32 definitions but undocumented public definitions ([[Giannis Adamopoulos]])
 +
* fix build ([[Giannis Adamopoulos]])
 +
* fix build ([[Giannis Adamopoulos]])
 
* Add user32_wsprintf library, with all the wsprintf functions, generated from the same codebase ([[Timo Kreuzer]])
 
* Add user32_wsprintf library, with all the wsprintf functions, generated from the same codebase ([[Timo Kreuzer]])
 
* simplify handling of ll modifier in streamout ([[Timo Kreuzer]])
 
* simplify handling of ll modifier in streamout ([[Timo Kreuzer]])
Line 897: Line 1,241:
 
* Replace isinf with !_finite and isnan with _isnan ([[Timo Kreuzer]])
 
* Replace isinf with !_finite and isnan with _isnan ([[Timo Kreuzer]])
 
* Cleanup math.h from unixism. For now move everything that doesn't belong there into mingw_math.h. ([[Timo Kreuzer]])
 
* Cleanup math.h from unixism. For now move everything that doesn't belong there into mingw_math.h. ([[Timo Kreuzer]])
 +
* Fix build of wined3d ([[Timo Kreuzer]])
 
* effects dialog doesn't affect the color scheme (commented out until fixed finally) ([[Matthias Kupfer]])
 
* effects dialog doesn't affect the color scheme (commented out until fixed finally) ([[Matthias Kupfer]])
 
* save the KeyboardCues value correctly ([[Matthias Kupfer]])
 
* save the KeyboardCues value correctly ([[Matthias Kupfer]])
 +
* Improve _getdrive and _tchdir.  (devpao; {{bug|5848}})
 +
* Update rapps database. ([[Daniel Reimer]])
 +
* Fix special behaviour of wsprintf: when used with # flag, the "0x" prefix does not count into the field width, so we have to add additional 2 characters here. Fixes Opera installer. ([[Timo Kreuzer]]; {{bug|5900}})
 +
* Update _mingw_mac.h from mingw-w64 and add _mingw_unicode.h ([[Amine Khaldi]])
  
 
=== DDK ===
 
=== DDK ===
Line 904: Line 1,253:
 
* classpnp.h: Add FUNCTIONAL_DEVICE_EXTENSION, SET_FLAG, CLEAR_FLAG and TEST_FLAG ([[Amine Khaldi]])
 
* classpnp.h: Add FUNCTIONAL_DEVICE_EXTENSION, SET_FLAG, CLEAR_FLAG and TEST_FLAG ([[Amine Khaldi]])
 
* Add some more missing definitions. ([[Amine Khaldi]])
 
* Add some more missing definitions. ([[Amine Khaldi]])
* Fix classpnp.h ([[sir_richard]])
 
* Last couple of fixes to headers. Classpnp can compile (and link) now. ([[sir_richard]])
 
 
* Fix a typo and introduce some minor formatting changes. ([[Amine Khaldi]])
 
* Fix a typo and introduce some minor formatting changes. ([[Amine Khaldi]])
 
* Add missing min and max macros. ([[Amine Khaldi]])
 
* Add missing min and max macros. ([[Amine Khaldi]])
Line 912: Line 1,259:
 
* Fix RtlStringCbPrintf prototypes. ([[Amine Khaldi]])
 
* Fix RtlStringCbPrintf prototypes. ([[Amine Khaldi]])
 
* Add dmusprop header ([[Johannes Anderwald]])
 
* Add dmusprop header ([[Johannes Anderwald]])
 +
* Add IMP_PowerNotify macro to portcls.h ([[Johannes Anderwald]])
 +
* Add IID_IMusicTechnology guid to portcls.h ([[Johannes Anderwald]])
 
* Add GTI_XXX macros to portcls.h ([[Johannes Anderwald]])
 
* Add GTI_XXX macros to portcls.h ([[Johannes Anderwald]])
* Add IID_IMusicTechnology guid to portcls.h ([[Johannes Anderwald]])
+
* Remove broken definitions of KSPROPSETID_Synth, KSPROPSETID_Synth_Dls. They are defined in dmusprop.h ([[Johannes Anderwald]])
* Add IMP_PowerNotify macro to portcls.h ([[Johannes Anderwald]])
 
 
* Add KSDATARANGE_MUSIC to ksmedia.h ([[Johannes Anderwald]])
 
* Add KSDATARANGE_MUSIC to ksmedia.h ([[Johannes Anderwald]])
 
* Add KSMUSIC_TECHNOLOGY, KSDATAFORMAT_SUBTYPE_MIDI_BUS, KSAUDFNAME_MIDI, KSNODETYPE_SYNTHESIZER to ksmedia.h ([[Johannes Anderwald]])
 
* Add KSMUSIC_TECHNOLOGY, KSDATAFORMAT_SUBTYPE_MIDI_BUS, KSAUDFNAME_MIDI, KSNODETYPE_SYNTHESIZER to ksmedia.h ([[Johannes Anderwald]])
* Remove broken definitions of KSPROPSETID_Synth, KSPROPSETID_Synth_Dls. They are defined in dmusprop.h ([[Johannes Anderwald]])
 
 
* FsRtlRemoveBaseMcbEntry() return is VOID ([[Pierre Schweitzer]])
 
* FsRtlRemoveBaseMcbEntry() return is VOID ([[Pierre Schweitzer]])
* Fix NDIS macros. Patch by Oleg Baikalow. ([[Aleksey Bragin]])
+
* Oleg Baikalow: Fix NDIS macros. ([[Aleksey Bragin]])
 +
* Fix ioaccess.h svn properties. Spotted by Jonathan Yong. ([[Amine Khaldi]])
  
 
=== NDK ===
 
=== NDK ===
 
+
* Fixed build ([[Pierre Schweitzer]])
* Fix RtlQuery/SetHeapInformation prototypes, move them to an appropriate place. ([[Aleksey Bragin]])
 
 
* Add MMVAD_SHORT. ([[sir_richard]])
 
* Add MMVAD_SHORT. ([[sir_richard]])
* Merge arty-newcc branch ([[Art Yerkes]])
 
* Fix KPCR/KIPCR for ARM to match x86 more closely. Add KeGetTickCount for ARM. ([[sir_richard]])
 
 
* Fix definition of ARM PTE/PDE structure. ([[sir_richard]])
 
* Fix definition of ARM PTE/PDE structure. ([[sir_richard]])
 
* Add IMAGE_FILE_MACHINE_NATIVE ([[Timo Kreuzer]])
 
* Add IMAGE_FILE_MACHINE_NATIVE ([[Timo Kreuzer]])
 
* Add RTL_TRACE_BLOCK structure definition. ([[Aleksey Bragin]])
 
* Add RTL_TRACE_BLOCK structure definition. ([[Aleksey Bragin]])
 +
* pHalAllocateMapRegisters type functions are to return NTSTATUS and not BOOLEAN ([[Pierre Schweitzer]])
  
 
=== PSDK ===
 
=== PSDK ===
 
* Add some missing structures in ioevent.h ([[Amine Khaldi]])
 
* Add some missing structures in ioevent.h ([[Amine Khaldi]])
* Add more missing definitions. ([[sir_richard]])
 
* Last couple of fixes to headers. Classpnp can compile (and link) now. ([[sir_richard]])
 
 
* Add some missing IOCTL_* definitions. ([[Amine Khaldi]])
 
* Add some missing IOCTL_* definitions. ([[Amine Khaldi]])
 
* Add missing ntddmmc.h definitions. ([[Amine Khaldi]])
 
* Add missing ntddmmc.h definitions. ([[Amine Khaldi]])
 
* Add CDROM_TOC_SESSION_DATA structure. ([[Amine Khaldi]])
 
* Add CDROM_TOC_SESSION_DATA structure. ([[Amine Khaldi]])
 
* Add missing header's header. ([[Amine Khaldi]])
 
* Add missing header's header. ([[Amine Khaldi]])
* Add FILEMUIINFO definition. Patch by Edison Henrique Andreassy ([[Aleksey Bragin]])
+
* Fixed build ([[Pierre Schweitzer]])
 
* Add missing SEC_XXX definitions for Server 2003 (Vista ones still missing). ([[sir_richard]])
 
* Add missing SEC_XXX definitions for Server 2003 (Vista ones still missing). ([[sir_richard]])
 
* Add more track popup menu types. ([[James Tabor]])
 
* Add more track popup menu types. ([[James Tabor]])
Line 946: Line 1,290:
 
* Add NOMIRRORBITMAP definition. ([[Aleksey Bragin]])
 
* Add NOMIRRORBITMAP definition. ([[Aleksey Bragin]])
 
* Add DecryptFileA/W prototype. ([[Eric Kohl]])
 
* Add DecryptFileA/W prototype. ([[Eric Kohl]])
* Fix definition of KSPROPSETID_DrmAudioStream, KSPROPERTY_DRMAUDIOSTREAM ([[Johannes Anderwald]])
+
* add TrustedDomainAuthInformationInternal and TrustedDomainFullInformationInternalFix to _TRUSTED_INFORMATION_CLASS. ([[Jérôme Gardou]])
* basetsd.h: Add POINTER_SIGNED, POINTER_UNSIGNED, SPOINTER_32, UPOINTER_32 ([[Timo Kreuzer]])
+
* Fixes build ([[Jérôme Gardou]])
* add TrustedDomainAuthInformationInternal and TrustedDomainFullInformationInternalFix to _TRUSTED_INFORMATION_CLASS. Fixes build ([[Jerome Gardou]])
+
* Partly sync windef.h with mingw-w64 and add specstrings.h ([[Timo Kreuzer]])
* Merge arty-newcc branch ([[Art Yerkes]])
+
* Partly sync windef.h with mingw-w64 and add specstrings.h ([[Timo Kreuzer]])
* Partly sync windef.h with mingw-w64 and add specstrings.h. Fixed definition of NULL to __null in stddef.h ([[Timo Kreuzer]])
+
* reverts the previous revert, fixed definition of NULL to __null in stddef.h ([[Timo Kreuzer]])
 
* Don't define __in and __null on c++ build. as long as we keep using host headers, this won't work ([[Timo Kreuzer]])
 
* Don't define __in and __null on c++ build. as long as we keep using host headers, this won't work ([[Timo Kreuzer]])
* Comment out specstrings.h inclusion in windef.h as per Timo's request. Fixes build. ([[Timo Kreuzer]])
+
* Comment out specstrings.h inclusion in windef.h as per Timo's request. ([[Sylvain Petreolle]])
 +
* Fixes build. ([[Sylvain Petreolle]])
 
* Add missing DbgRaiseAssertionFailure inline to winnt.h header. ([[sir_richard]])
 
* Add missing DbgRaiseAssertionFailure inline to winnt.h header. ([[sir_richard]])
* Fix KPCR/KIPCR for ARM to match x86 more closely. Add KeGetTickCount for ARM. ([[sir_richard]])
+
* Oleg Baikalow: Add missing definitions to ipexport.h. ([[Aleksey Bragin]])
* Add missing definitions to ipexport.h. Patch by Oleg Baikalow ([[Aleksey Bragin]])
+
* Oleg Baikalow: Don't call TDIEntityID structure and type with the same name. ([[Aleksey Bragin]])
* Don't call TDIEntityID structure and type with the same name. Patch by Oleg Baikalow ([[Aleksey Bragin]])
+
* Bug 5756: TRANSLATION: multiple modules: Bulgarian by CCTAHEB ([[Daniel Reimer]])
 +
* Bug 5761: TRANSLATION: Czech translation update by Radek Liska ([[Daniel Reimer]])
 +
* Update rapps database. ([[Daniel Reimer]])
 +
* Fix for Fox Audio Player. Newest Version and leading to a Setup with libmpg ([[Daniel Reimer]])
 
* Add missing definitions. ([[Aleksey Bragin]])
 
* Add missing definitions. ([[Aleksey Bragin]])
* Remove undocumented defines from winuser.h and include undocuser.h when _WINE is defined. ([[Aleksey Bragin]])
+
* sync urlmon.idl with wine 1.3.10 ([[Christoph von Wittich]])
 
* Merge from audio branch ([[Johannes Anderwald]])
 
* Merge from audio branch ([[Johannes Anderwald]])
 +
* Remove svn:merge info ([[Johannes Anderwald]])
 +
* Improve commctrl.h ([[Amine Khaldi]])
 +
* Improve some definitions. ([[Amine Khaldi]])
  
 
=== REACTOS ===
 
=== REACTOS ===
Line 972: Line 1,323:
 
==== SUBSYS ====
 
==== SUBSYS ====
 
* Should use MEM_COMMIT | MEM_RESERVE, not just MEM_COMMIT when requesting a range of adress space that wasn't already reserved. This works in ReactOS because, well, no reason to explain why, but it wouldn't work on Windows or with a VAD-based kernel. ([[sir_richard]])
 
* Should use MEM_COMMIT | MEM_RESERVE, not just MEM_COMMIT when requesting a range of adress space that wasn't already reserved. This works in ReactOS because, well, no reason to explain why, but it wouldn't work on Windows or with a VAD-based kernel. ([[sir_richard]])
 +
* Sync reg xcopy winhlp32 wordpad and msiexec with Wine 1.3.5 ([[Daniel Reimer]])
 
* Initialise PPB to zero. (Roel)
 
* Initialise PPB to zero. (Roel)
 
* The change from NtAllocateVirtualMemory to RtlAllocateHeap causes the memory to (Roel)
 
* The change from NtAllocateVirtualMemory to RtlAllocateHeap causes the memory to (Roel)
Line 980: Line 1,332:
 
* DbgBreakPoint being called in NtProcessStartup.  Simply ensuring the memory is (Roel)
 
* DbgBreakPoint being called in NtProcessStartup.  Simply ensuring the memory is (Roel)
 
* zeroed makes it all better again. (Roel)
 
* zeroed makes it all better again. (Roel)
 +
* Katayama Hirofumi: ([[Sylvain Petreolle]])
 +
* Add / update Japanese translations. ([[Sylvain Petreolle]])
 +
* Fix typos in calc en-US resource. ([[Sylvain Petreolle]])
 +
* Bug #5673,5674,5675,5676. ([[Sylvain Petreolle]])
  
 
==== WIN32K ====
 
==== WIN32K ====
Line 986: Line 1,342:
 
* UserSetCursorPos: set the new position after sending WM_MOUSEMOVE message ([[Giannis Adamopoulos]])
 
* UserSetCursorPos: set the new position after sending WM_MOUSEMOVE message ([[Giannis Adamopoulos]])
 
* now we pass all tests for SetCursorPos ([[Giannis Adamopoulos]])
 
* now we pass all tests for SetCursorPos ([[Giannis Adamopoulos]])
 +
* fix GeoID bug (forgotten \0) ([[Matthias Kupfer]])
 
* clean up EXLATEOBJ before error path in NtGdiBitBlt ([[Jérôme Gardou]])
 
* clean up EXLATEOBJ before error path in NtGdiBitBlt ([[Jérôme Gardou]])
 
* Implement win32k support functions for Get and Set process default layout. ([[James Tabor]])
 
* Implement win32k support functions for Get and Set process default layout. ([[James Tabor]])
Line 1,052: Line 1,409:
 
* Simplify co_IntPeekMessage even more ([[Giannis Adamopoulos]])
 
* Simplify co_IntPeekMessage even more ([[Giannis Adamopoulos]])
 
* Rename MsqInsertSystemMessage to MsqInsertMouseMessage ([[Giannis Adamopoulos]])
 
* Rename MsqInsertSystemMessage to MsqInsertMouseMessage ([[Giannis Adamopoulos]])
 +
* Bug 5726: PATCH: regedit: Language File skeleton strings (geekdundee<A_T>gmail.com) ([[Daniel Reimer]])
 +
* Bug 5735: PATCH: updated slovak translations by Mario Kacmar ([[Daniel Reimer]])
 +
* Bug 5740: TRANSLATION: rapps: polish (wojtekkozlo664<A_T>op.pl) ([[Daniel Reimer]])
 
* Updated the Rapps Versions, too. ([[Daniel Reimer]])
 
* Updated the Rapps Versions, too. ([[Daniel Reimer]])
 
* Fix hooks, do not cleanup hooks when any window from the same thread is destroyed. ([[James Tabor]])
 
* Fix hooks, do not cleanup hooks when any window from the same thread is destroyed. ([[James Tabor]])
Line 1,057: Line 1,417:
 
* Some more cleanup ([[Giannis Adamopoulos]])
 
* Some more cleanup ([[Giannis Adamopoulos]])
 
* Test for hooks before setting up for a hook call. This eliminates overhead. ([[James Tabor]])
 
* Test for hooks before setting up for a hook call. This eliminates overhead. ([[James Tabor]])
 +
* Fix style, use client style. ([[James Tabor]])
 
* Fix one of the greatest hacks in message handling: do not wake up every message queue when there is mouse or keyboard input ( wake only the thread that must take input) ([[Giannis Adamopoulos]])
 
* Fix one of the greatest hacks in message handling: do not wake up every message queue when there is mouse or keyboard input ( wake only the thread that must take input) ([[Giannis Adamopoulos]])
 
* rewrite co_WinPosWindowFromPoint, co_MsqInsertMouseMessage and co_MsqPeekHardwareMessage ([[Giannis Adamopoulos]])
 
* rewrite co_WinPosWindowFromPoint, co_MsqInsertMouseMessage and co_MsqPeekHardwareMessage ([[Giannis Adamopoulos]])
Line 1,081: Line 1,442:
 
* Improve "not enough memory" check when creating a bitmap ([[Jérôme Gardou]])
 
* Improve "not enough memory" check when creating a bitmap ([[Jérôme Gardou]])
 
* use correct function to set the last error. ([[Jérôme Gardou]])
 
* use correct function to set the last error. ([[Jérôme Gardou]])
 +
* Make sure to initialize our page operation mutex. ([[Art Yerkes]])
 +
* Scan the whole range of the MemoryArea for pages to evict. ([[Art Yerkes]])
 +
* This fixes cache section page eviction. ([[Art Yerkes]])
 
* IntCreateWindow: Fill out MaximumLength field of the window name. Fixes potential buffer overflow in at least NtUserDefSetText. ([[Roel Messiant]])
 
* IntCreateWindow: Fill out MaximumLength field of the window name. Fixes potential buffer overflow in at least NtUserDefSetText. ([[Roel Messiant]])
 
* Fix EngGetLastError and EngSetLastError ([[Timo Kreuzer]])
 
* Fix EngGetLastError and EngSetLastError ([[Timo Kreuzer]])
Line 1,102: Line 1,466:
 
* Fix type of DCLEVEL::prgnClip / prgnMeta (PVOID -> PREGION) ([[Timo Kreuzer]])
 
* Fix type of DCLEVEL::prgnClip / prgnMeta (PVOID -> PREGION) ([[Timo Kreuzer]])
 
* Move NtGdiGetRandomRgn to dcobjs.c ([[Timo Kreuzer]])
 
* Move NtGdiGetRandomRgn to dcobjs.c ([[Timo Kreuzer]])
 +
* TRANSLATION: Fix browseui bulgarian resource filename. ([[Sylvain Petreolle]])
 
* Fix a bug in FLOATOBJ_DivLong ([[Timo Kreuzer]])
 
* Fix a bug in FLOATOBJ_DivLong ([[Timo Kreuzer]])
 +
* Update rapps database ([[Daniel Reimer]])
 
* Use if, instead of switch to handle flags in XFORMOBJ_bXformFixPoints ([[Timo Kreuzer]])
 
* Use if, instead of switch to handle flags in XFORMOBJ_bXformFixPoints ([[Timo Kreuzer]])
 
* Define XFORMOBJ to EXFORMOBJ, a stack object that links to the matrix ([[Timo Kreuzer]])
 
* Define XFORMOBJ to EXFORMOBJ, a stack object that links to the matrix ([[Timo Kreuzer]])
Line 1,149: Line 1,515:
 
* Merge resource file related changes from cmake branch part 1 ([[Timo Kreuzer]])
 
* Merge resource file related changes from cmake branch part 1 ([[Timo Kreuzer]])
 
* Merge resource file related changes from cmake branch part 2 ([[Timo Kreuzer]])
 
* Merge resource file related changes from cmake branch part 2 ([[Timo Kreuzer]])
 +
* fix taskmgr build ([[Timo Kreuzer]])
 +
* Fix build of shlwapi ([[Timo Kreuzer]])
 
* Edijs: Properly load window size and position. ([[Aleksey Bragin]]; {{bug|5872}})
 
* Edijs: Properly load window size and position. ([[Aleksey Bragin]]; {{bug|5872}})
 +
* Merge CRT changes from cmake branch (mainly MSVC compilation fixes) ([[Timo Kreuzer]])
 
* Handle BITMAPV4HEADER and BITMAPV5HEADER, when creating a DIB palette. Detect PAL_RGB like done with PAL_BGR in PALETTE_AllocPalette (optimization). ([[Timo Kreuzer]])
 
* Handle BITMAPV4HEADER and BITMAPV5HEADER, when creating a DIB palette. Detect PAL_RGB like done with PAL_BGR in PALETTE_AllocPalette (optimization). ([[Timo Kreuzer]])
 
* Fixes pink icons. ([[Timo Kreuzer]])
 
* Fixes pink icons. ([[Timo Kreuzer]])
 
* Remove some artifact from ARM build. ([[Pierre Schweitzer]])
 
* Remove some artifact from ARM build. ([[Pierre Schweitzer]])
 +
* Would it fix build? ([[Pierre Schweitzer]])
 
* Fix initialization of XLATEOBJ, when source and dest format are equal.  (Thomas; {{bug|5828}})
 
* Fix initialization of XLATEOBJ, when source and dest format are equal.  (Thomas; {{bug|5828}})
 
* Remove gexloTrivial, it was never used ([[Timo Kreuzer]])
 
* Remove gexloTrivial, it was never used ([[Timo Kreuzer]])
Line 1,158: Line 1,528:
 
* Properly set XO_TABLE ([[Timo Kreuzer]])
 
* Properly set XO_TABLE ([[Timo Kreuzer]])
 
* Set ppalDstDc in EXLATEOBJ_vInitXlateFromDCs ([[Timo Kreuzer]])
 
* Set ppalDstDc in EXLATEOBJ_vInitXlateFromDCs ([[Timo Kreuzer]])
 +
* In IntEngGradientFillRect, take the translate value into account, that we need when drawing happens on an intermediate surface.  (Thomas; {{bug|5805}})
 +
* Check if CombinedClip is NULL before accesing it ([[Giannis Adamopoulos]])
 +
* Should fix a crash with Download Master ([[Giannis Adamopoulos]])
 +
* compile gdidebug code as a seperate file and give it a seperate header ([[Timo Kreuzer]])
 +
* Fix a bug in GDIOBJ_LockObj, that would cause a deadlock, when an object was deleted while another thread was waiting to acquire the handle lock. ([[Timo Kreuzer]])
 +
* Fix a bug that caused problems when the user clicks in the caption of a window to activate it ([[Giannis Adamopoulos]])
 +
* Revert r50121 and r50154 ([[Giannis Adamopoulos]])
 +
* Fix combobox to show the drop down window correctly when the parent window is topmost ([[Giannis Adamopoulos]]; {{bug|5705}})
 +
* Revert 49767 on Pierre's request, which reverted this: ([[Johannes Anderwald]])
 +
* Added real implementation of SetLastError() (instead of forwarding to NTDLL) ([[Johannes Anderwald]])
 +
* Implemented BaseSetLastNTError() ([[Johannes Anderwald]])
 +
* Renamed Basep8BitStringToCachedUnicodeString() to Basep8BitStringToStaticUnicodeString() and sightly changed its implementation ([[Johannes Anderwald]])
 +
* Fixed implementation of LoadLibraryExA() & DisableThreadLibraryCalls() using those changes ([[Johannes Anderwald]])
 +
* This is matching w2k3 implementation. This is of course a WIP. ([[Johannes Anderwald]])
 +
* Add ros specific member cExclusiveLocks to THREADINFO to track number of acquired locks ([[Timo Kreuzer]])
 +
* Add functions/macros to check lock count ([[Timo Kreuzer]])
 +
* Move some definitions into gdidebug.h for global use ([[Timo Kreuzer]])
 +
* Fix broken GdiDbgHTIntegrityCheck ([[Timo Kreuzer]])
 +
* Add pre and post syscall hook functions (unused yet) ([[Timo Kreuzer]])
 +
* add tracing of exclusive gdi locks ([[Timo Kreuzer]])
 +
* add some asserts ([[Timo Kreuzer]])
 +
* NtGdiStretchDIBitsInternal: don't call NtGdiGetDCObject and NtGdiCreateCompatibleDC with a dc locked. These cases are not harmful, but generally Nt* and Gre* should never be called with an exclusive gdi lock held. Also don't return in failure case with the dc still locked. ([[Timo Kreuzer]])
 +
* NtGdiSelectBitmap. Don't exclusively lock the old bitmap. This could cause pool corruptions, when the share count reachted 0, the object was deleted and unlocked after that. Use InterlockedCompareExchange to check and exchange the new bitmaps dc. This is commented out, because it causes a lot of drawing problems. Do the referencing manually instead of calling DC_vSelectSurface. Use a shared reference instead of an exclusive lock for the new bitmap. add code for proper handling of DEFAULT_BITMAP, currently hacked due to restrictions in other parts of win32k. Fixes bug 5498 and probably a lot of other problems. ([[Timo Kreuzer]])
 +
* Remove unused class list pointer and clear the class registered flag. ([[James Tabor]])
 +
* Restore original patch 50154. ([[James Tabor]])
 +
* Fix crash with win wine test. Win test works on my tree here and hardware as well. ([[James Tabor]])
 +
* add code to register pre/post systemcall hooks. Its #if 0'ed to avoid unneccessary overhead. Can be enabled for debugging puposes. ([[Timo Kreuzer]])
 +
* Small readability improvement. ([[Timo Kreuzer]])
 +
* Create a new region covering the full desktop in UserRedrawDesktop instead of using Window->hrgnUpdate. Fixes "IntGdiCombineRgn requires hSrc2  != NULL" messages and redrawing issues on mode change. (Rafa≈; {{bug|5949}})
 +
* don't transform cordinates twice in GreExtTextOutW (Rafa≈; {{bug|4811}})
 +
* Fixes AbiWord toolbar (Rafa≈; {{bug|4811}})
 +
* Fix possible lock leak in failure case of NtGdiSetBoundsRect. Fixes a failed assertion spotted by r3ddr4g0n. ([[Timo Kreuzer]])
 +
* WDMAUD.DRV] ([[Johannes Anderwald]])
 +
* Set wave in pins into run state ([[Johannes Anderwald]])
 +
* Fixes hang of ReactOS sndrec32, though it crashes then instantly. Needs more investigation ([[Johannes Anderwald]])
 +
* Fix biCompression filed in the DIBSECTION structure, returned by BITMAP_GetObject. Fixes K-Meleon toobar. Kudos for the fix go to Rafa≈Ç Harabie≈Ñ.  ([[Timo Kreuzer]]; {{bug|5940}})
 +
* In BITMAP_CopyBitmap, also "copy" the palette of the source bitmap, instead of assuming the one created by GreCreateBitmapEx matches the bitmap bits we have copied. ([[Timo Kreuzer]]; {{bug|5902}})
 +
* Fixes broken colors on the firefox firstrun page ([[Timo Kreuzer]]; {{bug|5902}})
 +
* In NtGdiGetDIBitsInternal use a shared lock for the bitmaps and provide background colors when initializing the XLATEOBJ. This fixes mono bitmaps passed to GetDIBits. (no it does not fix pink icons in VLC) ([[Timo Kreuzer]])
 +
* In BuildDIBPalette don't handle 15bpp, its not valid. and 16 bpp is 555, this is documented in MSDN. ([[Timo Kreuzer]])
 +
* mark surface as not selected in DC_vSelectSurface when its released from a DC ([[Timo Kreuzer]])
 +
* NtGdiSelectBitmap:  ([[Timo Kreuzer]])
 +
* Don't allow selecting a bitmap into a dc that is already selected! ([[Timo Kreuzer]])
 +
* Use DC_vSelectSurface instead of manually selecting ([[Timo Kreuzer]])
 +
* set the DC size based on bitmap size ([[Timo Kreuzer]])
 +
* remove duplicate prototype ([[Jérôme Gardou]])
 +
* use RGB macro where possible ([[Jérôme Gardou]])
 +
* we create BGR palette for RGB DIB sections, let's do the other way around ([[Jérôme Gardou]])
 +
* simplify overcomplicated IntGetDIBColorTable ([[Jérôme Gardou]])
 +
* Add a first implementation of IntRealizePalette ([[Jérôme Gardou]])
 +
* No, it's not the VLC icons bugfix ([[Jérôme Gardou]])
 +
* addendum to r50928: 24 and 32bpp BI_RGB bitmaps are BGR ([[Timo Kreuzer]])
 +
* Fix calculating of ScanLines and source point in NtGdiGetDIBitsInternal for top-down bitmaps to more closely mimic win xp behavior. (Timo - high five for your test app) ([[Kamil Hornicek]]; {{bug|5524}})
 +
* Raster operations in user mode are on higher bytes, whereas they are on lower bytes for drivers. Try to clarify this situation. ([[Jérôme Gardou]])
 +
* Add sanity check about what was said previously. ([[Jérôme Gardou]])
 +
* Implement masking in EngBitBlt ([[Jérôme Gardou]])
 +
* Rewrite NtGdiMaskBlt accordingly ([[Jérôme Gardou]])
 +
* Realize the palette when selecting it into a device DC. ([[Jérôme Gardou]])
 +
* When applying raster operation, do so only on 24 bits, we don't support alpha channel in win32k ([[Jérôme Gardou]])
 +
* This fixes VLC pink icons, Timo's MaskBlt tests and probably a lot of other things. ([[Jérôme Gardou]])
 +
* Do raster operation on 4 bytes instead of only 3. Fixes ... ([[Timo Kreuzer]])
 +
* maybe noone has noticed yet ;-) ([[Timo Kreuzer]])
 +
* Silence some DPRINTS ([[Timo Kreuzer]])
 +
* Dismiss alpha channel when creating a solid brush. ([[Jérôme Gardou]])
 +
* Finally fixes VLC icons and numerous winetests. ([[Jérôme Gardou]])
 +
* only lock DC if asked to in NtGdiSetDIBits. ([[Jérôme Gardou]])
 +
* in 1bpp bitmaps, 0 means white. Take that into in SetDIBits ([[Jérôme Gardou]])
 +
* fix a fixme in XLATEOBJ implementation ([[Jérôme Gardou]])
 +
* remove useless field from ROS_DCINFO ([[Jérôme Gardou]])
 +
* Fixes fox audio player GUI :-) Enjoy! ([[Jérôme Gardou]])
 +
* Revert part of r50941. First its architecturally unclean to lock a DC in a USER function, 2nd its a bug to keep the lock while sending a message. ([[Timo Kreuzer]])
 +
* Acquire ownership of monitor region before deleting it. ([[Timo Kreuzer]])
 +
* Fix the select of the clip region for a window. Apologies to Rafal Harabien select works like select, also don't ([[James Tabor]])
 +
* assume the original author is always right. ([[James Tabor]])
 +
* Missed the clearing of the clip region for the window at the end of of its life. The mouse is looking for the window, doing so, scanning through all of them, even the ones that are at deaths door. ([[James Tabor]])
 +
* Add A function to dump all locked handles and call it when an assertion about 0 locks fails. ([[Timo Kreuzer]])
 +
* add dumping of locked handles to missing places. ([[Timo Kreuzer]])
 +
* Silence a DPRINT ([[Timo Kreuzer]])
 +
* Unlock the font in PATH_ExtTextOut. Fixes a failed assertion, when running google earth. ([[Timo Kreuzer]])
 +
* Fix a crash in WidenPath, tested with Area.exe. ([[James Tabor]])
 +
* Fix the RLE hack (partly) ([[Timo Kreuzer]])
 +
* Use GreCreateBitmapEx instead of EngCreateBitmap in NtGdiSetDIBitsToDeviceInternal, so that the RLE hack works. Fix initialization of XLATEOBJ. ([[Timo Kreuzer]])
 +
* Update all brushes in DC_vPrepareDCsForBlit. This allows us to simplify the code elsewhere. ([[Timo Kreuzer]])
 +
* clip the destination rect against the bounds of the destination and source surface. Fixes a crash of gdi32_winetest bitmap that occurs as soon as IntCreateCompatibleBitmap is fixed. Other Eng* code needs to be checked as well. ([[Timo Kreuzer]])
 +
* Fix IntCreateCompatibleBitmap, previously when the given DC was a memory DC with a dibsection selected, the function would only work if the dibsection was <= 8 bpp. ([[Timo Kreuzer]])
 +
* Fix a warning about an uninitialized variable :D ([[Timo Kreuzer]])
 +
* Fix calculation of dest rect in IntSetDIBits ([[Timo Kreuzer]]; {{bug|5886}})
 +
* Rewrite NtGdiStretchDIBitsInternal. It now calls NtGdiSetDIBitsToDeviceInternal in case of SRCCOPY and no stretching and NtGdiCreateDIBitmapInternal + IntEngStretchBlt in the default case. This fixes RLE compressed dibs. ([[Timo Kreuzer]]; {{bug|5886}})
 +
* The code isn't yet perfect, Windows behaviour is pretty complex, especially in regard to topdown/bottomup DIBs and the whole code needs to be rewritten. It will cause one more failed bitmap test, but another one that was formerly only passing with legacy 9x behaviour now behaves correctly. ([[Timo Kreuzer]]; {{bug|5886}})
 +
* Fix an uncovered bug. This should fix coolplayer and winamp type applications. Does not fix drawing issues. ([[James Tabor]])
 +
* Move the drag detection routine to kernel space, this will decrease the number of kernel calls that is noticeable with slower systems running an emulator. ([[James Tabor]])
 +
* In WH_KEYBOARD hook, lparam isn't a pointer to KBDLLHOOKSTRUCT ([[Giannis Adamopoulos]]; {{bug|5991}})
 +
 +
==== BZIP2 ====
  
 
=== 3RDPARTY ===
 
=== 3RDPARTY ===
  
 
== LIB ==
 
== LIB ==
 +
* update bzip2 library to 2.06 ([[Christoph von Wittich]])
 +
 
==== FREETYPE ====
 
==== FREETYPE ====
 +
 
===== INCLUDE =====
 
===== INCLUDE =====
 +
 
====== FREETYPE ======
 
====== FREETYPE ======
 +
 
======= CONFIG =======
 
======= CONFIG =======
 
* Instead of having 4 template rbuild configuration files that must be kept in-sync, maybe there should be a generic one that they all inherit from? ([[sir_richard]])
 
* Instead of having 4 template rbuild configuration files that must be kept in-sync, maybe there should be a generic one that they all inherit from? ([[sir_richard]])
Line 1,179: Line 1,648:
  
 
==== ICU4ROS ====
 
==== ICU4ROS ====
 +
* Silence a warning on MSVC ([[Timo Kreuzer]])
  
 
==== MINGW ====
 
==== MINGW ====
Line 1,200: Line 1,670:
 
* Implement wave reset routine, fixes audio recording on ReactOS SndRec, AudaCity etc. Also fixes random hang in WinAmp when skipping audio bytes ([[Johannes Anderwald]])
 
* Implement wave reset routine, fixes audio recording on ReactOS SndRec, AudaCity etc. Also fixes random hang in WinAmp when skipping audio bytes ([[Johannes Anderwald]])
 
* Implement wave pausing / restarting, should lead to smoother playback ([[Johannes Anderwald]])
 
* Implement wave pausing / restarting, should lead to smoother playback ([[Johannes Anderwald]])
 +
* Check if there is a reset request in progress while the wave thread is active. In that case exit the wave buffer commiting activity ([[Johannes Anderwald]])
 +
* In the reset routine, perform an alertable wait in order to make the apc io completion complete ([[Johannes Anderwald]])
 +
* Store the internal state if an audio stream has been stopped ([[Johannes Anderwald]])
 +
* Construct a thread when WODM_RESTART is received. This thread then triggers performs a callback to the wave thread, which finally restarts playback ([[Johannes Anderwald]])
 +
* Only start the wave thread when playback is active (not paused by WODM_PAUSE) ([[Johannes Anderwald]])
 +
* Fixes playback in Winamp 5.601 despite graphical issues ([[Johannes Anderwald]])
 +
* Tested in Vbox 4.0 + 512MB RAM + Winamp 5.601 ([[Johannes Anderwald]])
  
 
===== MMIXER =====
 
===== MMIXER =====
Line 1,229: Line 1,706:
 
=== LSALIB ===
 
=== LSALIB ===
 
* Fix compiler warnings for AMD64 build. ([[Eric Kohl]])
 
* Fix compiler warnings for AMD64 build. ([[Eric Kohl]])
 +
 +
=== FONTS ===
 +
 +
== MEDIA ==
 +
* Update RedHat Liberation Fonts to 1.06 ([[Amine Khaldi]]; {{bug|5632}})
 +
* Update Tahoma Fonts To Wine HEAD ([[Amine Khaldi]]; {{bug|5632}})
 +
* Update DejaVu Fonts Documentation To 2.31 ([[Amine Khaldi]]; {{bug|5632}})
 +
* 5633,5634 for more details. ([[Amine Khaldi]]; {{bug|5632}})
  
 
=== INF ===
 
=== INF ===
Line 1,247: Line 1,732:
 
* disable deprecated amd64 code ([[Timo Kreuzer]])
 
* disable deprecated amd64 code ([[Timo Kreuzer]])
 
* use MiFillSystemPageDirectory only for 2 paging levels ([[Timo Kreuzer]])
 
* use MiFillSystemPageDirectory only for 2 paging levels ([[Timo Kreuzer]])
 +
* Fixes amd64 build ([[Timo Kreuzer]])
 +
* remove svn:merginfo ([[Timo Kreuzer]])
 
* Alternative workaround for pentium lock errata: Instead of burdening the page fault handler, just mark the IDT page as Write-Through if the bug is present. According to http://www.rcollins.org/Errata/Dec97/F00FBug.html it shall prevent the lock up. Please test. Dedicated to elhoir. ([[Timo Kreuzer]])
 
* Alternative workaround for pentium lock errata: Instead of burdening the page fault handler, just mark the IDT page as Write-Through if the bug is present. According to http://www.rcollins.org/Errata/Dec97/F00FBug.html it shall prevent the lock up. Please test. Dedicated to elhoir. ([[Timo Kreuzer]])
 
* Fix ARC names accordingly ([[Pierre Schweitzer]])
 
* Fix ARC names accordingly ([[Pierre Schweitzer]])
 +
* Fix indentation. No code changes. ([[Eric Kohl]])
 
* Don't ignore IopCreateArcNames() return while booting. ([[Pierre Schweitzer]])
 
* Don't ignore IopCreateArcNames() return while booting. ([[Pierre Schweitzer]])
 
* At the moment, it's just returning STATUS_SUCCES but it will be changed later. ([[Pierre Schweitzer]])
 
* At the moment, it's just returning STATUS_SUCCES but it will be changed later. ([[Pierre Schweitzer]])
Line 1,290: Line 1,778:
 
* Add MmProtectToValue ([[Timo Kreuzer]])
 
* Add MmProtectToValue ([[Timo Kreuzer]])
 
* Fix a typo ([[Timo Kreuzer]])
 
* Fix a typo ([[Timo Kreuzer]])
 +
* Minor stuff. ([[Pierre Schweitzer]])
 +
* Here is your commit Timo ;) ([[Pierre Schweitzer]])
 
* Fix a bug. ([[Timo Kreuzer]])
 
* Fix a bug. ([[Timo Kreuzer]])
 
* Initialize the Zero variable ([[Timo Kreuzer]])
 
* Initialize the Zero variable ([[Timo Kreuzer]])
 
* Don't corrupt the Color value in case we didn't have any page on MmZeroedPageListHead. ([[Timo Kreuzer]])
 
* Don't corrupt the Color value in case we didn't have any page on MmZeroedPageListHead. ([[Timo Kreuzer]])
 +
* Fixes boot. ([[Timo Kreuzer]])
 
* Use appropriated macros ([[Pierre Schweitzer]])
 
* Use appropriated macros ([[Pierre Schweitzer]])
 
* Simplify code, which should bring some fixing ([[Pierre Schweitzer]])
 
* Simplify code, which should bring some fixing ([[Pierre Schweitzer]])
 +
* Sync atl, hlink, shdocvw, wtsapi32 with Wine 1.3.7 ([[Dmitry Chapyshev]])
 
* Fix potential buffer overflow ([[Pierre Schweitzer]])
 
* Fix potential buffer overflow ([[Pierre Schweitzer]])
 
* Get back INIT_FUNCTION on lassy's polite request. ([[Pierre Schweitzer]])
 
* Get back INIT_FUNCTION on lassy's polite request. ([[Pierre Schweitzer]])
Line 1,317: Line 1,809:
 
* Add support of per file object filter context to IopDeleteFile() ([[Pierre Schweitzer]])
 
* Add support of per file object filter context to IopDeleteFile() ([[Pierre Schweitzer]])
 
* As ReactOS doesn't support file objects extensions, this doesn't work (blame Aleksey) - yet ([[Pierre Schweitzer]])
 
* As ReactOS doesn't support file objects extensions, this doesn't work (blame Aleksey) - yet ([[Pierre Schweitzer]])
 +
* Forgotten comments... ([[Pierre Schweitzer]])
 +
* That's not because ARM will rule the world on a day that you're obliged to break x86 build. ([[Pierre Schweitzer]])
 +
* Fixed build. Will it work? Only God knows. ([[Pierre Schweitzer]])
 +
* Fix the fix, ie fix x86. ([[Pierre Schweitzer]])
 +
* Everything should work now ~ ([[Pierre Schweitzer]])
 +
* Never read code & commit while being tired... ([[Pierre Schweitzer]])
 
* Implement MemorySectionName case for NtQueryVirtualMemory. Protect buffer access with SEH. (Samuel; {{bug|5753}})
 
* Implement MemorySectionName case for NtQueryVirtualMemory. Protect buffer access with SEH. (Samuel; {{bug|5753}})
 
* revert accidental change from r49499 ([[Timo Kreuzer]])
 
* revert accidental change from r49499 ([[Timo Kreuzer]])
Line 1,352: Line 1,850:
 
* It makes finding the related file harder, especially when the file is named differently then the description or when multiple files have the same tag ([[Timo Kreuzer]])
 
* It makes finding the related file harder, especially when the file is named differently then the description or when multiple files have the same tag ([[Timo Kreuzer]])
 
* It effectively breaks Coverity scans ([[Timo Kreuzer]])
 
* It effectively breaks Coverity scans ([[Timo Kreuzer]])
 +
* Sync xcopy, iexplore, winhlp32, wordpad and write to wine 1.3.10 ([[Daniel Reimer]])
 
* Make definitions of ExpChangeRundown, ExpChangePushlock and ExpSetRundown 64 bit safe (have one portable definition and use it accordingly) ([[Timo Kreuzer]])
 
* Make definitions of ExpChangeRundown, ExpChangePushlock and ExpSetRundown 64 bit safe (have one portable definition and use it accordingly) ([[Timo Kreuzer]])
 +
* Apply consistent formatting to CcMapData ([[Pierre Schweitzer]])
 
* Hoover a bit in CC part 1. Should make MM happier. ([[Pierre Schweitzer]])
 
* Hoover a bit in CC part 1. Should make MM happier. ([[Pierre Schweitzer]])
 
* But MS fastfat driver not yet ([[Pierre Schweitzer]])
 
* But MS fastfat driver not yet ([[Pierre Schweitzer]])
Line 1,374: Line 1,874:
 
* Improved * WC handling for both FsRtlIsNameInExpression & FsRtlIsDbcsInExpression ([[Pierre Schweitzer]])
 
* Improved * WC handling for both FsRtlIsNameInExpression & FsRtlIsDbcsInExpression ([[Pierre Schweitzer]])
 
* This fixes all failing tests in kmtest ([[Pierre Schweitzer]])
 
* This fixes all failing tests in kmtest ([[Pierre Schweitzer]])
 +
* Alex messed up. (Rafal)
 +
* Fix by  (Rafal)
 +
* No need to use ULONG when dealing with strings, USHORT is enough. This makes MSVC warnings silent. ([[Pierre Schweitzer]])
 +
* Fix a really nasty bug in FsRtlIsHpfsDbcsLegal() ([[Pierre Schweitzer]])
 +
* Fix typo. ([[Sylvain Petreolle]])
 +
* Add support for debug pre/post syscall hooks, that can be registered from win32k. They only exist on DBG versions. ([[Timo Kreuzer]])
 +
* Halfplement (win32 only) ProcessWow64Information case in NtQueryInformationProcess.  (Samuel; {{bug|5916}})
 +
* One-line fix for FsRtlIs*InExpression(). This fixes failing tests, but not overrun. ([[Pierre Schweitzer]])
 +
* Added some breaks to reach more quickly the end ([[Pierre Schweitzer]])
 +
* Reverted changes commited to largemcb.c ([[Pierre Schweitzer]])
 +
* They weren't intended to be commited ([[Pierre Schweitzer]])
 +
* Apply r50873 on FsRtlIsNameInExpression() ([[Pierre Schweitzer]])
 +
* Fix compilation with _WINKD_=1 ([[Hervé Poussineau]])
 +
* Fix a serious bug, where NtAllocateVirtualMemory could allocate memory user mode memory above MmHighestUserAddress up to MmSystemRangeStart - 1, which is a no-access area. ([[Timo Kreuzer]])
 +
* Fix aborting of backtraces ([[Timo Kreuzer]])
 +
* Promote service start failures from TRACE to ERR. ([[Aleksey Bragin]]; {{bug|5924}})
 +
* Print supported CPU features. ([[Jérôme Gardou]])
 +
* Simplify detection of non working but claimed SYSENTER support for intel processors ([[Jérôme Gardou]])
 +
* Workaround a virtualbox "feature" : claim that SYSENTER isn't supported despite the fact that it is. ([[Jérôme Gardou]])
 +
* Fix hang on registration of mshtml.dll in 2nd stage when using Virtualbox. ([[Jérôme Gardou]])
 +
* shrink cpu features output. ([[Jérôme Gardou]])
 +
* Add reference for the detection of non SYSENTER aware but claiming so CPUs detection ([[Jérôme Gardou]])
 +
* Beatify cpu supported features output once and for all ([[Jérôme Gardou]])
 +
* DPRINT1 is not printf... ([[Jérôme Gardou]])
 +
* Implemented FstubFixupEfiPartition(): ([[Pierre Schweitzer]])
 +
* Purpose is to let ReactOS handle realistic partitions length in case of an EFI/GPT protective MBR. ([[Pierre Schweitzer]])
 +
* Indeed, when formatting a disk to GPT, you add a protective MBR that contains a fake partition entry, with type 0xEE having the following property: its size is set to maximum allocatable size in MBR. ([[Pierre Schweitzer]])
 +
* In that case, if disk is small, you may go beyond disk size. ([[Pierre Schweitzer]])
 +
* This is why a fix to partition length may be needed when re-reading partition entry. ([[Pierre Schweitzer]])
 +
* This is the way ReactOS creates protective MBR. ([[Pierre Schweitzer]])
 +
* You may find some more information here: http://msdn.microsoft.com/en-us/windows/hardware/gg463525 ([[Pierre Schweitzer]])
 +
* Fixed xHalIoReadPartitionTable(): ([[Pierre Schweitzer]])
 +
* Allocate a buffer that has the proper size (instead of allocating a buffer which is too big). Especially since this leads to partial init only some lines after. ([[Pierre Schweitzer]])
 +
* Remove redundant & useless affectation. ([[Pierre Schweitzer]])
 +
* Check/fix 0xEE partition length in case of an EFI/GPT protective MBR (see upper point). ([[Pierre Schweitzer]])
 +
* Implemented FstubTranslatorNull, FstubTranslateResource, FstubTranslateRequirement, xHalGetInterruptTranslator. ([[Pierre Schweitzer]])
 +
* In other words: please welcome interrupt translator in ReactOS. ([[Pierre Schweitzer]])
 +
* It's not used yet. ([[Pierre Schweitzer]])
 +
* Add most of the missing HAL stubs for both public & private dispatch tables ([[Pierre Schweitzer]])
 +
* Revert r51016 that quite magically breaks Qemu test bot (Registry corruption?). ([[Pierre Schweitzer]])
 +
* Everything was (and is still fine) on VirtualBox. ([[Pierre Schweitzer]])
 +
* It will be put back online once the issue will have been fixed. ([[Pierre Schweitzer]])
 +
* Revert r51017 that was reverting r51016. ([[Pierre Schweitzer]])
 +
* In fact, it seems that cmlib assert error, whatever that eats randomly doesn't come from software issue inside ReactOS, but from a build issue. ([[Pierre Schweitzer]])
 +
* Indeed, as you may see in the different tests I performed it shows that the same build produces the same failure, again and again. But, new build shows that there is no assert anylonger with that commit. ([[Pierre Schweitzer]])
 +
* Don't ask me why or how it happens, I just don't get it. ([[Pierre Schweitzer]])
 +
* But most of the time, it works, no one knows why ("as usual" (tm)). But it's cool. ([[Pierre Schweitzer]])
 +
* Someone from BE team and/or buildslaves managers should take a serious look at this issue. ([[Pierre Schweitzer]])
 +
* Just in case: if that commit re-hits cmlib assert, don't blame it immediatly, just commit something else, and see whether trunk is still broken. ([[Pierre Schweitzer]])
 +
* But, as you can see in testman, we have now test results for r51016 ;-) ([[Pierre Schweitzer]])
  
 
=== IO ===
 
=== IO ===
Line 1,387: Line 1,937:
 
== SUBSYSTEMS ==
 
== SUBSYSTEMS ==
 
* CSRSS was started with a free address space, and was able to map 0xA0000 into it by luck, because the ReactOS Mm allocator picks address ranges randomly, and it somehow managed to avoid the low 1MB addresses. Were this algorithm to change, or perhaps, were we to implement VADs for VM allocations, the 0xA0000 region might already be allocated (by an early-process-initialization allocation, such as the heap). This is what the flag referenced above was designed for, but it was not used. Using this flag, on the other hand, now makes CSRSS fail, because it attempts to map the RAM into 0xA0000, which fails since you can map a section on top of reserved memory. To work around this Brobdingnagian annoyance, CSRSS simply releases the first MB of memory that SMSS has nicely reserved for it, and then proceeds with the mapping. This fixes the issue of getting 0xA0000 by luck and now guarantees it can be mapped. ([[sir_richard]])
 
* CSRSS was started with a free address space, and was able to map 0xA0000 into it by luck, because the ReactOS Mm allocator picks address ranges randomly, and it somehow managed to avoid the low 1MB addresses. Were this algorithm to change, or perhaps, were we to implement VADs for VM allocations, the 0xA0000 region might already be allocated (by an early-process-initialization allocation, such as the heap). This is what the flag referenced above was designed for, but it was not used. Using this flag, on the other hand, now makes CSRSS fail, because it attempts to map the RAM into 0xA0000, which fails since you can map a section on top of reserved memory. To work around this Brobdingnagian annoyance, CSRSS simply releases the first MB of memory that SMSS has nicely reserved for it, and then proceeds with the mapping. This fixes the issue of getting 0xA0000 by luck and now guarantees it can be mapped. ([[sir_richard]])
 +
* Dereference all threads, when a process is terminated. Fixes ghost processes in taskmgr!  (Rafal; {{bug|1567}})
  
 
=== WIN32 ===
 
=== WIN32 ===
Line 1,394: Line 1,945:
 
===== WIN32CSR =====
 
===== WIN32CSR =====
 
* Move PrivateCsrssManualGuiCheck from user32 to win32csr ([[Giannis Adamopoulos]])
 
* Move PrivateCsrssManualGuiCheck from user32 to win32csr ([[Giannis Adamopoulos]])
 +
* Add a new API GetTempFile() that returns an identifier to be used for creating temporary files. ([[Pierre Schweitzer]])
 +
* This API should be in basesrv.dll ([[Pierre Schweitzer]])
 +
* Silence CsrGetTempFile() debug ([[Pierre Schweitzer]])
 +
* Fix zero termination of harderror string parameters, when they are ansi. ([[Timo Kreuzer]]; {{bug|5983}})
  
 
== TOOLS ==
 
== TOOLS ==
Line 1,399: Line 1,954:
 
=== RBUILD ===
 
=== RBUILD ===
 
* Fix "format not a string literal and no format arguments" build warnings. ([[Eric Kohl]])
 
* Fix "format not a string literal and no format arguments" build warnings. ([[Eric Kohl]])
 +
 +
=== WIDL ===
 +
* Sync to Wine-1.3.4 ([[Eric Kohl]])
 +
* Bugfix: The switchtype attribute of non-encapsulated unions was not  propagated to a type but only to its aliases. ([[Eric Kohl]])
 +
* Fix Unix build. ([[Eric Kohl]])
 +
* Revert r49085 and r49086. ([[Eric Kohl]])
 +
* Update widl to version 1.3.4. ([[Eric Kohl]])
 +
* Update to Wine-1.3.9. ([[Aleksey Bragin]])
 +
* Important note: Syntax of widl invocation changed slightly, so take this into account when merging to cmake branch. ([[Aleksey Bragin]])
  
 
== Uncategorized ==
 
== Uncategorized ==
Line 1,404: Line 1,968:
 
=== 0 ===
 
=== 0 ===
 
* Use the full name we get from SearchForExecutable when building the command line for CreateProcess so we get proper name in argv later. ([[Kamil Hornicek]])
 
* Use the full name we get from SearchForExecutable when building the command line for CreateProcess so we get proper name in argv later. ([[Kamil Hornicek]])
 +
 +
=== _EX ===
 +
* Implement the obsolete functions CM_Query_Remove_SubTree and CM_Remove_SubTree. ([[Eric Kohl]])
 +
* Implement CM_Get_Hardware_Profile_InfoA/W. ([[Eric Kohl]])
 +
* Implement CM_Query_And_Remove_SubTreeA/W and CM_Request_Device_EjectA/W. ([[Eric Kohl]])
 +
* Implement CM_Register_Device_InterfaceA/W and CM_Unregister_Device_InterfaceA/W. ([[Eric Kohl]])
 +
* Implement CM_Get_Device_Interface_ListA/W and CM_Get_Device_Interface_List_SizeA/W. ([[Eric Kohl]])
 +
* Update Ukraianian translation by Sakara Eugene ([[Dmitry Chapyshev]])
 +
* Implement CM_Query_Arbitrator_Free_Data and CM_Query_Arbitrator_Free_Size. ([[Eric Kohl]])
 +
* Implement CM_Register_Device_Driver. ([[Eric Kohl]])
  
 
=== ADVAPI32_LSASRV ===
 
=== ADVAPI32_LSASRV ===
Line 1,414: Line 1,988:
  
 
=== ARMDDK ===
 
=== ARMDDK ===
 +
* Oh, right, forgot how this was laid out. should fix ARM build. ([[sir_richard]])
 
* Define some spinlock functions. ([[sir_richard]])
 
* Define some spinlock functions. ([[sir_richard]])
  
Line 1,423: Line 1,998:
 
* Change the macros to prefix the labels with Nt or Zw depending on whether we build usermode or kernel mode stubs ([[Timo Kreuzer]])
 
* Change the macros to prefix the labels with Nt or Zw depending on whether we build usermode or kernel mode stubs ([[Timo Kreuzer]])
 
* Create zw.S using the macros ([[Timo Kreuzer]])
 
* Create zw.S using the macros ([[Timo Kreuzer]])
 +
* try to fix build. ([[Timo Kreuzer]])
 +
* How did it work before? Probably by chance. "As usual"(tm) ([[Timo Kreuzer]])
  
 
=== CLASSPNP_CDROM_NEW ===
 
=== CLASSPNP_CDROM_NEW ===
Line 1,432: Line 2,009:
 
* Open a context menu, when a task is right clicked. (greenie; {{bug|4671}})
 
* Open a context menu, when a task is right clicked. (greenie; {{bug|4671}})
 
* Implement resizing the work area. (greenie; {{bug|5846}})
 
* Implement resizing the work area. (greenie; {{bug|5846}})
 +
 +
=== FORMATTING ===
 +
* Apply consistent indentation of 4 spaces and ansi style formatting. ([[Timo Kreuzer]])
 +
* Remove the long GPL header ([[Timo Kreuzer]])
 +
* Fix formatting in message.c ([[Giannis Adamopoulos]])
 +
* Replace big file header with small header ([[Timo Kreuzer]])
 +
* apply consistent indentation of 4 spaces ([[Timo Kreuzer]])
 +
* No code change ([[Pierre Schweitzer]])
 +
* Apply indentation of 4 spaces. ([[Timo Kreuzer]])
 +
* Apply indentation of 4 spaces. ([[Timo Kreuzer]])
 +
* fix formatting. No code change ([[Jérôme Gardou]])
 +
* fix dibobj.c, to please pigglesworth ([[Jérôme Gardou]])
 +
* user32/edit.c: Sync formatting changes from wine head, removes some unneccessary casts, no code actual change. ([[Timo Kreuzer]])
  
 
=== FREELDR_NTFS ===
 
=== FREELDR_NTFS ===
Line 1,477: Line 2,067:
 
* So, the glorious moment for a new heap manager, which is (to remind you) a totally new heap manager, resembling real NT heap manager, based on data structures similar to Windows 2003 and Vista+'s heap structures, supporting advanced heap flags (e.g. useful for debugging), having substantially lower fragmentation rates (and thus speed and reliability), having native support for user-defined flags and user-defined values, also native support for a custom commit routine, which is very important for trunk's win32 subsystem. It also reserves, commits, decommits and frees memory on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary. Not to say about support for per process heaps, with a proper lock, and a further support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions. ([[Aleksey Bragin]])
 
* So, the glorious moment for a new heap manager, which is (to remind you) a totally new heap manager, resembling real NT heap manager, based on data structures similar to Windows 2003 and Vista+'s heap structures, supporting advanced heap flags (e.g. useful for debugging), having substantially lower fragmentation rates (and thus speed and reliability), having native support for user-defined flags and user-defined values, also native support for a custom commit routine, which is very important for trunk's win32 subsystem. It also reserves, commits, decommits and frees memory on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary. Not to say about support for per process heaps, with a proper lock, and a further support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions. ([[Aleksey Bragin]])
 
* Yeah, I'm not a fun person :D ([[Aleksey Bragin]])
 
* Yeah, I'm not a fun person :D ([[Aleksey Bragin]])
 +
* Update the rapps database. ([[Daniel Reimer]])
 
* Fix a typo (assignment) in the ASSERT, spotted by Johannes Anderwald. ([[Aleksey Bragin]])
 
* Fix a typo (assignment) in the ASSERT, spotted by Johannes Anderwald. ([[Aleksey Bragin]])
 
* Peer review rocks. ([[Aleksey Bragin]])
 
* Peer review rocks. ([[Aleksey Bragin]])
Line 1,484: Line 2,075:
 
* In such a case however, it creates a Heap Entry and calls the helper before creating the next Heap Entry, which triggers this assert. ([[Roel Messiant]])
 
* In such a case however, it creates a Heap Entry and calls the helper before creating the next Heap Entry, which triggers this assert. ([[Roel Messiant]])
 
* FontSmoothing" system parameter registry key should be REG_SZ (as it is in Windows, and as other SPIs are). ([[Aleksey Bragin]])
 
* FontSmoothing" system parameter registry key should be REG_SZ (as it is in Windows, and as other SPIs are). ([[Aleksey Bragin]])
 +
* RtlpInsertUnCommittedPages: Don't rely on linked list data in an UCR Descriptor after destroying it. ([[Roel Messiant]])
 +
* No functionality change because the linked list data was still "as expected", but not something we want to rely on. ([[Roel Messiant]])
 +
* RtlpCreateUnCommittedRange: Fix a typo that caused the head of UCR Segment list of the Heap to be treated as an UCR Segment header. ([[Roel Messiant]])
 +
* Side effects of the typo: When this list wasn't empty, the (fake) UCR Segment it described was grown to contain more UCR descriptors. ([[Roel Messiant]])
 +
* Due to the data involved, this always happened to be the initial Heap Segment, which contains the Heap Header. ([[Roel Messiant]])
 +
* Writing the new UCR descriptors caused the Heap Header and trailing Heap Entries to be partially corrupted. ([[Roel Messiant]])
  
 
=== INTRIN ===
 
=== INTRIN ===
Line 1,495: Line 2,092:
 
=== NPFS_KERNEL32 ===
 
=== NPFS_KERNEL32 ===
 
* Switch back to the old pipe wait code but keep the new code in place (disabled). ([[Eric Kohl]])
 
* Switch back to the old pipe wait code but keep the new code in place (disabled). ([[Eric Kohl]])
 +
 +
=== NTDLL_LDR ===
 +
* DPH could be selectively enabled for a specific application by means of Image File Execution options. Commit a rewrite of LdrQueryImageFileExecution* APIs based on a quite old  (Alex)
 +
* This is a forced measure to commit first step of an ntdll/ldr rewrite. This particular commit should not introduce any regressions, because previously that code part just barely worked. (Alex)
 +
* Don't try to free a pointer allocated on stack. ([[Aleksey Bragin]]; {{bug|4751}})
  
 
=== NTOS ===
 
=== NTOS ===
Line 1,565: Line 2,167:
 
* The modified page writer should run at a high priority such as 27, not in idle mode at priority 1 -- otherwise dirty pages never get flushed out. ([[sir_richard]])
 
* The modified page writer should run at a high priority such as 27, not in idle mode at priority 1 -- otherwise dirty pages never get flushed out. ([[sir_richard]])
 
* Reimplement MmGetFileNameForAddress, MmGetFileNameForSection, MmGetFileObjectForSection to also support ARM3 sections. Shouldn't affect anything other than the user-mode debugging support. ([[sir_richard]])
 
* Reimplement MmGetFileNameForAddress, MmGetFileNameForSection, MmGetFileObjectForSection to also support ARM3 sections. Shouldn't affect anything other than the user-mode debugging support. ([[sir_richard]])
 +
* Fix whitespace typo in comment (two spaces instead of one). ([[sir_richard]])
 +
* That's right. I'm not a fun person. ([[sir_richard]])
 +
* Build fix. ([[sir_richard]])
 
* High-level interface fixes to NtAllocateVirtualMemory/NtFreeVirtualMemory: ([[sir_richard]])
 
* High-level interface fixes to NtAllocateVirtualMemory/NtFreeVirtualMemory: ([[sir_richard]])
 
* Validate MEM_LARGE_PAGES, MEM_PHYSICAL flags. Check for permission to use MEM_LARGE_PAGES. ([[sir_richard]])
 
* Validate MEM_LARGE_PAGES, MEM_PHYSICAL flags. Check for permission to use MEM_LARGE_PAGES. ([[sir_richard]])
Line 1,645: Line 2,250:
 
* Correctly initialize the colored page list heads and assert their validity. ([[sir_richard]])
 
* Correctly initialize the colored page list heads and assert their validity. ([[sir_richard]])
 
* Fix bugs in MiAllocateContiguousPages. Fixes an ASSERT Caemyr was seeting a lot (the cont-able ASSERT). ([[sir_richard]])
 
* Fix bugs in MiAllocateContiguousPages. Fixes an ASSERT Caemyr was seeting a lot (the cont-able ASSERT). ([[sir_richard]])
 +
* Part 1 of fixes: For some reason beyond me, I had abbreviated ([[Art Yerkes]])
 +
* MiCowSectionPage to always assume CoW rather than always not ([[Art Yerkes]])
 +
* CoW for cache sections.  ([[Art Yerkes]])
 +
* Make sure we're looking for cache type sections rather than ([[Art Yerkes]])
 +
* as we were in the branch) data file sections.  More needed. ([[Art Yerkes]])
 
* Fix another bug in the continuous memory allocation code, which would go off-by-one while looping the PFN entries for the allocation, and corrupt the PteFrame/PteAddress of an unrelated PFN entry. If this PFN was in the active lists, it would cause page table leaks and faults, if the page was on a free list, it would override the colored list backlink and corrupt the list, later causing unlinked pages to remain linked to the list. ([[sir_richard]])
 
* Fix another bug in the continuous memory allocation code, which would go off-by-one while looping the PFN entries for the allocation, and corrupt the PteFrame/PteAddress of an unrelated PFN entry. If this PFN was in the active lists, it would cause page table leaks and faults, if the page was on a free list, it would override the colored list backlink and corrupt the list, later causing unlinked pages to remain linked to the list. ([[sir_richard]])
 
* Fix a bug in MiRemovePageByColor which caused corruption of the page list and could lead to crashes, re-use of freed memory, assuming active memory was free, etc. ([[sir_richard]])
 
* Fix a bug in MiRemovePageByColor which caused corruption of the page list and could lead to crashes, re-use of freed memory, assuming active memory was free, etc. ([[sir_richard]])
Line 1,662: Line 2,272:
 
* Define the number of page directoty levels for ARM. ([[sir_richard]])
 
* Define the number of page directoty levels for ARM. ([[sir_richard]])
 
* Comment out some ARM3 code that won't be needed now that most of the x86 code is in C. ([[sir_richard]])
 
* Comment out some ARM3 code that won't be needed now that most of the x86 code is in C. ([[sir_richard]])
 +
* Fixes all but one build error. ([[sir_richard]])
 
* Add MiGetPteOffset for ARM. All of the kernel compiles, but does not link yet. ([[sir_richard]])
 
* Add MiGetPteOffset for ARM. All of the kernel compiles, but does not link yet. ([[sir_richard]])
 
* Fix up ARM code to match recent ARM3 changes. ([[sir_richard]])
 
* Fix up ARM code to match recent ARM3 changes. ([[sir_richard]])
Line 1,678: Line 2,289:
 
* Fix memory region size calculation in MemoryBasicInformation in certain cases. Spotted by Michael Martin. ([[Aleksey Bragin]])
 
* Fix memory region size calculation in MemoryBasicInformation in certain cases. Spotted by Michael Martin. ([[Aleksey Bragin]])
 
* Fix a typo in region size calculation of special memory areas, which unbreaks OllyDbg & co. Thanks Michael Martin for the hint. ([[Aleksey Bragin]]; {{bug|5692}})
 
* Fix a typo in region size calculation of special memory areas, which unbreaks OllyDbg & co. Thanks Michael Martin for the hint. ([[Aleksey Bragin]]; {{bug|5692}})
 
+
* Do the required flush when the last reference to a cache stripe is released. ([[Art Yerkes]])
* Do the required flush when the last reference to a cache stripe is released. The installer now completes given enough ram in NEWCC=1, and writes an understandable FS. There's at least one more problem preventing the resulting installation from booting however. ([[Art Yerkes]])
+
* The installer now completes given enough ram in NEWCC=1, and writes an ([[Art Yerkes]])
* Fix a bug in rmap where we were checking the next (unfortunately named current) rmap for a segment membership. ([[Art Yerkes]])
+
* understandable FS. There's at least one more problem preventing the ([[Art Yerkes]])
 +
* resulting installation from booting however. ([[Art Yerkes]])
 +
* Fix a bug in rmap where we were checking the next (unfortunately named ([[Art Yerkes]])
 +
* current) rmap for a segment membership. ([[Art Yerkes]])
 
* Fix a mistake in cache trim. ([[Art Yerkes]])
 
* Fix a mistake in cache trim. ([[Art Yerkes]])
* #ifdef detection of DirectMapping in section in NEWCC mode in page out. ([[Art Yerkes]])
+
* ifdef detection of DirectMapping in section in NEWCC mode in page out. ([[Art Yerkes]])
 
 
 
* Fix copypasta, thanks Victor! ([[Aleksey Bragin]])
 
* Fix copypasta, thanks Victor! ([[Aleksey Bragin]])
 
* Greatly simplify and fix the incorrect and overcomplicated if condition in IoIsOperationSynchronous(), based on MSDN description. Bug spotted, fix tested by Pierre. ([[Aleksey Bragin]])
 
* Greatly simplify and fix the incorrect and overcomplicated if condition in IoIsOperationSynchronous(), based on MSDN description. Bug spotted, fix tested by Pierre. ([[Aleksey Bragin]])
Line 1,740: Line 2,353:
 
* Remove M_PI constants from win32k ([[Timo Kreuzer]])
 
* Remove M_PI constants from win32k ([[Timo Kreuzer]])
 
* Try to fix a winetst crash. ([[Timo Kreuzer]])
 
* Try to fix a winetst crash. ([[Timo Kreuzer]])
 +
 +
=== NTOS_FSRTL ===
 +
* Implement parameters checking in FsRtlIsNameInExpressionPrivate. ([[Aleksey Bragin]])
 +
* Add two shortcuts for common wildcard invocations to make the function faster. ([[Aleksey Bragin]])
 +
* Second (main part of the function) is still under review. ([[Aleksey Bragin]])
 +
* Fix a typo, thanks Herve! ([[Aleksey Bragin]])
 +
* Remove unnecessary upcasing, thanks Pierre. ([[Aleksey Bragin]])
  
 
=== NTOS_MM ===
 
=== NTOS_MM ===
Line 1,748: Line 2,368:
 
* Don't lie about page protection in MiQueryAddressState. Fixes PDFCreator-alike bugs. ([[Aleksey Bragin]]; {{bug|5627}})
 
* Don't lie about page protection in MiQueryAddressState. Fixes PDFCreator-alike bugs. ([[Aleksey Bragin]]; {{bug|5627}})
 
* Don't access pfn database directly, there is a function for this. Thanks sir_richard. ([[Aleksey Bragin]])
 
* Don't access pfn database directly, there is a function for this. Thanks sir_richard. ([[Aleksey Bragin]])
 +
* An accompanying change to r50768. Fixes boot. ([[Aleksey Bragin]])
 +
 +
=== NTOSKNRL ===
 +
* For both FsRtlIsNameInExpression() & FsRtlIsDbcsInExpression(): ([[Pierre Schweitzer]]; {{bug|5923}})
 +
* As both UNICODE_STRING & ANSI_STRING might not be NULL-termined, don't attempt to read null char. ([[Pierre Schweitzer]]; {{bug|5923}})
 +
* This fixes potential buffer overruns. ([[Pierre Schweitzer]]; {{bug|5923}})
 +
* Then it fixes some (all?) 'TempPte.u.Long != 0' assertion failure. ([[Pierre Schweitzer]]; {{bug|5923}})
  
 
=== NTOSKRNL_MM ===
 
=== NTOSKRNL_MM ===
Line 1,758: Line 2,385:
 
=== NTOSKRNL_PPC ===
 
=== NTOSKRNL_PPC ===
 
* Fix index out of bounds ([[Pierre Schweitzer]])
 
* Fix index out of bounds ([[Pierre Schweitzer]])
 +
* Add wer.dll from Wine 1.3.7 ([[Dmitry Chapyshev]])
 +
* Sync gdiplus with Wine 1.3.7 ([[Dmitry Chapyshev]])
 
* Fix sizeof() wrong usage ([[Pierre Schweitzer]])
 
* Fix sizeof() wrong usage ([[Pierre Schweitzer]])
 
* Fix the fix, spotted by "ThFabba" on IRC ([[Pierre Schweitzer]])
 
* Fix the fix, spotted by "ThFabba" on IRC ([[Pierre Schweitzer]])
Line 1,775: Line 2,404:
 
=== PSDK_NDK ===
 
=== PSDK_NDK ===
 
* Fix KPCR/KIPCR for ARM to match x86 more closely. Add KeGetTickCount for ARM. ([[sir_richard]])
 
* Fix KPCR/KIPCR for ARM to match x86 more closely. Add KeGetTickCount for ARM. ([[sir_richard]])
 +
 +
=== RTL_AVL ===
 +
* Remove unnecessary field from TABLE_ENTRY_HEADER. Spotted by (the only in ReactOS?) user of RTL AVL tables - page heap. ([[Aleksey Bragin]])
 +
* Fix an inverted condition which resulted in incorrect assignment of NewElement var in RtlInsertElementGenericTableAvl(). ([[Aleksey Bragin]])
 +
* Zero out contents of a newly allocated AVL table node. ([[Aleksey Bragin]])
  
 
=== RTL_DPH ===
 
=== RTL_DPH ===
Line 1,792: Line 2,426:
 
* Implement a function for validating the page heap block. ([[Aleksey Bragin]])
 
* Implement a function for validating the page heap block. ([[Aleksey Bragin]])
 
* Implement RtlpPageHeapDestroy. Now we have two exported APIs ready: heap create and heap destroy. ([[Aleksey Bragin]])
 
* Implement RtlpPageHeapDestroy. Now we have two exported APIs ready: heap create and heap destroy. ([[Aleksey Bragin]])
* Branch for the 0.3.13 release ([[Colin Finck]])
+
* Use better names for validation information flags based on application verifier messages. ([[Aleksey Bragin]])
 +
* Implement a simple RtlpDphReportCorruptedBlock routine which just prints the problem description for now, without any additional info. ([[Aleksey Bragin]])
 +
* Connect debug page heap routines in the debug heap implementation, so they are going to be actually called now. ([[Aleksey Bragin]])
 +
* Implement delayed free queue initialization and freeing. ([[Aleksey Bragin]])
 +
* Implement allocating from the page heap along with all necessary helper routines. Some minor things are left though, so it doesn't work yet. ([[Aleksey Bragin]])
 +
* Change some defines names to more meaningful/readable. ([[Aleksey Bragin]])
 +
* Fix build. ([[Aleksey Bragin]])
 +
* Various fixes: set NodeToAllocate member of the heap root so it could be used lated in AVL allocation routine, initialize the AvailableAllocation list. ([[Aleksey Bragin]])
 +
* Comment out biased pointer checks for now, and fix biasing the AdjacencyEntry pointer (spotted by rafalh). ([[Aleksey Bragin]])
 +
* Zero-initialize VM allocation base. ([[Aleksey Bragin]])
 +
* Don't reserve VM, just commit it right away. This was a premature optimisation. Instead, retry committing a smaller amount of memory if committing all memory fails. ([[Aleksey Bragin]])
 +
* Fix a bug with node count in RtlpDphAddNewPool(). ([[Aleksey Bragin]])
 +
* Unprotect needed amount of memory in RtlpDphSetProtectionBeforeUse() instead of always assuming PAGE_SIZE. ([[Aleksey Bragin]])
 +
* Fix an incorrect virtual block pointer calculation in RtlpPageHeapAllocate().  ([[Aleksey Bragin]])
 +
* Silence RtlpDphShouldAllocateInPageHeap() debug print. ([[Aleksey Bragin]])
 +
* Add helpful debug prints (disabled by default). ([[Aleksey Bragin]])
 +
* Some code cleanup for better readibility. ([[Aleksey Bragin]])
 +
* Heap create, destroy and allocating a block from the heap work now. ([[Aleksey Bragin]])
 +
* Implement heap free operation using already implemented busy/free/available/unused lists support and other base routines. ([[Aleksey Bragin]])
 +
* Implement missing place to free list and remove from busy list routines. ([[Aleksey Bragin]])
 +
* Implement find busy block routine (using AVL tree). ([[Aleksey Bragin]])
 +
* Fix a bug in RtlpDphCoalesceNodeIntoAvailable() which resulted in unwanted attempt to merge the only node with itself (which failed anyway). ([[Aleksey Bragin]])
 +
* Fix a bug in RtlpDphCoalesceNodeIntoAvailable() which incorrectly removed a node from available list (which is implemented as a standard NT double-linked list, compared to unused and free lists which are implemented as single-linked custom lists and busy list which is an AVL tree). Result of that bug was an infinite loop at the next attempt to traverse the list of available nodes. ([[Aleksey Bragin]])
 +
* In RtlpDphCoalesceFreeIntoAvailable() break when FreeAllocations becomes less than LeaveOnFreeList (before it would break 1 size too early). ([[Aleksey Bragin]])
 +
* Fix list traversal in RtlpDphSearchAvailableMemoryListForBestFit(). If it couldn't find a node, it would return the last node in the list instead of NULL. ([[Aleksey Bragin]])
 +
* In RtlpDphFindAvailableMemory(), a new smaller size should be 4 times smaller, not just 2.  ([[Aleksey Bragin]])
 +
* Add a #if0-ed section in RtlpDphRemoveFromAvailableList which checks if a request to remove node not in the list performed. Used only for debugging. ([[Aleksey Bragin]])
 +
* Add a trace dprint to every type of list insert/removal operation for easier tracking. ([[Aleksey Bragin]])
 +
* Add break on NULL ptr freeing support. ([[Aleksey Bragin]])
 +
* RtlpDphSetProtectionAfterUse() is stubbed and protection is set directly in RtlpDphHeapFree(). To be moved into this function. ([[Aleksey Bragin]])
 +
* Implement DPH version of ReAllocateHeap. Scenario of falling back to normal heap is stubbed everywhere now. ([[Aleksey Bragin]])
 +
* Fix a bug in POINTER_ADD_BIAS which noone noticed. ([[Aleksey Bragin]])
 +
* Implement user flags/values and HeapSize APIs in debug page heap (nearly the same code in all three functions). With these done, DPH core features are complete. Some debugging is still needed. ([[Aleksey Bragin]])
 +
* Implement ValidateHeap API for DPH. Fixes attempts to validate DPH as a normal heap. ([[Aleksey Bragin]])
 +
* Fix wrong pointer comparison in RtlpDebugPageHeapFree(). Should check for NULL pointer freeing, instead of checking for NULL heap pointer. ([[Aleksey Bragin]])
  
 
=== RTL_HEAP ===
 
=== RTL_HEAP ===
Line 1,806: Line 2,474:
 
* Reserved support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions. ([[Aleksey Bragin]])
 
* Reserved support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions. ([[Aleksey Bragin]])
 
* The committed code is a result of a month of work, and is a heavy work-in-progress one. It already implements the bare minimum required to boot to 3rd stage and run FireFox 3, however many rare codepaths are not implemented yet and there is some maintenance work to do (e.g. move structures and defines to a standalone header file). A list of used references is stated in the header of a source file for now. ([[Aleksey Bragin]])
 
* The committed code is a result of a month of work, and is a heavy work-in-progress one. It already implements the bare minimum required to boot to 3rd stage and run FireFox 3, however many rare codepaths are not implemented yet and there is some maintenance work to do (e.g. move structures and defines to a standalone header file). A list of used references is stated in the header of a source file for now. ([[Aleksey Bragin]])
 +
* Lame... build fix. ([[sir_richard]])
 
* Implement missing parts of a virtual block allocations support. ([[Aleksey Bragin]])
 
* Implement missing parts of a virtual block allocations support. ([[Aleksey Bragin]])
 
* Minor fixes to handling extra stuff in heap blocks. ([[Aleksey Bragin]])
 
* Minor fixes to handling extra stuff in heap blocks. ([[Aleksey Bragin]])
 
* Wine's heap regression tests now run through the end without crashing and show 277 failures. ([[Aleksey Bragin]])
 
* Wine's heap regression tests now run through the end without crashing and show 277 failures. ([[Aleksey Bragin]])
 +
* A few comments, and a new structure definition (currently unused). Absolutely no changes to the actual code. ([[Aleksey Bragin]])
 +
 +
=== RTL_PATH ===
 +
* Update path.c code to Wine 1.3.14. Fixes a buffer overwrite happening in RtlDosSearchPath_U() when invoked by "shell32_winetest.exe shlexec". ([[Aleksey Bragin]]; {{bug|5964}})
 +
* RtlDosPathNameToNtPathName_U remains unsynced. ([[Aleksey Bragin]]; {{bug|5964}})
 +
* Author names added to the header of the file. ([[Aleksey Bragin]]; {{bug|5964}})
  
 
=== SPRINTF ===
 
=== SPRINTF ===
 
* Don't compile the new sprintf by default. Requested by Timo. ([[Amine Khaldi]])
 
* Don't compile the new sprintf by default. Requested by Timo. ([[Amine Khaldi]])
 +
 +
=== URLCACHE ===
 +
* Do not initialize the URL-Cache for a system process. ([[Eric Kohl]]; {{bug|5372}})
 +
* Patch will be submitted to WINE. ([[Eric Kohl]]; {{bug|5372}})
  
 
=== USB_USBEHCI ===
 
=== USB_USBEHCI ===
Line 1,846: Line 2,525:
 
* Dont assume that three transfer descriptors need to be freed, use a while moving to each linked and free instead. ([[Michael Martin]])
 
* Dont assume that three transfer descriptors need to be freed, use a while moving to each linked and free instead. ([[Michael Martin]])
 
* Yabba Dabba Doo added to increase size of message. :) ([[Michael Martin]])
 
* Yabba Dabba Doo added to increase size of message. :) ([[Michael Martin]])
 +
 +
=== USER32_WIN32K ===
 +
* Implement MessageBeep and SetLogonNotifyWindow ([[Giannis Adamopoulos]])
  
 
=== VBEMP ===
 
=== VBEMP ===
Line 1,868: Line 2,550:
 
* Don't free associated stream header anymore ([[Johannes Anderwald]])
 
* Don't free associated stream header anymore ([[Johannes Anderwald]])
 
* Tested with VBox 3.2.10 + VmWare Player 3.1.2 + WinXP ([[Johannes Anderwald]])
 
* Tested with VBox 3.2.10 + VmWare Player 3.1.2 + WinXP ([[Johannes Anderwald]])
 +
* Fix build  ([[Johannes Anderwald]])
 
* Update to new mmixer library interface ([[Johannes Anderwald]])
 
* Update to new mmixer library interface ([[Johannes Anderwald]])
  
Line 1,875: Line 2,558:
 
=== WIN32K|USER32 ===
 
=== WIN32K|USER32 ===
 
* Implement NtUserGetMenuIndex, . ([[James Tabor]]; {{bug|5528}})
 
* Implement NtUserGetMenuIndex, . ([[James Tabor]]; {{bug|5528}})
 +
* Fix build from 49005. ([[James Tabor]])
 
* Move to the new window structure. Window Object served us well. ([[James Tabor]])
 
* Move to the new window structure. Window Object served us well. ([[James Tabor]])
 
* Rewrite the Event and Hook procedures.  ([[James Tabor]]; {{bug|5670}})
 
* Rewrite the Event and Hook procedures.  ([[James Tabor]]; {{bug|5670}})
Line 1,894: Line 2,578:
 
* Fix copy paste error, which means this code is not used, should have pop up during testing. ([[James Tabor]])
 
* Fix copy paste error, which means this code is not used, should have pop up during testing. ([[James Tabor]])
 
* Add hack to mark desktop window as a desktop window and notes for creating a desktop with tips in win32k. Move user position code from window to winpos. ([[James Tabor]])
 
* Add hack to mark desktop window as a desktop window and notes for creating a desktop with tips in win32k. Move user position code from window to winpos. ([[James Tabor]])
 +
* WM_MDICREATE originates from user space so treat it as it should, fixes bug 5903. ([[James Tabor]])
 +
* Clarify the meaning and the use of 0, 1 and 2 for user window regions, wine never did. Noticing patches not corresponding in correctness and understanding, leaving potential crashes in the DCE code, which depend on these types. ([[James Tabor]])
 +
* Patch based on Rafal Harabien patch, fixes wine msg SetWindowRgn test, see also bug 5959. ([[James Tabor]])
 +
* Use User32 GetWindowRgnBox, still passing both wine msg SetWindowRgn and win winregion tests, . ([[James Tabor]]; {{bug|5959}})
 +
* Use User32 GetWindowRgnBox, still passing both wine msg SetWindowRgn and win winregion tests, . ([[James Tabor]]; {{bug|5959}})
  
 
=== WINE32K|USER32 ===
 
=== WINE32K|USER32 ===
Line 1,902: Line 2,591:
  
 
=== YAROTOWS ===
 
=== YAROTOWS ===
* Reintegrate the branch. Thanks to Jerome Gardou, Kamil Hornicek and everyone helping. Main features: ([[Timo Kreuzer]])
+
* Reintegrate the branch. For a brighter future. ([[Timo Kreuzer]])
** Implement LDEVOBJ api. Responsible for loading dlls (display drivers, font drivers, keyboard layout, etc), replacing code in different locations.
+
* Main features: ([[Timo Kreuzer]])
** Implement PDEVOBJ api. A PDEVOBJ represents a physical device and is the core component for handling multiple display devices.
+
* Implement LDEVOBJ api. Responsible for loading dlls (display drivers, font drivers, keyboard layout, etc), replacing code in different locations. ([[Timo Kreuzer]])
** Rewrite device locking. The new method was neccessary to allow dynamic mode switching.
+
* Implement PDEVOBJ api. A PDEVOBJ represents a physical device and is the core component for handling multiple display devices. ([[Timo Kreuzer]])
** Implement support for enumerating display devices and settings.
+
* Rewrite device locking. The new method was neccessary to allow dynamic mode switching. ([[Timo Kreuzer]])
** Implement dynamic mode switching.
+
* Implement support for enumerating display devices and settings. ([[Timo Kreuzer]])
** Implement a number of Eng mapping functions.
+
* Implement dynamic mode switching. ([[Timo Kreuzer]])
** Rewrite Eng level surface handling for cleaner code and better compatability.
+
* Implement a number of Eng mapping functions. ([[Timo Kreuzer]])
** Rewrite parts of the DIB handling code.
+
* Rewrite Eng level surface handling for cleaner code and better compatability. ([[Timo Kreuzer]])
** Rewrite DC creation and deletion. Deletion and cleanup is now completely callback based. Now we don't leak the DC objects when terminating a process, like we did before.
+
* Rewrite parts of the DIB handling code. ([[Timo Kreuzer]])
** Improve the XLATE and BRUSH code, removing several old hacks.
+
* Rewrite DC creation and deletion. Deletion and cleanup is now completely callback based. Now we don't leak the DC objects when terminating a process, like we did before. ([[Timo Kreuzer]])
** Improve icon code.
+
* Improve the XLATE and BRUSH code, removing several old hacks. ([[Timo Kreuzer]])
 +
* Improve icon code. ([[Timo Kreuzer]])
 +
* Thanks to Jerome Gardou, Kamil Hornicek and everyone helping. ([[Timo Kreuzer]])
 +
* Update rapps database. ([[Daniel Reimer]])
  
 
{{Navigation Changelog}}
 
{{Navigation Changelog}}

Revision as of 14:12, 13 March 2011

This is the changelog for ReactOS™ version 0.3.13 (released XXXXXXX), 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.12 (released 20 October 2010).

Contents

General

Contributors

Core developers

  • Giannis Adamopoulos
  • Johannes Anderwald
  • Aleksey Bragin
  • Dmitry Chapyshev
  • Benedikt Freisen
  • Jerome Gardou
  • Cameron Gutman
  • Kamil Hornicek
  • Amine Khaldi
  • Eric Kohl
  • Timo Kreuzer
  • Matthias Kupfer
  • Michael Martin
  • Ged Murphy
  • Sylvain Petreolle
  • ReactOS Portable Systems Group
  • Daniel Reimer
  • Gregor Schneider
  • Pierre Schweitzer
  • James Tabor
  • Christoph von Wittich
  • Art Yerkes

Patch submitters

  • Damir Aliev
  • Oleg Baikalow
  • Carlo Bramini
  • Vincenzo Cotugno
  • Rafal Harabien
  • Katayama Hirofumi
  • Adam Kachwalla
  • Radek Liška
  • Roel Messiant
  • Love Nystrom
  • Igor Paliychuk
  • Samuel Serapion
  • Víctor Martínez

Localization

  • spb-ivan92 (#5685)
  • wojtekkozlo664 AT op DOT pl (#5740)
  • Mario Kacmar
  • Andres Traks

Support staff

  • Danny Gotte: Web Developer.
  • Ziliang Guo: Release Engineer, Web Content Maintainer.

Generic 0.3.13 changes

Applications

  • Calc: Initialize next field
  • Paint: Generalize changes related to mirroring rectangular selections to free form selections, solve problem regarding selection contents update
  • Ping: Localization support added
  • Regedit: "Load Hive..." and "Unload Hive..." menu items implemented, support added for import/export of v5 registry files, "go" button added to address bar
  • Taskmgr: Support added for DELETE key to processes and applications list
  • Winmine: Synced and forked from Wine 1.3.5 winemine.

Control Panel Applets

Installer

Services

Tests

Translations

Bulgarian

  • avifil32
  • browseui
  • calc
  • cmdutils/reg
  • console.cpl
  • devmgr
  • explorer-new
  • intl.cpl
  • mscutils/eventvwr
  • mscutils/servman
  • netid
  • regedit
  • shell32
  • sysdm.cpl
  • syssetup
  • taskmgr
  • timedate.cpl
  • usetup
  • winmine

Czech

  • calc
  • explorer-new
  • input.cpl
  • rapps
  • sysdm.cpl
  • usetup

Estonian

  • usetup

French

  • timedate.cpl
  • ping
  • shutdown

German

  • ping

Italian

  • ping

Japanese

  • calc
  • newdev
  • sysstetup
  • usetup

Polish

  • ping
  • rapps

Russian

  • taskmgr

Slovak

  • calc
  • cmd
  • format
  • usetup

Ukranian

  • usetup
  • ping

Wine syncs

Libraries synced

  • atl
  • d3d8
  • d3d9
  • ddraw
  • fusion
  • gdiplus
  • hlink
  • iexplore
  • mprapi
  • msi
  • msiexec
  • reg
  • shdocvw
  • urlmon
  • wer.dll
  • widl
  • wined3d
  • winemine
  • winhlp32
  • winhttp
  • wininet
  • wordpad
  • write
  • wtsapi32
  • xcopy

Third party libraries

  • DejaVu Fonts Documentation updated to 2.31
  • RedHat Liberation Fonts updated to 1.06
  • Tahoma Fonts undated to Wine HEAD
  • bzip2 updated to 2.06

BASE

APPLICATIONS

  • Change all C function prototype declarations with an empty argument list to use void, or the list specified in the function definition. (Roel Messiant)
  • According to the C language specification, such a declaration means "no information about the number or types of the parameters is supplied". (Roel Messiant)
  • This can expose cases where gcc allows us to pass an excessive amount of arguments to functions in certain cases. (Roel Messiant)
  • Thanks to Thomas Faber for informing us about this. (Roel Messiant)

CALC

CHARMAP

  • Make the text copy field a richedit control. (Carlo; #5275)
  • Use WM_CHAR to copy the characters (Carlo; #5275)
  • Fix definition of MSFTEDIT_CLASS for the resource compiler (Carlo; #5275)
DOSKEY

CMDUTILS

XCOPY

FINDSTR

  • Port findstr (incomplete, as author of this patch states, it may satisfy RosBE, .c .h and .rc files) from FreeDOS project. Needed for RosBE-on-ReactOS support. (Aleksey Bragin; #5724)
SOLITAIRE

GAMES

MPLAY32

EVENTVWR

MSCUTILS

  • Fix handling of NULL lpComputerName. (Rafal; #5926)
  • Handle lpData conversion to a wide string and make sure it's NULL terminated. (Rafal; #5926)
FTP

NETWORK

  • FTP has been a really, really naughty app.. Fix up function prototypes and definitions after () -> (void) change. (Roel Messiant)
  • Fixes build.. if I'm lucky. (Roel Messiant)
NSLOOKUP
  • Use memcpy with sizeof instead of strncpy with strlen to make sure the destination string will be zero terminated. (Timo Kreuzer)
  • CID 1649 (Timo Kreuzer)
PING
  • Add localization support to ping. (; #5500)
  • Implement small helper MyLoadString, using FindResource, LoadResource, LockResource and replacing LoadString, so we don't need to link to user32 anymore. (Timo Kreuzer)
  • Add German translation. (Timo Kreuzer)
  • Polish translation of ping. (Olaf)
  • Italian translation of ping. (Vincenzo)
  • French translation patch from myself aka Pierre Schweitzer, with deepest love, and so on... (Pierre Schweitzer)
  • Fix typos ;) (Johannes Anderwald)
  • Fix MyLoadString. (menone7)
  • Add Ukrainian translation by Eugene Sakara. (Aleksey Bragin)

NOTEPAD

  • By me: use StringCchCat instead of _tcscat to prevent possible buffer overruns. (EDIJS; #5871)
  • Edijs: Zero initialize the caption string. (Aleksey Bragin; #5992)

PAINT

  • apply (Black_Fox; #5434)
  • fix minor bugs introduced by it (Black_Fox; #5434)
  • generalize changes related to mirroring rectangular selections to free form selections (Black_Fox; #5434)
  • solve problem regarding selection contents update (Black_Fox; #5434)

RAPPS

  • Igor Paliychuk: (Amine Khaldi)
  • Update some broken links. (Amine Khaldi)
  • Changed the cyrillic "P" to a latin "P" in the beginning of the VBox driver's russian and ukrainian descriptions (rapps doesn't display it when it's cyrillic). (Amine Khaldi)
  • French translation by Jason Toscano <JasonGenie at gmail dot com> (Pierre Schweitzer; #5993)
  • Corrections/adjustements by me (Pierre Schweitzer; #5993)
  • Fix french translation file encoding (Pierre Schweitzer)
  • Fix a bug while testing Rapps under Windows. If you had an application with no registered DisplayName installed, Rapps used to consider every application with no RegName in its database (= currently all Rapps applications) installed. Therefore the list of available applications has always been empty. (Colin Finck)
  • Now an application is always added to the ListView if no RegName is set for it. (Colin Finck)
  • Rafal Harabien (rafalh1992@o2.pl) (Colin Finck; #5999)
  • Fix links and descriptions in the Rapps database, also update some application versions (Colin Finck; #5999)
  • I took the last patch in the bug report and applied the changes to remood.txt manually (due to mixed encoding within the same file). (Colin Finck; #5999)
  • 0.3.13, here we go (again) (Colin Finck)

REGEDIT

TASKMGR

SERVICES

  • Remove the reference counter from the common handle type as a handle is never shared or duplicated. (Eric Kohl)
  • Remove the access right from the service handle as it is not used. (Eric Kohl)
  • Dereference service manager handles and service handles in two separate functions that SEH-protect the initial access to the handle and signature check. This will protect SCM from bogus handles. (Eric Kohl)
  • Use new handle check functions in RCloseServiceHandle(). (Eric Kohl)
  • RControlService: Check if a control request is acceptable for a user mode service before sending it to the service. (Eric Kohl)
  • RControlService: Check the current state before sending a control request. (Eric Kohl)
  • Revert r49366. (Eric Kohl)
  • Fix a typo (|| instead of |). Found by clang. (Timo Kreuzer)
  • Protect the service start and sending of control packages by critical sections. This way, services will be started one by one and control packages will also be sent one by one. (Eric Kohl)
  • Please test if this fixes bug #5924. (Eric Kohl)
  • Protect whole contents of ScmStartService() with a critical section instead of just a few parts of ScmStartUserModeService(). Seems to fix the comment #8 issue of bug #5924. (Aleksey Bragin)
  • Use one instead of two critical sections to synchronize service start and control actions. (Eric Kohl)
  • Fail, if an already running service is started again. (Eric Kohl)
  • Leave the critical section when the allocation of the control packet fails. (Eric Kohl)
  • Bug spotted by hzlilx. (Eric Kohl)

EVENTLOG

  • Rename the EVENTSOURCE struct to LOGHANDLE because it is currently used like a handle object. The EVENTSOURCE struct will be added again in one of the next commits. (Eric Kohl)

UMPNPMGR

  • Start using XP- and Vista-compatible pipe names for the RPC endpoint. Kick out the ROS-specific \pipe\umpnpmgr one. (Roel Messiant)
  • Use only the Vista pipe name for now, using the XP one makes device installation fail.. (Roel Messiant)
  • Use the correct PNP interface UUID (Roel Messiant)

USETUP

SETUP

  • Update Ukrainian translation by Igor Paliychuk. (Amine Khaldi; #5536)
  • 5540 5604 5614 5617 for more details. (Amine Khaldi; #5536)
  • Update Estonian translation by anthrax11. (Amine Khaldi; #5625)
  • Fix a really mean bug: wcslen() returns the size in characters whereas MaximumLength has to be in bytes. (Pierre Schweitzer)
  • Now, this sets MaximumLength to its appropriate size and prevents some memory issues (and buffers having odd size, which is weird for an unicode string...). (Pierre Schweitzer)
  • Get rid of indirection (Johannes Anderwald; #5190)
  • Fix a buffer overflow (overread) when adding a locale key to the registry. The history of this bug is funny: (Aleksey Bragin; #5810)
  • 1. Eric wrote the code, which sets a key of REG_SZ type, as 4 widechars plus terminating zero, but passes 8 as the bytesize of the buffer. It's not fully correct (a terminating zero is absent from the bytesize of the buffer, but MSDN doesn't specify if it should be added or not, and hardcoding "8" is not the best idea too) but not dramatic. That was revision 9596, 7 years ago. (Aleksey Bragin; #5810)
  • 2. Lentin notices something is not right in this code, and decides to "fix" it by multiplying that same hardcoded value by.... guess what? sizeof(PWCHAR)! That is, size of a pointer, which on an x86 would be 4 bytes. Massive out of bounds access obviously happens. That was revision 31642, 3 years ago. (Aleksey Bragin; #5810)
  • 3. Very soon Colin reshuffles and improves the code based on patch #2635, however the problem still goes unnoticed (r31655+). (Aleksey Bragin; #5810)

CMD

SHELL

  • Carlo Bramix: MultiByteToWideChar() has just 6 and not 8 parameters, probably it's a forgetten copy/past from WideCharToMultiByte(). (Aleksey Bragin; #5678)
  • Carlo Bramix: ConvertULargeInteger() should have its parameter 'Len' declared as UINT rather than 'INT'. This fixes a signed/unsigned mismatch warning. (Aleksey Bragin; #5678)

EXPLORER

EXPLORER-NEW

  • Fix another "sizeof" usage mistake (Cameron Gutman)
  • CID 1631 (Cameron Gutman)
  • Allow displaying seconds in tray upon registry setting (Edijs)

SYSTEM

RUNONCE

SMSS

  • Remove the ROS_DOESNT_SUCK hack, and correctly started subsystem processes with the first MB reserved. (sir_richard)

WINLOGON

BOOT

ARMLLB

  • Make DbgPrint compatible so we can use debug.h. (sir_richard)
  • Add support for ATAG_REVISION. (sir_richard)
  • Fix support of ATAG_MEM: there can be multiple tags, one per DRAM bank. (sir_richard)
  • Fix the default case not to "return": it should "Break" instead. (sir_richard)
  • Only apply the RAMDisk hack on Beagle for now. (sir_richard)
  • Add uImage header which uBoot expects on the images it can load nicely (using "go" will not give us ATAGs, "bootm" requires this header). It's a static header instead of requiring the mkImage tool, since we can disable data checksums in uBoot. We basically fake being a Linux kernel and the LLB handles the ATAGs. (sir_richard)
  • Add boot stack for Zoom2. (sir_richard)
  • Initialize hardware before parsing environment variables. This makes more sense, and also allows debug output from the environment scanning code. (sir_richard)
  • Add the MACHINE_TYPE code for the ZOOM2, based on the standard machtype definitions maintained by the various boot loader communities. (sir_richard)
  • Forgot to commit this earlier: define the ATAG_REVISION header. (sir_richard)
  • Include FreeLoader's keycode mappings (which don't seem standard) in ARMLLB, so we can do correct keypad to keycode translation. (sir_richard)
  • Include ReactOS's standard debug.h, which lets us un-redefine DbgPrint, and also gives us goodies like ASSERT and DPRINT1. (sir_richard)
  • We made certain assumptions in the "generic" files that are actually board-specific. For example, Versatile does indeed return a strange ULONG as the RTC time (seconds since 1970, I think), but TWL4030 on the ZOOM2 is normal and returns BCD RTC values just like the PC CMOS. Therefore, most of the "Generic" time.c code should move to versatile later. For now, use an IFDEF. (sir_richard)
  • Likewise, not all platforms have a PS/2 controller like the Versatile. ZOOM2 for example has a keypad, so the generic "input" file shouldn't assume keyboard-only. As such, most of the code there should also be made specific, but for now, use an ifdef. (sir_richard)
  • Although the soothing BSOD blue color is nice for LLB debugging, we'd really prefer to have black so it looks more natural on the eyes when booting to FreeLoader. As such, make the default backcolor black, but keep the old blue color for early testing, if enabled with a define. (sir_richard)
  • Split up support between OMAP3 Beagle and ZOOM2. (sir_richard)
  • Implement ZOOM2 ARMLLB board support package. TWL4030 read/write implemented (through basic I2C on the HS interface), RTC and Keypad Matrix implemented (through TWL4030), NEC WVGA Panel Initialization (through basic SPI interface on the MBPSI), basic clock setup and GPIO access for DSS/DISPC, setup DSS/DISPC for output on the NEC panel. UART implemented through Quad-UART NS16550 compatible chip (using CPORTlib). (sir_richard)
  • Requires having been booted through x-loader+uboot as a kernel image. Will work on directly booting from NAND later. (sir_richard)
  • Delete deprecated folder (sir_richard)
  • Add missing UART functionality for ZOOM2. Leverages existing CPORT library. (sir_richard)

FREELDR

  • Fix CDs checksum computation (Pierre Schweitzer)
  • Convert most of the trap and blue screen code from asm to C, use KTRAP_FRAME and KSPECIAL_REGISTERS on the stack, instead of using a bunch of global variables. Convert multiply used asm code chunks into macros. Use intel syntax for remaining asm. (Timo Kreuzer)
  • 135 lines of C + 178 lines of asm, instead of 942 lines of asm (Timo Kreuzer)
  • On ARM, don't turn on maximum, hyper, ultra-slow debugging and analysis features for the heap. This, for example, reduces FreeLoader's size by 32KB+ and speeds up boot by entire seconds, as the entire heap isn't zeroed out on startup. (sir_richard)
  • May I humbly suggest you do the same on x86?! (sir_richard)
  • Add startup file for ARM builds as well, so that _start can be the first function in the file. (sir_richard)
  • Set load address for ZOOM2, and differentiate Beagle vs ZOOM2. (sir_richard)
  • Add linker script for ARM as well. We drop the relocation section as it shouldn't be needed. (sir_richard)
  • Add more keycodes. (sir_richard)
  • Put ARM boot code in .init section to guarantee it goes first in the file, as per the linker script. (sir_richard)
  • Define FreeLoader module for ARM. Differences with x86 are mostly due to the fact "bootloader" was unfortunately made an x86-specific module type, so we have to use "kernel" to get around that, which thankfully has remained portable. (sir_richard)
  • VaToPa/PaToVa are assuming all architectures have VA at PA | KSEG0_BASE. This is not the case. On ZOOM2, DDR RAM starts at 0x80000000 for example, so KSEG0 == VA == PA. Use an ifdef do handle this. (sir_richard)
  • Headless/EMS support is an x86-specific feature (at least for now, until the code is made portable). (sir_richard)
  • Use PaToVa to set the Hive and NLS data pointers, instead of assuming that KSEG0_BASE | Pa is the correct answer for all architectures. (sir_richard)
  • Cleanup firmware table setup and add support for being booted from a ZOOM2 ARMLLB, and set the correct file system buffer address for that board. (sir_richard)
  • For *every single heap allocation*, there was code to request an entire *heap statistic run*! This is ridiculous and slows heap allocations tremendously. Additionally, it also assumes bstats was linked in, which it might not be if the flag wasn't set in bheap.c. Only enable this code if a special MM_DBG define is set. (sir_richard)
  • Done originally for ARM, but I think x86 will appreciate the benefit too (and x86 can now go ahead and disable all those ridiculous debug settings that are turned on by default in bheap.c). (sir_richard)
  • Fix RAM layout assumptions in ARM code. (sir_richard)
  • poor little printf causes boot break, nuff said. (Sylvain Petreolle)
  • Conditionally enable heap-related debugging and validation checks by an MM_DBG define for all architectures. Inspired by 49744. (Aleksey Bragin)
  • Delete a duplicate line. (Dmitry Gorbachev)
  • compile headless support only for x86 (Timo Kreuzer)
  • Fix broken release version (Timo Kreuzer)
  • Reduce difference with the cmake branch, mostly msvc and amd64 fixes. (Amine Khaldi)
  • merge most spec file changes from cmake branch (Timo Kreuzer)
  • add stub files to build (Timo Kreuzer)
  • Add missing stubs.h (Timo Kreuzer)
  • try to fix build (Timo Kreuzer)

FREELDR

ARCH
AMD64
ARM
  • Our new target is the ZOOM2 OMAP3, instead of Beagle (but we'll keep testing both). (sir_richard)
  • The text section is called ".text", not "text". This caused any ARM assembly to create a new section in the PE and waste 4KB. (sir_richard)
CACHE
  • The cache manager rewrite I started years ago has finally appeared in (Art Yerkes)
  • ReactOS' trunk and although at this point it's not quite perfectly (Art Yerkes)
  • integrated, it's enough to boot up the bootcd or livecd. To check out (Art Yerkes)
  • the more mature original, check out arty-newcc-reactos, branch (Art Yerkes)
  • arty-newcc on bitbucket.org . Amine Khaldi encouraged me quite a bit (Art Yerkes)
  • to not give up on it, and was able to reach out and be an advocate (Art Yerkes)
  • when i really wasn't able to. Others agree that the time has come to (Art Yerkes)
  • begin removing the old cache manager. I expect the remaining problems (Art Yerkes)
  • in the version going to trunk will be taken care of relatively (Art Yerkes)
  • quickly. (Art Yerkes)
  • The motivation for this effort lies in the particularly hairy (Art Yerkes)
  • relationship between ReactOS' cache manager and data sections. This (Art Yerkes)
  • code completely removes page sharing between cache manager and section (Art Yerkes)
  • and reimagines cache manager as being a facility layered on the memory (Art Yerkes)
  • manager, not really caring about individual pages, but simply managing (Art Yerkes)
  • data section objects where caching might occur. (Art Yerkes)
  • It took me about 2 years to do the first pass of this rewrite and most (Art Yerkes)
  • of this year to fix some lingering issues, properly implement demand (Art Yerkes)
  • paging in ReactOS (code which didn't come with this patch in a (Art Yerkes)
  • recognizable form), and finish getting the PrivateCacheMap and (Art Yerkes)
  • SharedCacheMap relationship correct. (Art Yerkes)
  • Currently, the new ntoskrnl/cache directory contains an own (Art Yerkes)
  • implementation of data file sections. After things have settled down, (Art Yerkes)
  • we can begin to deprecate and remove the parts of ReactOS' section (Art Yerkes)
  • implementation that depend on a close relationship with cache (Art Yerkes)
  • manager. Eventually, I think that the extra code added to (Art Yerkes)
  • ntoskrnl/cache/section will be removed and ReactOS' own sections will (Art Yerkes)
  • replace the use of the special MM_CACHE_SECTION_SEGMENT in the cache (Art Yerkes)
  • path. (Art Yerkes)
  • Note also, that this makes all cache manager (and new section parts) (Art Yerkes)
  • use wide file offsets. If my section code were to take over other (Art Yerkes)
  • parts of the ReactOS memory manager, they would also benefit from (Art Yerkes)
  • these improvements. (Art Yerkes)
  • I invite anyone who wants to to peek at this code and fix whatever (Art Yerkes)
  • bugs can be found. (Art Yerkes)
  • KSUSER, KS, SYSAUDIO] (Johannes Anderwald)
  • Make pin / node / allocator create requests compatible to ms by removing obsolete slash before object class (Johannes Anderwald)
  • Return correct error code in ksuser's KsCreatePin (Johannes Anderwald)
  • ReactOS KS is now able to create audio pins in Windows XP, though playback is not yet working (Johannes Anderwald)
  • All changes except ksuser change has been verified to work with VBox 3.2.10 (Johannes Anderwald)
  • KS user changes not tested yet as KSStudio not working in trunk (Johannes Anderwald)
DISK
  • Reflect changes in Class2. (Pierre Schweitzer)
  • Also added support for IOCTL_DISK_GET_DRIVE_GEOMETRY_EX. (Pierre Schweitzer)
  • Hackplemented support for IOCTL_DISK_GET_PARTITION_INFO_EX. It will work fine for MBR partitions but will fake returns for GPT partitions. (Pierre Schweitzer)
  • Implemented support for IOCTL_DISK_GET_LENGTH_INFO (Pierre Schweitzer)
RTL
  • Fixed a really stupid (and old) bug in RtlComputeCrc32(): (Pierre Schweitzer)
  • First parameter is initial CRC32 checksum. And it's complete and not partial, thus it needs to be an ULONG and not an USHORT. (Pierre Schweitzer)
  • This fixes CRC32 checksum computation with initial checksum (tested again Windows 2003 & Seven). (Pierre Schweitzer)
  • Fix heap code to actually use the new lock instead of using RTL_CRITICAL_SECTION. (Aleksey Bragin)
  • Fix a ROUND_UP and ROUND_DOWN macros: it is a *rule* to wrap every argument in braces in a macro, otherwise shit happens. A couple of days were lost fighting a strange bug in the new heap manager code where it was doing ROUND_UP(Heap + 1, PAGE_SIZE)... (Aleksey Bragin)
  • Change RtlLockBootStatusData prototype according to http://cookp.com/%2F/thread/1111206/how%20can%20i%20detect%20last%20boot%20success (Eric Kohl)
  • Carlo Bramini <carlo DOT bramix AT libero DOT it> (Matthias Kupfer; #5635)
  • Fix for render status bar after changing line wrap and flicker issue. (Matthias Kupfer; #5635)
  • for details. (Matthias Kupfer; #5635)
  • Fix RtlSetUserFlagsHeap declaration and definition. (Aleksey Bragin)
  • Fix a bug introduced Mon Dec 6 00:25:14 1999 UTC (10 years, 10 months ago) in revision 828. NtFreeVirtualMemory takes a pointer to the address to free, not the address instead. For the last 11 years, freeing the process parameter block resulted in freeing whatever the first value in the structure is, which is MaximumLength and initialized to 0x1000. ReactOS would then free whatever random address was in that area. In real Windows, it is illegal to free an allocation in the middle of the base address, and this call failed with the new VAD code. ReactOS either leaked the memory or freed random data, who knows. (sir_richard)
  • Make the PPB live in the Heap instead of having its own virtual allocation, fixing the issue above. Stop rounding it to a PAGE_SIZE, and just use the space required. (sir_richard)
  • Roel Messiant: Specify proper byte length of a unicode string. Fixes out of bounds access in actctx.c support code. No more half-cut active context stuff in debug logs. (Aleksey Bragin)
  • Minor code changes to RTL (one would call them "optimisation"). Added some missing paged code. (Pierre Schweitzer)
  • Plus added useful asserts (used to catch r50615 bug!) (Pierre Schweitzer)
  • Merge changes to rtl from cmake branch. Mostly use portable interlocked functions (Timo Kreuzer)
  • Merge MSVC fixes from cmake branch (Timo Kreuzer)
  • Move page heap related code to heappage.c. (Aleksey Bragin)
  • Fixed RtlMultiByteToUnicodeN & RtlAnsiCharToUnicodeChar prototype (Pierre Schweitzer)
  • Added missing paged code marker to RtlAnsiCharToUnicodeChar (Pierre Schweitzer)
  • Added a small hack to RtlAnsiCharToUnicodeChar. Indeed, when it's called during second stage, it's failing due to missing NLS table. (Pierre Schweitzer)
  • Probably usetup that doesn't define a registry entry. And then, FreeLdr just passes null pointer. (Pierre Schweitzer)
  • Silence this dprint. It's flooding the debug log. (Amine Khaldi)
  • Fix compilation when NDEBUG is not defined (J√©r√¥me Gardou)
  • Revert 47615. Please fix actual sysreg instead of adding inconsistency between 1st, 2nd and 3rd stages debugging connections. This should fix sysreg3's inability to do backtraces. (Aleksey Bragin; #5811)
SRC
DRIVERS

MESA32

DLL

3RDPARTY

  • Add missing breaks. (Samuel)

CPL

CONSOLE

TIMEDATE

USRMGR

DIRECTX

DDRAW

  • Jerome Gardou: Almost all of the ddraw->refcount winetests pass. One remains, due to the fact that IdirectDrawSurface::SetPalette is unimplemented. IDirectDraw::Createpalette is implemented too, but needs testing. There are no parameter checks. (Aleksey Bragin; #4909)
  • Comments from me: The patch is not build-tested, however I did my best to merge it to existing ddraw and I prefer the actual code to be in the repository rather than hanging in bugzilla for years (last comment to the patch is dated 29.10.2009). (Aleksey Bragin; #4909)
D3D
  • Preparations for update to widl 1.3.4. (Eric Kohl)

WINE

WINED3D
  • Update wined3d, ddraw, d3d8 and d3d9 to Wine 1.3.4. (Kamil Hornicek)
  • Our CRT causes duplicate definitions, when trying to use it as fallback for missing msvcrt imports. Work around this limitation by adding powf and sqrtf wrappers for amd64 builds (Timo Kreuzer)

NTDLL

  • Use LOCK instead of lock for SList assembly functions, this is a conditional such that on UP, "lock" instruction won't be generated. (sir_richard)
  • Apply the special begin/fault/resume lablels to the user-mode SList functions. Access faults can happen there due to a bug in the Windows algorithm, and Mm will need to handle that. (sir_richard)
  • Fix loading of GlobalFlags in Image File Execution Options. I really wonder who had that brilliant idea that bitwise flags would be stored as a string in the registry. (Aleksey Bragin)
  • If there is a GlobalFlags value specified in the registr for that specific image, it means that value should overwrite NtGlobalFlags. Fix that too (previously it was ORing which made no sense). (Aleksey Bragin)
  • Respectively fix incorrect data type for GlobalFlags in ReactOS registry. (Aleksey Bragin)
  • remove svn:mergeinfo (Timo Kreuzer)
  • LoadImageFileExecutionOptions() improvements: (Aleksey Bragin)
  • Apply certain heap flags if the process is being debugged (only if NtGlobalFlags is not overridden). (Aleksey Bragin)
  • Implement enabling page heap and reading image-specific configuration values. (Aleksey Bragin)
  • Add page heap configuration values to the Heap Manager. (Aleksey Bragin)
  • Fix a typo which always set page heap enabled to true. (Aleksey Bragin)
  • Load image execution options before creating process heap (so that GlobalFlag overrides can be taken into account). (Aleksey Bragin)
  • Make LdrQueryImageFileExecutionOptions avoid heap usage when possible (and when it's not possible, fail with out of memory status). (Aleksey Bragin)
  • Fixes a dramatic count of ~100 failures in "kernel32_winetest heap". (Aleksey Bragin)
  • Fixed build (Pierre Schweitzer)
  • Don't access unitialized memory. Caught thanks to a new heap manager, and this fixes all weird actctx exceptions in kernel32_winetest heap. (Aleksey Bragin)
  • Fix amd64 build. (Kamil Hornicek)
  • Attempt nr. 2: link wined3d to crt on amd64 build. (Kamil Hornicek)
  • Fix LdrVerifyImageMatchesChecksum() prototype. (Aleksey Bragin)
  • Move RtlPcToFileHeader to rtl/libsupp.c (Timo Kreuzer)
  • Raise harderror and terminate process when the image is of a foreign architecture. (Timo Kreuzer)
  • Fix harderror status on machine type mismatch and pass file name. (Timo Kreuzer)

WIN32

ADVAPI32

  • Roel Messiant: Properly handle STATUS_BUFFER_TOO_SMALL in RegEnumValueW implementation. (Aleksey Bragin; #2492)
  • Katayama Hirofumi: Use DataLength field in RegEnumValueW instead of DataOffset. (Aleksey Bragin; #2492)
  • Roel Messiant: Test behaviour in Vista and apply same fix to RegEnumValueA. (Aleksey Bragin; #2492)
  • Implement LsaCreateAccount(), LsaOpenAccount() and LsaSetInformationPolicy(). (Eric Kohl)
  • Implement LsaAddPrivilegesToAccount(), LsaCreateTrustedDomain(), LsaDeleteTrustedDomain() and LsaOpenTrustedDomainByName(). (Eric Kohl)
  • Move the Encrypted File System (EFS) functions into their own file. (Eric Kohl)
  • Sync the out of sync winemine to Wine 1.3.5 and fork it, because of the modified look, improved resources and different code structure. (Daniel Reimer)
  • Additionally call it winmine, as it is in windows, too. (Daniel Reimer)
  • Roel Messiant: Fix short-circuit evaluation. (Aleksey Bragin; #5677)
  • Implement LsaAddAccountRights(), LsaQueryTrustedDomainInfoByName() and LsaRemoveAccountRights(). (Eric Kohl)
  • ConvertStringSidToSidW: Stop writing 1 subauthority too much. Fixes a DWORD sized buffer overflow. Should fix bug #5764. (Roel Messiant)
  • ConvertStringSidToSidW: Don't leak an allocated SID in case of failure. (Roel Messiant)
  • Move file encryption functions from crypt/crypt.c to misc/efs.c. (Eric Kohl)

ATL

AUTHZ

  • Fix AuthzReportSecurityEvent, AuthzInitializeObjectAccessAuditEvent and AuthzInitializeObjectAccessAuditEvent2 prototypes. (Amine Khaldi)
  • Missed these. (Amine Khaldi)
  • Another dll addition to cmake, another rc file fix. (Daniel Reimer)

AVIFIL32

  • Split utf8 resources into theit own file (MSVC compatibility) (Timo Kreuzer)

CFGMGR32

  • Add missing functions. (Eric Kohl)
  • Add forwarders to functions that are exported by setupapi.dll. (Eric Kohl)
  • Mark deprecated functions. (Eric Kohl)

COMCTL32

  • Fix bitmap resources. They were not very valid. Windows didn't even load them. Probably created with some linux tool *cough* (Timo Kreuzer)
  • Fixes part of the broken icons. Not the pink ones though. (Timo Kreuzer)
  • Revert 45676 (Johannes Anderwald)
  • It appears that the definitions for IID_IUnknown differ for kernel mode COM and user mode COM (Johannes Anderwald)
  • Sync with wine 1.3.14 (Amine Khaldi)
  • Fix include order of resources. (Timo Kreuzer)
  • remove comctl_Cn.rc, it contains and outdated simplified chineese translation, that wine has in comctl_Zh.rc (Timo Kreuzer)

DEVMGR

  • DisplayDevicePropertyText: Use full DWORD value, not just one byte of it (CID 1803). (Roel Messiant)

FUSION

GDI32

  • Don't make the wrong assumption that POINT and POINTL are identical. (Timo Kreuzer)
  • remove useless memory reallocation : the buffer size must be dword aligned, we have no way to guarantee the buffer location will be. (J√©r√¥me Gardou)
  • pass BITMAPINFO pointer size to NtGdiGetDIBitsInternal (J√©r√¥me Gardou)
  • Consistent formatting, no code change. (J√©r√¥me Gardou)
  • Implement GdiGetDcAttr. Just for convenience / cleaner code. (Timo Kreuzer)
  • Move EFLOAT handling in seperate file, its x86 specific (Timo Kreuzer)
  • Implement CombineTransform fully in usermode instead of forwarding to NtGdiCombineTransform (Timo Kreuzer)
  • Implement MatrixToXForm (Timo Kreuzer)
  • Implement GdiTransformPoints (Timo Kreuzer)
  • GDI32] (Timo Kreuzer)
  • Check paramters in CombineTransform (Timo Kreuzer)
  • Fix broken portable implementation of _lrintf (Timo Kreuzer)
  • Fix broken portable implementation of _lrintf, 2nd try :) (Timo Kreuzer)
  • In GetDIBits convert a BITMAPCOREHEADER to a BITMAPINFOHEADER before calling win32k, like done in other places. Convert it back after. This allows to simplify NtGdiGetDIBitsInternal (not done yet) (Timo Kreuzer)
  • Fix build (Timo Kreuzer)
  • Revert r50519 and r50519 (Timo Kreuzer)
  • Remove the old SetDIBBits, it severed us well.... Hold on to the win32k call. (James Tabor; #5886)
  • Tested, Area.exe, wine gdi32 bitmaps test, AbiWord 2.8.6, OOo 2.4.3, SM 2.0.11 and ReactOS applications. (James Tabor; #5886)
  • Aimp 2.61.583 (FULL, pinted okay), CoolPlayer 219, winamp 0.98d and winamp 2.95 (not FUll). The rest have drawing issue with DIB. . (James Tabor; #5886)
  • Protect SetDIBitsToDevice with seh and track it. This is for vbrun60spXX. Code fix ups and cleanup. (James Tabor)
  • allocate sufficient buffer when creating a DIBSECTION compatible bitmap. (J√©r√¥me Gardou)
  • Fixes bug 5822 (J√©r√¥me Gardou)

IMAGEHLP

IPHLPAPI

  • Rewrite name server enumeration routines (Johannes Anderwald)
  • Check if static dns entries are present before checking for dynamic dns entries (Johannes Anderwald)
  • Fixes static dns entries (Johannes Anderwald)
  • Remove conditional redefine of DPRINT. Wine debug channels at this point, and we have NDEBUG. (Roel Messiant)
  • Use TRACE instead of DbgPrint. Gets rid of the "Status 2" spam when no static nameserver is in the registry. (Roel Messiant)

KERNEL32

  • Winnls.h can be included now. (Kamil Hornicek)
  • Igor Paliychuk: Fix properly showing genitive names from NLS data by applying a missed Wine sync. (Aleksey Bragin; #5556)
  • NtCreateSection should not be called with merely SEC_FILE: this says nothing about what kind of operation should be done (a commit, a reserve, etc?). Use SEC_COMMIT instead to specify correct operation. This works in ReactOS as of now, but would've failed after the NtSection* API rewrite. (sir_richard)
  • CreateFileMappingW should also accept/allow SEC_LARGE_PAGES, even if we don't suppport it yet. (sir_richard)
  • Revert incorrect changes from 34404 and 40910: RtlSetUserFlagsHeap() doesn't set usual heap flags, it sets special user-settable heap entry flags. With the new heap manager such usage corrupts heap integrity (not to say prototype of this function is incorrect). (Aleksey Bragin)
  • RtlReAllocateHeap() is supposed to copy user values and flags so there is no need to set them afterwise again. (Aleksey Bragin)
  • Fix a typo in comments. (Aleksey Bragin)
  • Print delphi exception with the Exception code 0xeedfade, we were previously only checking for 0xeedface, maybe an older value. (Timo Kreuzer)
  • Remove the old version of WaitNamedPipeW. (Eric Kohl)
  • This patch fixes the broken wait pipe code. It was written and tested on r49458 because later revisions do not work for me. (Eric Kohl)
  • Added real implementation of SetLastError() (instead of forwarding to NTDLL) (Pierre Schweitzer)
  • Implemented BaseSetLastNTError() (Pierre Schweitzer)
  • Renamed Basep8BitStringToCachedUnicodeString() to Basep8BitStringToStaticUnicodeString() and sightly changed its implementation (Pierre Schweitzer)
  • Fixed implementation of LoadLibraryExA() & DisableThreadLibraryCalls() using those changes (Pierre Schweitzer)
  • This is matching w2k3 implementation. This is of course a WIP. (Pierre Schweitzer)
  • Updates for Rapps Download Database. (Daniel Reimer)
  • Revert r49761 on Pierre's request (Timo Kreuzer)
  • Fix heap corruptions in MoveFileWithProgress (Johannes Anderwald)
  • Fixes kernel32_winetest change crash (Johannes Anderwald)
  • Introduced in rev 18073 (25.Sept 2005) (Johannes Anderwald)
  • ReadDirectoryChangesW: Treat the OVERLAPPED structure as an IO_STATUS_BLOCK, not one of its fields. (Roel Messiant)
  • 64 bit compatibility fix for IsWow64Process. (Thomas)
  • Add french translation for runonce utility (Johannes Anderwald; #5918)
  • Add svn:eol-style native property (Johannes Anderwald; #5918)
  • Fix language id (SUBLANG_DEFAULT -> SUBLANG_NEUTRAL) (Johannes Anderwald; #5918)
  • Properly implement GetLastError and export it. (Pierre Schweitzer)
  • Get rid of old function Basep8BitStringToLiveUnicodeString() that doesn't exist under Windows, and that was even unused (Pierre Schweitzer)
  • Rename Basep8BitStringToHeapUnicodeString() to Basep8BitStringToDynamicUnicodeString() and fix its implementation (and all the calls) (Pierre Schweitzer)
  • Define BasepUnicodeStringTo8BitString() (Pierre Schweitzer)
  • Get rid of Wine's implementation of GetTempFileNameA/W and reimplement them in the Windows 2003 way. (Pierre Schweitzer)
  • This fixes bug #5481 (Pierre Schweitzer)
  • Don't mix tab index and memory length... (Pierre Schweitzer)
  • This fixes several bugs in GetTempFileNameW() and prevents memory corruption ~ (Pierre Schweitzer)
  • Winetest regression is gone :) (Pierre Schweitzer)
  • Forgotten changes to .pspec. (Pierre Schweitzer)
  • Why is there still a .def? (Pierre Schweitzer)
  • Don't make GetBinaryTypeA() rely on Wine's strings conversions functions (Pierre Schweitzer)
  • Don't make FindFirstChangeNotificationA() rely on Wine's strings conversions functions (Pierre Schweitzer)
  • Don't make CopyFileExA() rely on Wine's strings conversions functions (Pierre Schweitzer)
  • Add some debug prints (Giannis Adamopoulos)
  • Fix some cases where we didn't check for the return value of CsrAllocateCaptureBuffer (Giannis Adamopoulos)
  • Remove unused .def file. We're using .pspec here (Pierre Schweitzer)
  • Fix buffer overwrite in GetModuleFileName(). Spotted by DPH. (Aleksey Bragin; #5964)
  • Start unifying kernel32 Find* functions. (Pierre Schweitzer)
  • All calls end in same methods that are working only in unicode now. (Pierre Schweitzer)
  • Next step would be to unify stream & files using only one struct. (Pierre Schweitzer)
  • Apply consistent formatting to FlushFileBuffers. (Pierre Schweitzer)
  • No code changes yet (Pierre Schweitzer)
  • FlushFileBuffers: (Pierre Schweitzer)
  • In spite of what MSDN pretends, it appears that FlushFileBuffers flushes console input buffer when it's called with a console handle. Then, do it here as well. (Pierre Schweitzer)
  • Get rid of SetLastErrorByStatus here... (Pierre Schweitzer)
  • Fixed implementation of both GetFileTime/SetFileTime (Pierre Schweitzer)
  • Fix PNP_QueryArbitratorFreeData() and PNP_QueryArbitratorFreeSize() prototypes. (Eric Kohl)

LSASRV

  • Add ServiceInit() stub and call it from lsass. (Eric Kohl)
  • Change the calling convention of all LSA-RPC function to stdcall. (Eric Kohl)
  • Export some of the LSA-RPC functions. (Eric Kohl)

MPRAPI

MSAFD

MSI

MSVCRT

  • Don't export _matherr (Timo Kreuzer)
  • Apply a hack to msvcrt spec file to avoid duplicate definition of atexit. Mingw-w64 has an identical hack. (Timo Kreuzer)
  • No reason for wcsxfrm to be a stub when code is here. (Sylvain Petreolle)

NETCFGX

OLEACC

  • Use an actual entrypoint. Needed to record the instance handle, used by various function that access resources of the module. Should fix oleacc:main winetest. (Roel Messiant)

OPENGL32

RPCRT4

  • Add a missing format type to unmarshall_discriminant(). (Eric Kohl)

SECUR32

  • Don't leave packageinfo uninitialized. Even though it's not the way it should work, wine's rpcrt4 doesn't really expect that function to return no packages at all. Should prevent freeing an unitialized pointer. (Aleksey Bragin; #5778)

SETUPAPI

  • Implement CM_Get_Device_ID_List_ExW(). (Eric Kohl)
  • SetupDiClassNameFromGuidExW: Rewrite to prevent a buffer overflow and pass additional winetests. Should fix bug #5474. (Roel Messiant)
  • SetupDiClassNameFromGuidExA: Return the required buffer size in failure cases. (Roel Messiant)
  • Bind to the PNP service using the Vista-compatible pipe. (Roel Messiant)
  • SetupDiClassNameFromGuidExW: Simplify interaction with registry. (Roel Messiant)
  • SetupDiCreateDeviceInfoW: Check for correct error value. (Roel Messiant)
  • SetupDiGetClassDescriptionExW: Rewrite to return the correct required size and prevent WCHAR sized buffer overflow. (Roel Messiant)
  • SetupDiGetClassDevsExW: Return INVALID_HANDLE_VALUE instead of NULL in failure case. (Roel Messiant)
  • Implement CMP_WaitServicesAvailable(). (Eric Kohl)
  • CM_Get_First_Log_Conf_Ex(): Create a LOG_CONF_INFO struct only if plcLogConf is not NULL. (Eric Kohl)
  • Fix a warning. (Eric Kohl)
  • Implement CM_Is_Version_Available and CM_Is_Version_Available_Ex. (Eric Kohl)
  • Add resource descriptor function stubs. (Eric Kohl)
  • Implement CM_Get_Device_Interface_AliasA, CM_Get_Device_Interface_AliasW and (Eric Kohl)
  • CM_Get_Device_Interface_Alias_ExW. (Eric Kohl)
  • Add a stub for CM_Get_Device_Interface_Alias_ExA. (Eric Kohl)
  • Add 'pSetup'-Prefix to the string table functions according to the new naming convention. (Eric Kohl)
  • Remove the obsolete function StringTableTrim. (Eric Kohl)
  • Rename functions according to the new naming scheme: (Eric Kohl)
  • CaptureAndConvertAnsiArg --> pSetupCaptureAndConvertAnsiArg (Eric Kohl)
  • CenterWindowRelativeToParent --> pSetupCenterWindowRelativeToParent (Eric Kohl)
  • ConcatenatePaths --> pSetupConcatenatePaths (Eric Kohl)
  • DuplicateString --> pSetupDuplicateString (Eric Kohl)
  • EnablePrivilege --> pSetupEnablePrivilege (Eric Kohl)
  • GetVersionInfoFromImage --> pSetupGetVersionInfoFromImage (Eric Kohl)
  • IsUserAdmin --> pSetupIsUserAdmin (Eric Kohl)
  • MultiByteToUnicode --> pSetupMultiByteToUnicode (Eric Kohl)
  • MyGetFileTitle --> pSetupGetFileTitle (Eric Kohl)
  • OpenAndMapForRead --> pSetupOpenAndMapForRead (Eric Kohl)
  • RegistryDelnode --> pSetupRegistryDelnode (Eric Kohl)
  • UnicodeToMultiByte --> pSetupUnicodeToMultiByte (Eric Kohl)
  • UnmapAndCloseFile --> pSetupUnmapAndCloseFile (Eric Kohl)

SHELL32

SHLWAPI

  • Explicitly add msvcrt before ntdll to use it's *sprintf functions. Fixes bug 5557 (Timo Kreuzer)

SYSSETUP

  • SC Manager needs SC_MANAGER_ENUMERATE_SERVICE access right to be able to open a service (J√©r√¥me Gardou)
  • Add debug prints to help tracking down the "EnableUserModePnpManager()" issue (J√©r√¥me Gardou)
  • EnableUserModePnpManager: StartServiceW can fail due to the service already running. Check last error for such a case. Should fix bug #5846. (Michael Martin)

URLMON

USER32

  • Remove the last reactos-only export from user32 (PrivateCsrssManualGuiCheck) (Giannis Adamopoulos)
  • One more leftover to add. Now we test for both Local and Global hooks in user32. This will force any message sent to win32k if there are any Global hookers so we loose in performance. We need to rethink our usage of these Global hookers in our code. (James Tabor)
  • Fix an over site and copy the return data back to the kernel. (James Tabor)
  • Sync up with wine 1.2 rc6 menu so it will pass the tests from rev 47939. (James Tabor)
  • Fixed export for PrintWindow and 5609. (James Tabor; #5466)
  • Remove a bunch of uneeded code in GetMessage and PeekMessage that copyied the lparam in a new buffer and did unicode to ansi convertions. It is not needed because they don't receive messages with pointers any more (Giannis Adamopoulos)
  • Fix all the user32 wine win test_parent_owner tests. (James Tabor)
  • Fix most of the user32 wine win test_mdi tests. Leaving 30 failures dealing with rect size, Class and Title names. (James Tabor)
  • Controls: Set fnids for the user client controls. (James Tabor)
  • Start creeping in more Left to Right support, readying up for the next wine User32 controls port and test sync. Code is based on wine, credit them for any breakages. 8^P Our positions are off by 103 x 122 in some test cases, anyone having an idea please chime in. (James Tabor)
  • Happy New Year! (Aleksey Bragin)
  • Dear ReactOS team, you're the best. (Aleksey Bragin)
  • Use new wsprintf library, remove old code (536 lines) (Timo Kreuzer)
  • Fixes output of %I64, for example dxdiag (Timo Kreuzer)
  • Implement sending EVENT_SYSTEM_DIALOGSTART event. It will be used by rosautotest (Giannis Adamopoulos)
  • Fix bug in CreateIconIndirect (Timo Kreuzer)
  • implement get_icon_size (Timo Kreuzer)
  • use unmodified wine code for STATIC_PaintIconfn (Timo Kreuzer)
  • Fix CreateIcon and CreateIconIndirect. Fixes user32_winetest:cursoricon. (Yes we execute less tests, but that is correct! wine probably only passes these tests by chance) (Timo Kreuzer)
  • TRANSLATION: fix typo in shutdown. (Sylvain Petreolle)
  • Fix a typo. Fixes "Calling invalid routine number 0x10 in NtUserCallOneParam()" (Timo Kreuzer)
  • remove a hack in DrawMenuBar (Rafa≈; #5949)
  • Revert a previous change that shouldn't have been comitted yet. (Timo Kreuzer)
  • Go back to use of SetWindowLongW instead of GetWindowLongPtrW for GWL_STYLE to reduce diff to wine code. (Timo Kreuzer)
  • Sync edit.c with wine head. (Timo Kreuzer)
  • When the Edit receives WM_KILLFOCUS, it will notify its parent (the ListView) (Thomas; #5895)
  • of losing focus, which in turn will send WM_CLOSE to destroy the edit control. (Thomas; #5895)
  • This will cause the edit to receive WM_DESTROY and free the EDITSTATE. (Thomas; #5895)
  • When control returns to the WM_KILLFOCUS handler, this would call (Thomas; #5895)
  • EDIT_UnlockBuffer on the now invalid EDITSTATE. (Thomas; #5895)
  • Fix this by checking the validity of the EDITSTATE before calling EDIT_UnlockBuffer. (Thomas; #5895)
  • Fixes explorer crash, when cancelling file renaming. (Thomas; #5895)
  • Rafal Harabien: Add some missing bitmaps to user32. They are copied from Wine. Change "old" cursors identifiers to defines from winuser.h (OCR_*). (Aleksey Bragin; #6000)

WINHTTP

WININET

  • Add a ROS-specific change that was missed during the last winesync to fix winsock error handling (Cameron Gutman)
  • Remove the CP_UNIXCP definition (Cameron Gutman)
  • Use WSASetLastError instead of errno in inet_ntop.c (Cameron Gutman)
  • Thanks to IRC:igorko for pointing out the bug (Cameron Gutman)
  • Sync wininet to WINE 1.3.4 (Cameron Gutman)
  • Regenerate wininet_ros.diff so that it actually applies against current WINE head (Cameron Gutman)
  • Add a forgotten change to the diff (Cameron Gutman)
  • Sync to Wine 1.3.9 (Cameron Gutman)
  • Revert part of r47411. The revision was a wine sync, but no wine code was reverted, only the use of zlib is disabled. Fixes downloading audiograbber with rapps. (Timo Kreuzer; #5663)

WINMM

  • MCI_Close: Use UINT instead of UINT16 for the device id (CID 1804). (Roel Messiant)

NMIDEBUG

DRIVERS

BASE

  • Fix and cleanup some code, and enable NMI support on the boot/install CD as well. (sir_richard)

ACPI

BUS

  • Fix ACPI warnings (Love)
  • Based on a (Love)

FASTFAT

FILESYSTEMS

FASTFAT_NEW

  • Substantially improve FatiCreate routine, to handle previously unhandled cases, fix wrong code structure in some places, add a stub for further implementation of a new file creation branch. (Aleksey Bragin)
  • Hackskip setting delay-on-close for a file for now (with a debug print reminder!) (Aleksey Bragin)
  • Some fixes to the previous commit. (Aleksey Bragin)
  • Don't use same name for a local boolean var and global enum. Spotted by Pierre. (Aleksey Bragin)

NPFS

  • Rename DEVICE_EXTENSION to NPFS_VCB. (Eric Kohl)
  • Add a type variable to distinguish FCBs and CCBs for device, directory or pipe. (Eric Kohl)
  • Attach an FCB to the VCB that represents the root directory of the file system and implement an open routine for the root directory. (Eric Kohl)
  • Make NpfsWaitPipe work when it is called for the root directory. (Eric Kohl)
  • Add an FCB that represents the file system (volume/device) and support absolute and relative open, cleanup and close. (Eric Kohl)
  • Read and write IRPs must fail if the caller is not a pipe but a directory or a device. (Eric Kohl)
  • Fail attempts to connect or disconnect a directory or device. (Eric Kohl)
  • Fail attempts to connect or disconnect a pipe by the client. (Eric Kohl)
  • Enable the driver to open a directory using a relative path name. (Eric Kohl)
  • Add NpfsDirectoryControl routine in order to enumerate pipes. (Eric Kohl)
  • Use NpfsGetFcb and NpfsGetCcb to retrieve the FCB or CCB and use SEH to protect these routines. (Eric Kohl)
  • Add support for FileFullDirectoryInformation and FileBothDirectoryInformation. (Eric Kohl)
  • Fix an off-by-one bug in the buffer size calculation. (Eric Kohl)
  • Zero-initialize the return buffer. (Eric Kohl)
  • Initialize only the required parts of the return buffer. This will enable the driver to return information about multiple pipes in a single request. (Eric Kohl)
  • Check if the whole pipe name fits into the return buffer. Return STATUS_BUFFER_OVERFLOW if it does not fit and copy only a part of the file name in this case. (Eric Kohl)
  • Return multiple file entries in a single request. (Eric Kohl)

I8042PRT

INPUT

KS

KSFILTER

  • Simplify KsTopologyPropertyHandler by using KspReadMediaCategory helper (Johannes Anderwald)
  • Return correct status code in case of an overflow (Johannes Anderwald)
  • Fix PciFindParentPciFdoExtension bug found by sir_richard "Early break would leave the lock held" (evb)
  • Fix PciGetHackFlags for setup found by sir_richard "Setup currently doesn't have a correct registry" (evb)
  • Fix DriverEntry for setup like PciGetHackFlags (evb)
  • Fix DriverEntry PciOpenKey check found by sir_richard "PciOpenKey returns a BOOLEAN, not an NTSTATUS" (evb)
  • Stop call PciGetAcpiTable found by sir_richard "PciGetAcpiTable is really broken, can lead to infinite loops, and also corrupts memory. We need to fix stefan's bugs" (evb)
  • Implement not root FDO code in PciScanBus and support PCI_HACK_ONE_CHILD (evb)
  • Implement multiple FDO exist code in PciAddDevice so PCI Bridge support now (evb)
  • Implement PciAreBusNumbersConfigured for PCI Bridge support (evb)
  • Hack FDO Start Device by sir_richard "The root FDO does send boot resources if PCIX is installed properly, this code will be needed" (evb)
  • Do PCI_BUS_DRIVER_INTERNAL bugcheck by sir_richard "I have hacked KeBugCheckEx to ignore this for now, until PnP is fixed" (evb)
  • Implement not root FDO code in PciInitializeArbiters (evb)
  • Implement PciCacheLegacyDeviceRouting, PciFindPdoByLocation used by PciAssignSlotResources (evb)
  • Make PciTranslateBusAddress do the stub work (evb)
  • PciAssignSlotResources disabled because ReactOS not support IoAssignResources (evb)
  • Implement PPBridge_ChangeResourceSettings (evb)
  • PCIX driver nearly working now. (evb)
  • Fix KSPROPERTY_PIN_CATEGORY handler when no category is provided (Johannes Anderwald)
  • Fix KSPROPERTY_PIN_NAME handler when there is no name provided. Use fallback pin category. If there is no category provided, fail with correct error code (Johannes Anderwald)
  • Fix KSPROPERTY_TOPOLOGY_NAME handler by checking if there is a node name provided. If not use node type as fallback. (Johannes Anderwald)
  • Return correct error code when property request id is out of bounds (Johannes Anderwald)
  • Fix property set support handler for topology nodes (Johannes Anderwald)
  • Check if the driver supports a basic support handler. In that case return the basic support handler (Johannes Anderwald)
  • Replace all ms portcls hacks by one. (Johannes Anderwald)
  • MS Portcls is now working in ReactOS (which is nice for testing audio related bugs) (Johannes Anderwald)
  • Fix several bugs in KsProbeStreamIrp (Johannes Anderwald)
  • If requestor is KernelMode - just save a pointer in Irp->AssociatedIrp.SystemBuffer (currently not used) (Johannes Anderwald)
  • If requestor is UserMode mark irp as buffered. Also set Flag IRP_INPUT_OPERATION when the ioctl is IOCTL_KS_READ_STREAM. This is important to propagate modifications to KSSTREAM_HEADERS (in particular DataUsed member) (Johannes Anderwald)
  • ReactOS KS can now be used in WinXP in combination with KSStudio. In order to make it fully work, ks needs to implement software bus functions (Johannes Anderwald)
  • Merge from audio branch (Johannes Anderwald)
  • Perform irp completion in dedicated function (Johannes Anderwald)
  • Move Software Bus function into own file (Johannes Anderwald)
  • Remove debugging code which caused crashes (Johannes Anderwald)
  • Partly implement IKsProcessingObject interface for filter (Johannes Anderwald)
  • Fix check in FindMatchingCreateItem function (Johannes Anderwald)
  • Implement software bus enumerator functions (Johannes Anderwald)
  • Less spam, more information (Johannes Anderwald)
  • Robert Horvath: Always limit destLen to MAX_PATH (modified to an if condition by me). (Aleksey Bragin; #5861)
  • Robert Horvath: Modify GetFullPathName to follow Windows behaviour more closely. Reduces kernel32:path winetests by 4, and fixes all GetFullPathName tests. (Aleksey Bragin; #5865)
  • Oleg Baikalow: TDI exported function prototypes are documented in WDK 7, so use them in our driver instead of old, probably NT4-aged stubs full of unknown variables. (Aleksey Bragin)
  • Oleg Baikalow: Don't use psdk's tdi.h but use a real tdikrnl.h (adding a _TDI_ global define so it's recognized as a tdi driver itself). (Aleksey Bragin)

SWENUM

MULTIMEDIA

AUDIO

SNDBLST.OLD
TEST

NDIS

NETWORK

TDI

  • Oleg Baikalow: Implement basic event and delayed event support functions for CTE. Structure names are made up, but their contents should be compatible with what Windows 2003 tdi.sys uses. Formatting and coding style fixes by the committer. (Aleksey Bragin)
  • Move CTE routines into corresponding events.c and timer.c source code files before further applying Oleg's patches. (Aleksey Bragin)
  • Oleg Baikalow: Finish CTE timers. CTE implementation is complete now. (Aleksey Bragin)
  • Define M_PI_4 too. (Aleksey Bragin)
CDROM

STORAGE

CLASS

  • Reflect changes in Class2. (Pierre Schweitzer)
  • Add Windows Server 2003 DDK Cdrom Sample, under the license and terms of the Windows Server 2003 DDK. (sir_richard)
  • They both build and run fine, but PCIIDE(x) must be completed/enabled, and atapi must be rewritten to be WDM-compliant. (sir_richard)
  • The previous commit message had a typo, these are the Windows XP DDK Samples, not the Server 2003 DDK samples !!! (sir_richard)
CLASS2
  • Switch use from DISK_GEOMETRY to DISK_GEOMETRY_EX. It's needed to handle some Windows 2003's kernel routines. (Pierre Schweitzer)

CLASSPNP

IDE

UNIATA

SCSIPORT

  • Remove some code duplication and fix a bug of copying the same interrupt information twice for a device with 2 interrupts (instead of the info for interrupt 1 then the info for interrupt 2) effectively making initialization fail because the resource allocation code will detect a conflict with itself (Cameron Gutman)
  • Add apitests to reactos.dff (Timo Kreuzer)
  • Implement support for 2 interrupts (Cameron Gutman)
  • Halfplement support for 2 DMA channels (Cameron Gutman)
  • Set/Read the CM_RESOURCE_DMA flags (Cameron Gutman)
  • Remove a duplicate spin lock initialization (Cameron Gutman)
  • Partially tested with 2 interrupts in use but UniATA seems to be broken because it registers both interrupts for each channel even though they are not sharable which causes it to fail when initializing the secondary IDE channel (Cameron Gutman)
  • Fix a couple of typos in the DMA code from my last commit (Cameron Gutman)
  • ScsiPortConvertPhysicalAddressToUlong takes an ULONG_PTR as input, fix function accordingly and do the "calculation" directly instead of calling RtlConvertUlongToLargeInteger (Timo Kreuzer)
  • Spotted by Samuel. (Timo Kreuzer)
  • ScsiPortDeviceControl: Slight improvement to buffer length validation. Return failure status on a handful of failure cases. Prevents buffer overruns in user code. (Roel Messiant)

USB

NT4COMPAT

USBDRIVER

DISPLAYS

VIDEO

VGA_NEW

MINIPORT

VMX_SVGA
  • Convert a pointer to a WCHAR string to an array of WCHARs to fix sizeof calculation. CID 10404 (Timo Kreuzer)

VIDEOPRT

  • Add sanity checks (Johannes Anderwald; #5629)
  • Implement VideoPortGetCommonBuffer, VideoPortLockPages (Johannes Anderwald; #5629)
  • Yugoslavia no longer exists for some time, replaced by Serbia as successor of country code (phone) (Matthias Kupfer)
  • Add parameter checks to DeleteEvent and WaitForSingleObject. (sir_richard)
  • Fix WaitForSingleObject. It was waiting on the Object paramter itself -- which is the VideoPrt/ENG Event, not a real object, we have to wait on ->pKEvent instead. (sir_richard)
  • Fix WaitForSingleObject round two, it was returning the NT_STATUS, while VideoPrt should return VP_STATUS/Win32 error codes. (sir_richard)

WDM

AUDIO

BACKPLN
PORTCLS

HAL

  • Fix amd64 build (Timo Kreuzer)
  • Big rapps Update (Daniel Reimer)
  • Implement HalStopProfileInterrupt and add required RTC register and flag definitions. (Eric Kohl)
  • Fix build failure from r48863. (Eric Kohl)
  • Check that the interrupt line is not 255 (Cameron Gutman)
  • Check that the interrupt pin is not 0 (Cameron Gutman)
  • Fixes a failed assertion that Caemyr experienced with an ATI Rage graphics card (Cameron Gutman)
  • HalpEnableInterruptHandler: Set the IDT_LATCHED flag if the caller requested a latched interrupt (Cameron Gutman)
  • Fix a broken loop that resulted in us registering the resources of multiple COM ports as our KD port (Cameron Gutman)
  • Fixes bug #5530 (Cameron Gutman)
  • Add INIT_FUNCTION where needed. Will save 860KB later. (sir_richard)
  • Disable INIT_FUNCTION to see whether it's responsible for Qemu broken status. Some are complaining of unworking trunk since r49463. (Pierre Schweitzer)
  • This will be reverted after tests. (Pierre Schweitzer)
  • Make directory/buildfiles for OMAP3-specific HAL. Shared between ZOOM2 and Beagle for now. (sir_richard)
  • Convert while (TRUE); to ASSERT(FALSE); on unimplemented pathes. (Timo Kreuzer)
  • Fix Port numbers and ranges in HalpDefaultIoSpace (divide by 0x100) (Rafal; #5925)
  • By me: (Rafal; #5925)
  • Fix DMA 1 port range and fix comment (Rafal; #5925)

CRT

INCLUDE

  • Add powf() wrapper (Timo Kreuzer)
  • Remove empty file (Gregor Schneider)
  • New implementation of all printf functions. It's stream based (like MS one is) rather than buffer based (like our old is). Floating point is not 100% finished, but current implementation is good enough to boot. It can be enabled by a config switch. (Timo Kreuzer)
  • Fix build (Timo Kreuzer)
  • Fix a bug in streamout(), that could cause a buffer overrun and made msvcrt_winetest crash. (Timo Kreuzer)
  • In streamout() handle %%, negative fieldwidth and negative precision. (Timo Kreuzer)
  • In streamout(): fix a number of formatting bugs, round floats, fix issue with large unsigned values that were treated as signed, simplify some code. (Timo Kreuzer)
  • Define JBLEN and JBTYPE for ARM, based on the Windows ARM CRT source code (public). (sir_richard)
  • _assert should use DbgRaiseAssertionFailure which is (a) correct and (b) portable, instead of __debugbreak. (sir_richard)
  • Fix typos (Timo Kreuzer)
  • Fix another typo (Timo Kreuzer)
  • Fix bugs in converted asm file. Fixes Firefox color issues. (Timo Kreuzer)
  • rename pow_asm.c to powl.c to reflect it's content. (Timo Kreuzer)
  • Update "slightly less than all" IDLs to Wine-1.3.9. (Except for shlobj, shobjidl and shtypes.h, and DirectX stuff). (Aleksey Bragin)
  • import MSVCRT_I10_OUTPUT from wine (Christoph von Wittich)
  • import strtoi64 from wine 1.3.10 (Christoph von Wittich)
  • Add missing _A_VOLID definition. (Amine Khaldi)
  • Fix bugs in new printf implementation: use buffer size in _snprintf and check for the right failure return value of streamout_char. (Timo Kreuzer)
  • Proper fix for r50248 ;-) (Colin Finck)
  • Happy New Year from my side as well! (Colin Finck)
  • Improve new printf implementation: (Timo Kreuzer)
  • remove duplicated code and implement a generic function for all (v)s(w)(n)printf (Timo Kreuzer)
  • don't call _flsbuf for string streams, while this works on windows, it doesn't work correctly on reactos (bug!) (Timo Kreuzer)
  • Fix return error codes (Timo Kreuzer)
  • Fix several bugs in new printf implementation. (Timo Kreuzer)
  • Fix a bug in _ecvt that makes msvcrt_winetest::printf crash (Timo Kreuzer)
  • Enable new printf implementation. (Timo Kreuzer)
  • Fix a number of errors in floating point output. (Timo Kreuzer)
  • fix build (Timo Kreuzer)
  • Set errno when a overflow occurs in strtoull (Johannes Anderwald)
  • Fixes 2 wine tests failures in msvcrt:string (Johannes Anderwald)
  • Fix build (Johannes Anderwald)
  • Rewrite broken _flsbuf and implement _flswbuf (Timo Kreuzer)
  • use _flswbuf in wstreamout (Timo Kreuzer)
  • Fixes broken text output in dwnl etc (Timo Kreuzer)
  • Fix build (Timo Kreuzer)
  • Fix _flsbuf return value (Timo Kreuzer)
  • Improve code readability a bit (Timo Kreuzer)
  • Get rid of the old printf code and some unused functions. 3346 lines of code less. (Timo Kreuzer)
  • Remove deprecated <if>. (Timo Kreuzer)
  • undocuser.h] (Giannis Adamopoulos)
  • gather several undocumented definitions for user32 that were defined in several different files, sometimes in the source, sometimes in headers and sometimes defined several times here and there (Giannis Adamopoulos)
  • This file should not contain internal user32 definitions but undocumented public definitions (Giannis Adamopoulos)
  • fix build (Giannis Adamopoulos)
  • fix build (Giannis Adamopoulos)
  • Add user32_wsprintf library, with all the wsprintf functions, generated from the same codebase (Timo Kreuzer)
  • simplify handling of ll modifier in streamout (Timo Kreuzer)
  • Fix miscalculation of number of decimal points to shift for %f format. Should fix shlwapi:string tests and bug 5818. (Timo Kreuzer)
  • Fix uninitialized warning (Timo Kreuzer)
  • Replace isinf with !_finite and isnan with _isnan (Timo Kreuzer)
  • Cleanup math.h from unixism. For now move everything that doesn't belong there into mingw_math.h. (Timo Kreuzer)
  • Fix build of wined3d (Timo Kreuzer)
  • effects dialog doesn't affect the color scheme (commented out until fixed finally) (Matthias Kupfer)
  • save the KeyboardCues value correctly (Matthias Kupfer)
  • Improve _getdrive and _tchdir. (devpao; #5848)
  • Update rapps database. (Daniel Reimer)
  • Fix special behaviour of wsprintf: when used with # flag, the "0x" prefix does not count into the field width, so we have to add additional 2 characters here. Fixes Opera installer. (Timo Kreuzer; #5900)
  • Update _mingw_mac.h from mingw-w64 and add _mingw_unicode.h (Amine Khaldi)

DDK

NDK

PSDK

REACTOS

LIBS

PSEH
  • Allow configuration of native SEH vs PSEH vs dummy PSEH with macro definitions (USE_NATIVE_SEH, USE_DUMMY_PSEH) (Timo Kreuzer)
CSRSS

SUBSYS

  • Should use MEM_COMMIT | MEM_RESERVE, not just MEM_COMMIT when requesting a range of adress space that wasn't already reserved. This works in ReactOS because, well, no reason to explain why, but it wouldn't work on Windows or with a VAD-based kernel. (sir_richard)
  • Sync reg xcopy winhlp32 wordpad and msiexec with Wine 1.3.5 (Daniel Reimer)
  • Initialise PPB to zero. (Roel)
  • The change from NtAllocateVirtualMemory to RtlAllocateHeap causes the memory to (Roel)
  • be not automatically initialised to zero anymore. (Roel)
  • Not every field of the PPB (for which the memory is allocated) gets explicitly (Roel)
  • initialised, meaning this results in them having bogus values. (Roel)
  • One of the now uninitialised fields is DebugFlags, which results in (Roel)
  • DbgBreakPoint being called in NtProcessStartup. Simply ensuring the memory is (Roel)
  • zeroed makes it all better again. (Roel)
  • Katayama Hirofumi: (Sylvain Petreolle)
  • Add / update Japanese translations. (Sylvain Petreolle)
  • Fix typos in calc en-US resource. (Sylvain Petreolle)
  • Bug #5673,5674,5675,5676. (Sylvain Petreolle)

WIN32K

  • Coding for PrintWindow support for bug 5609. This does not fix the export, which should be a direct call to win32k. (James Tabor)
  • Cleanup UserSetCursorPos (Giannis Adamopoulos)
  • UserSetCursorPos: set the new position after sending WM_MOUSEMOVE message (Giannis Adamopoulos)
  • now we pass all tests for SetCursorPos (Giannis Adamopoulos)
  • fix GeoID bug (forgotten \0) (Matthias Kupfer)
  • clean up EXLATEOBJ before error path in NtGdiBitBlt (J√©r√¥me Gardou)
  • Implement win32k support functions for Get and Set process default layout. (James Tabor)
  • Due to changes with wine it will be difficult to sync when RTL support is being added to ComCtl32. (James Tabor)
  • Fix future wine sync user32 win test for get process default layout with null parameter. (James Tabor)
  • Return the correct complexity, pass all user32 wine test_winregion tests. (James Tabor)
  • PSDK (Aleksey Bragin; #5640)
  • Edison Henrique Andreassy <ehasis@hotmail.com>: Add FILEMUIINFO definition. (Aleksey Bragin; #5640)
  • Fixed ValidateTimerCallback, always returning true and just spinning in the loop. (James Tabor)
  • Add one more process information flag with a point type and capturing the hit test in desktop structure. (James Tabor)
  • Reduce duplicated code in co_UserCreateWindowEx, co_IntSetParent and co_WinPosSetWindowPos (Giannis Adamopoulos)
  • based on wine (Giannis Adamopoulos)
  • Don't place new windows with default position at the top left corner of the screen (Giannis Adamopoulos; #5484)
  • Send WM_PARENTNOTIFY message when a window is destroyed (Giannis Adamopoulos)
  • co_UserDestroyWindow: Send WM_PARENTNOTIFY message in correct order (Giannis Adamopoulos)
  • Roel Messiant: Return correct address in the user heap commit routine. Should fix boot with the new heap manager. (Aleksey Bragin)
  • Fix an ancient FIXME in PATH_PathToRegion (Giannis Adamopoulos)
  • Move checks for active hooks in co_HOOK_CallHooks (Giannis Adamopoulos)
  • Remove the FreeLParam 'feature' from win32k. This hack allowed us to post messages that contain pointers. However we don't do it anymore so we can also remove this as well (Giannis Adamopoulos)
  • Add keyboard messages to the list with Hardware messages and not in the list with post messages (Giannis Adamopoulos)
  • Disable checking if a hook is active. It is safe to disable it for now because it is just an optimization. If we try to call a hook when it is not active, it will fail anyway when it tries to find the hook. Fixes calling low level hooks (Giannis Adamopoulos)
  • When we try to call a hook with null hook proc will cause a crash in user32. Add an assertion in win32k in order to catch the problem a bit earlier (Giannis Adamopoulos)
  • Clean up co_IntPeekMessage (Giannis Adamopoulos)
  • Renove some unneccessary casts (Timo Kreuzer)
  • Fix an exception when set condition * first always is used then moving the mouse. There seems to be an initialization issue (The Init Bug) and not setting a desktop. (James Tabor)
  • Fix typos found by Mephisto on IRC, also add some debug prints in SetWindowsHookEx to see what hooks are installed. (James Tabor)
  • Do not override WH_JOURNALPLAYBACK results if zero. (James Tabor)
  • remove svn:mergeinfo (Timo Kreuzer)
  • Fix possible NULL pointer dereference. Spotted by Amine Khaldi. (Timo Kreuzer)
  • Fix possible NULL pointer dereferences. Spotted by Amine Khaldi. (Timo Kreuzer)
  • Improve the code to enumerate monitors. (Timo Kreuzer)
  • Don't use custom MIN / MAX / ABS macros (Timo Kreuzer)
  • Calculate distance by r^2 = x^2 + y^2 (Timo Kreuzer)
  • Use RECTL_bIntersectRect instead of code duplication (Timo Kreuzer)
  • Fix possible NULL pointer dereference (Timo Kreuzer)
  • pass bottom-right exclusive rect to IntGetMonitorsFromRect from NtUserMonitorFromPoint (Timo Kreuzer)
  • Don't handle MONITOR_DEFAULTTOPRIMARY and MONITOR_DEFAULTTONEAREST twice (Timo Kreuzer)
  • Use unsigned variables for unsigned values (Timo Kreuzer)
  • Don't check the result of a UINT returning function for < 0 (Timo Kreuzer)
  • Improve readability (Timo Kreuzer)
  • message.c: (Giannis Adamopoulos)
  • Don't use RETURN macro (Giannis Adamopoulos)
  • Correctly use SEH. Use _SEH2_YIELD (Giannis Adamopoulos)
  • Roel Messiant: (Aleksey Bragin)
  • Heap corruption fixes. (Aleksey Bragin)
  • remove rtl dependency (Johannes Anderwald)
  • thanks to mephisto! (Johannes Anderwald)
  • Fix mdl probe access rights (Johannes Anderwald)
  • Fix possible use of uninitialized variable. Spotted by Amine. (Timo Kreuzer)
  • Remove obsolete code (Johannes Anderwald)
  • Thanks to Amine (Johannes Anderwald)
  • Fix a bug in InitVideo: when looping through the adapters, reinitialize the cbValue before querying the registry. (Timo Kreuzer)
  • Also handle failure. (Timo Kreuzer)
  • Lock thread when removing hooks. (James Tabor)
  • Track end of life thread when removing hooks. (James Tabor)
  • Disable GDI_DEBUG. It's using > 20 MB memory. Too much for some people ;-) (Timo Kreuzer)
  • Change all Init functions to be NTAPI instead of FASTCALL, return NTSTATUS, and be an INIT_FUNCTION (saving incredible 2k). Simplify the initialization sequence by using a simple macro. Delete a comment that is not true anymore. (Timo Kreuzer)
  • Move some globals to appropriate file. (Timo Kreuzer)
  • Make InitVideo return NTSTATUS and properly handle failure (Timo Kreuzer)
  • Silence a DPRINT, improve a DPRINT (Timo Kreuzer)
  • Turn off debug prints. (James Tabor)
  • Fixed WaitForInputIdle, finally!, passed all the wine tests for it. (James Tabor)
  • Moved Get/Peek message to the new all in one support routine. (James Tabor)
  • Foreground hook hits one out of five, this needs more research. (James Tabor)
  • Attempted to workout synchronizing issues with low level and regular hooks. (James Tabor)
  • Simplify co_IntPeekMessage even more (Giannis Adamopoulos)
  • Rename MsqInsertSystemMessage to MsqInsertMouseMessage (Giannis Adamopoulos)
  • Bug 5726: PATCH: regedit: Language File skeleton strings (geekdundee<A_T>gmail.com) (Daniel Reimer)
  • Bug 5735: PATCH: updated slovak translations by Mario Kacmar (Daniel Reimer)
  • Bug 5740: TRANSLATION: rapps: polish (wojtekkozlo664<A_T>op.pl) (Daniel Reimer)
  • Updated the Rapps Versions, too. (Daniel Reimer)
  • Fix hooks, do not cleanup hooks when any window from the same thread is destroyed. (James Tabor)
  • Tweaks to hook and event timeouts. Increase performance with DOSBox when using mouse and keyboard. (James Tabor)
  • Some more cleanup (Giannis Adamopoulos)
  • Test for hooks before setting up for a hook call. This eliminates overhead. (James Tabor)
  • Fix style, use client style. (James Tabor)
  • Fix one of the greatest hacks in message handling: do not wake up every message queue when there is mouse or keyboard input ( wake only the thread that must take input) (Giannis Adamopoulos)
  • rewrite co_WinPosWindowFromPoint, co_MsqInsertMouseMessage and co_MsqPeekHardwareMessage (Giannis Adamopoulos)
  • port co_IntProcessMouseMessage and MsqSendParentNotify from wine (Giannis Adamopoulos)
  • call co_IntProcessHardwareMessage from co_MsqPeekHardwareMessage, and not from co_IntPeekMessage (Giannis Adamopoulos)
  • move co_IntProcessHardwareMessage, co_IntProcessKeyboardMessage and co_IntProcessMouseMessage to msgqueue.c (Giannis Adamopoulos)
  • Apply workaround for POINT / POINTL, like for the others (Timo Kreuzer)
  • Restore capturing the hit test in the desktop structure. Move journal record hook before sending the mouse hook. (James Tabor)
  • revert r49718 (Timo Kreuzer)
  • Remove some unused functions (Giannis Adamopoulos)
  • move several user stubs in ntstubs.c (Giannis Adamopoulos)
  • More fixes to In Send and Reply message support. (James Tabor)
  • More fixes to In Send message support. One more case fixed in looping back. (James Tabor)
  • Amend to r41772. Allow PostMessage to handle DDE messages (Giannis Adamopoulos)
  • In FNID_SENDMESSAGECALLBACK use SEH before accesing the user-mode buffer (Giannis Adamopoulos)
  • Merge r49994 and r49995 from reactx branch (Timo Kreuzer)
  • Use the new version of NtUserGetMessage and NtUserPeekMessage written by Jim. It is possible to use them now because GetMessage and PeekMessage don't return messages that contain pointers. As a result they don't need to do any extra work to copy the message to user mode. All messages that contain pointers are sent messages and this means that they don't get into the message loop. Instead they are passed directly to the window proc. (Giannis Adamopoulos)
  • DispatchMessage works only if the target window belongs to the current thread. This lets us remove uneeded copies of lparam to user mode. (Giannis Adamopoulos)
  • Remove an unneeded debug message (Giannis Adamopoulos)
  • remove some more unnecessary debug output (Giannis Adamopoulos)
  • Silence 3 DPRINTs (Timo Kreuzer)
  • NtGdiGetDIBitsInternal: Copy the requested amount of scanlines into the return buffer, not the whole bitmap. Should fix bug #5766. (Roel Messiant)
  • Remove co_IntPostOrSendMessage and use co_IntSendMessageNoWait where possible (Giannis Adamopoulos)
  • Improve "not enough memory" check when creating a bitmap (J√©r√¥me Gardou)
  • use correct function to set the last error. (J√©r√¥me Gardou)
  • Make sure to initialize our page operation mutex. (Art Yerkes)
  • Scan the whole range of the MemoryArea for pages to evict. (Art Yerkes)
  • This fixes cache section page eviction. (Art Yerkes)
  • IntCreateWindow: Fill out MaximumLength field of the window name. Fixes potential buffer overflow in at least NtUserDefSetText. (Roel Messiant)
  • Fix EngGetLastError and EngSetLastError (Timo Kreuzer)
  • Remove SetLastWin32Error and use EngSetLastError instead (Timo Kreuzer)
  • Fixes bug 5792 and Get/PeekMessage tests. I noticed co_IntPostOrSendMessage to co_IntSendMessageNoWait changes when it should have been changed to co_IntSendMessage. Same as co_IntSendMessage to co_IntSendMessageNoWait when it should have not changed.... I'm sorting it out. ATM win test locks up and the system shutdown box is not present only the text message. (James Tabor)
  • Use SendNotifyMessage for broadcasting these messages and SendMessageNoWait when not broadcasting. (James Tabor)
  • Fix all the user32 wine win test_CreateWindow tests. (James Tabor)
  • Fix all the user32 wine win test_enum_thread_windows tests. (James Tabor)
  • Update note after 50205. (James Tabor)
  • NtUserSetWindowFNID, sets user client side window function Ids, expands to ghost. (James Tabor)
  • Allocate/free GRE events directly from pool, instead of using Eng APIs. Use documented tag for GRE Events (Dfsm), found in pooltag.txt (sir_richard)
  • Implement EngMapEvent and EngUnmapEvent. (sir_richard)
  • Improve LDEVOBJ_bLoadImage, use ExportSectionPointer from the GdiDriverInfo structure instead of calling RtlImageDirectoryEntryToData (Timo Kreuzer)
  • Implement NtGdiGetBoundsRect and NtGdiSetBoundsRect. (Samuel)
  • Access the DC member directly instead of using IntGdiGetDCOrg (Timo Kreuzer)
  • Remove unused IntGdiGetDCOrg, GdiSetDCOrg, GdiGetDCOrgEx (Timo Kreuzer)
  • Simplify error checks, by reordering code in NtGdiScaleViewportExtEx (Timo Kreuzer)
  • Simplify exception handling, use _SEH2_YIELD (Timo Kreuzer)
  • Change function order (Timo Kreuzer)
  • Minor code improvements (Timo Kreuzer)
  • Fix type of DCLEVEL::prgnClip / prgnMeta (PVOID -> PREGION) (Timo Kreuzer)
  • Move NtGdiGetRandomRgn to dcobjs.c (Timo Kreuzer)
  • TRANSLATION: Fix browseui bulgarian resource filename. (Sylvain Petreolle)
  • Fix a bug in FLOATOBJ_DivLong (Timo Kreuzer)
  • Update rapps database (Daniel Reimer)
  • Use if, instead of switch to handle flags in XFORMOBJ_bXformFixPoints (Timo Kreuzer)
  • Define XFORMOBJ to EXFORMOBJ, a stack object that links to the matrix (Timo Kreuzer)
  • There is no spoon. (Timo Kreuzer)
  • Improve NtGdiStretchDIBitsInternal, use _SEH2_YIELT instead of saving an NTSTATUS and handle the fast path in place instead of setting a BOOL variable. Fixes warnings about uninitialized variables. (Timo Kreuzer)
  • In BitmapFormat, allow intermediate bpp values, use ULONG as parameter type, instead of WORD and DWORD (Timo Kreuzer)
  • In NtGdiCreateBitmap get the real bpp value from the gajBitsPerFormat array (Timo Kreuzer)
  • Add back check of too large nWidth (needed to make sure, cjWidthBytes didn't overflow) (Timo Kreuzer)
  • Merge all parameter checks (Timo Kreuzer)
  • Check cPlanes and cBitsPixel paramters explicitly (Timo Kreuzer)
  • Use GreCreateBitmapEx (Timo Kreuzer)
  • Remove BITMAP_GetRealBitsPixel (Timo Kreuzer)
  • In GreCreateBitmapEx handle allocation failure in the rle hack path and set LastError, when failed to allocate bitmap bits. (Timo Kreuzer)
  • Cleanup pooltags a little, use official tags where known and applicable. (Timo Kreuzer)
  • Fix use of XFORMOBJ. Should fix gdi32_winetest clipping regression and release breakage. (Timo Kreuzer)
  • Win32k implementation of GetCharacterPlacementW, work is dedicated to the late Professor John Collins. (James Tabor)
  • Implement NtGdiCreateMetafileDC. (James Tabor)
  • Since most of the gdi work I committed is being reverted or if'ed out of existence, this will be the last. (James Tabor)
  • Remove debugging code. (Timo Kreuzer)
  • Don't trat BI_BITFIELDS as compressed format in DIB_CreateDIBSection. Fixes KSStudio. Why it was introduced by r48359? I don't know. It was broken before. I refrain from making any more comments about that piece of ... code. (Timo Kreuzer; #5781)
  • Don't leak the memory for DIB sections. we set BMF_DONT_FREE in SURFACE_bSetBitmapBits, when the caller provides bits. This needs to be reconsidered. (Timo Kreuzer)
  • In UserSetCursor, return a pointer to the old cursor, not the handle (Timo Kreuzer; #5722)
  • really delete the pointer shape when NULL cursor is set, instead of just hiding it. (Timo Kreuzer; #5722)
  • Move reference handling completely to NtUserSetCursor (Timo Kreuzer; #5722)
  • In UserChangeDisplaySettings, set NULL cursor before change and restore old cursor after change to make sure we have the right color format. (Timo Kreuzer; #5722)
  • Reset monitor size after mode switch. (rafalh; #5727)
  • Go back to hiding the cursor with GreMovePointer, instead of setting NULL bitmaps. While MSDN states that psoColor and psoMask can both be NULL in DrvSetPointerShape, it doesn't explicitly say anything about both being NULL at the same time. VBox driver doesn't expect that and will crash, so most likely windows doesn't do this. (Timo Kreuzer)
  • Set correct error value on failure in NtUserSetCursor. (Victor)
  • Portability bugfixes (Thomas Bluemel)
  • Create a security descriptor for the desktops rather than passing the ACLs in as a security descriptor (Thomas Bluemel)
  • Fix draw of cursors in static controls (Matthias Kupfer)
  • Last part of fix for bug #4874 (Matthias Kupfer)
  • Implement GetClassLongPtrA/W (Thomas Bluemel)
  • Fix replaced by more flexible code for arbitrary cursor sizes (Matthias Kupfer)
  • Fix crash with standalone win test_hind_message test. (James Tabor)
  • Fix buggy mechanism of pushing and popping free gdi handle slots. The old mechanism unneccessarily locked the entry and it was prone to the ABA problem as it didn't use a sequence number. (Timo Kreuzer)
  • Fix a bug in calculation of the background color for 32bpp -> 1bpp color translations. (Timo Kreuzer)
  • Fixes bug 2372 (Timo Kreuzer)
  • add missing file (Timo Kreuzer)
  • Add GetTransform declaration. (until we have undocgdi.h). (Aleksey Bragin)
  • Enable simple FontSmoothing by default. It matters for arwinss, trunk just ignores this value and always smoothes the fonts. (Aleksey Bragin)
  • Robert Horvath: LocalUnlock has to be different from GlobalUnlock. The subtle difference between LocalUnlock and GlobalUnlock, is, that the former will return FALSE and set ERROR_NOT_LOCKED on LMEM_FIXED allocations. Fixes 1 kernel32:heap failure. (Aleksey Bragin; #5869)
  • Robert Horvath: Add GlobalFlag entry in hivesys_{arch}.inf with the default value 0x0. (Aleksey Bragin; #5870)
  • Add a missing ORing of the registry-loaded GlobalFlags value in ExpInitializeExecutive. Thanks to Robert Horvath for spotting the issue. (Aleksey Bragin; #5870)
  • Merge all amd64 related changes from cmake branch (Timo Kreuzer)
  • Merge resource file related changes from cmake branch part 1 (Timo Kreuzer)
  • Merge resource file related changes from cmake branch part 2 (Timo Kreuzer)
  • fix taskmgr build (Timo Kreuzer)
  • Fix build of shlwapi (Timo Kreuzer)
  • Edijs: Properly load window size and position. (Aleksey Bragin; #5872)
  • Merge CRT changes from cmake branch (mainly MSVC compilation fixes) (Timo Kreuzer)
  • Handle BITMAPV4HEADER and BITMAPV5HEADER, when creating a DIB palette. Detect PAL_RGB like done with PAL_BGR in PALETTE_AllocPalette (optimization). (Timo Kreuzer)
  • Fixes pink icons. (Timo Kreuzer)
  • Remove some artifact from ARM build. (Pierre Schweitzer)
  • Would it fix build? (Pierre Schweitzer)
  • Fix initialization of XLATEOBJ, when source and dest format are equal. (Thomas; #5828)
  • Remove gexloTrivial, it was never used (Timo Kreuzer)
  • Remove EXLATEOBJ_vInitTrivial and move the code into EXLATEOBJ_vInitialize (Timo Kreuzer)
  • Properly set XO_TABLE (Timo Kreuzer)
  • Set ppalDstDc in EXLATEOBJ_vInitXlateFromDCs (Timo Kreuzer)
  • In IntEngGradientFillRect, take the translate value into account, that we need when drawing happens on an intermediate surface. (Thomas; #5805)
  • Check if CombinedClip is NULL before accesing it (Giannis Adamopoulos)
  • Should fix a crash with Download Master (Giannis Adamopoulos)
  • compile gdidebug code as a seperate file and give it a seperate header (Timo Kreuzer)
  • Fix a bug in GDIOBJ_LockObj, that would cause a deadlock, when an object was deleted while another thread was waiting to acquire the handle lock. (Timo Kreuzer)
  • Fix a bug that caused problems when the user clicks in the caption of a window to activate it (Giannis Adamopoulos)
  • Revert r50121 and r50154 (Giannis Adamopoulos)
  • Fix combobox to show the drop down window correctly when the parent window is topmost (Giannis Adamopoulos; #5705)
  • Revert 49767 on Pierre's request, which reverted this: (Johannes Anderwald)
  • Added real implementation of SetLastError() (instead of forwarding to NTDLL) (Johannes Anderwald)
  • Implemented BaseSetLastNTError() (Johannes Anderwald)
  • Renamed Basep8BitStringToCachedUnicodeString() to Basep8BitStringToStaticUnicodeString() and sightly changed its implementation (Johannes Anderwald)
  • Fixed implementation of LoadLibraryExA() & DisableThreadLibraryCalls() using those changes (Johannes Anderwald)
  • This is matching w2k3 implementation. This is of course a WIP. (Johannes Anderwald)
  • Add ros specific member cExclusiveLocks to THREADINFO to track number of acquired locks (Timo Kreuzer)
  • Add functions/macros to check lock count (Timo Kreuzer)
  • Move some definitions into gdidebug.h for global use (Timo Kreuzer)
  • Fix broken GdiDbgHTIntegrityCheck (Timo Kreuzer)
  • Add pre and post syscall hook functions (unused yet) (Timo Kreuzer)
  • add tracing of exclusive gdi locks (Timo Kreuzer)
  • add some asserts (Timo Kreuzer)
  • NtGdiStretchDIBitsInternal: don't call NtGdiGetDCObject and NtGdiCreateCompatibleDC with a dc locked. These cases are not harmful, but generally Nt* and Gre* should never be called with an exclusive gdi lock held. Also don't return in failure case with the dc still locked. (Timo Kreuzer)
  • NtGdiSelectBitmap. Don't exclusively lock the old bitmap. This could cause pool corruptions, when the share count reachted 0, the object was deleted and unlocked after that. Use InterlockedCompareExchange to check and exchange the new bitmaps dc. This is commented out, because it causes a lot of drawing problems. Do the referencing manually instead of calling DC_vSelectSurface. Use a shared reference instead of an exclusive lock for the new bitmap. add code for proper handling of DEFAULT_BITMAP, currently hacked due to restrictions in other parts of win32k. Fixes bug 5498 and probably a lot of other problems. (Timo Kreuzer)
  • Remove unused class list pointer and clear the class registered flag. (James Tabor)
  • Restore original patch 50154. (James Tabor)
  • Fix crash with win wine test. Win test works on my tree here and hardware as well. (James Tabor)
  • add code to register pre/post systemcall hooks. Its #if 0'ed to avoid unneccessary overhead. Can be enabled for debugging puposes. (Timo Kreuzer)
  • Small readability improvement. (Timo Kreuzer)
  • Create a new region covering the full desktop in UserRedrawDesktop instead of using Window->hrgnUpdate. Fixes "IntGdiCombineRgn requires hSrc2  != NULL" messages and redrawing issues on mode change. (Rafa≈; #5949)
  • don't transform cordinates twice in GreExtTextOutW (Rafa≈; #4811)
  • Fixes AbiWord toolbar (Rafa≈; #4811)
  • Fix possible lock leak in failure case of NtGdiSetBoundsRect. Fixes a failed assertion spotted by r3ddr4g0n. (Timo Kreuzer)
  • WDMAUD.DRV] (Johannes Anderwald)
  • Set wave in pins into run state (Johannes Anderwald)
  • Fixes hang of ReactOS sndrec32, though it crashes then instantly. Needs more investigation (Johannes Anderwald)
  • Fix biCompression filed in the DIBSECTION structure, returned by BITMAP_GetObject. Fixes K-Meleon toobar. Kudos for the fix go to Rafa≈Ç Harabie≈Ñ. (Timo Kreuzer; #5940)
  • In BITMAP_CopyBitmap, also "copy" the palette of the source bitmap, instead of assuming the one created by GreCreateBitmapEx matches the bitmap bits we have copied. (Timo Kreuzer; #5902)
  • Fixes broken colors on the firefox firstrun page (Timo Kreuzer; #5902)
  • In NtGdiGetDIBitsInternal use a shared lock for the bitmaps and provide background colors when initializing the XLATEOBJ. This fixes mono bitmaps passed to GetDIBits. (no it does not fix pink icons in VLC) (Timo Kreuzer)
  • In BuildDIBPalette don't handle 15bpp, its not valid. and 16 bpp is 555, this is documented in MSDN. (Timo Kreuzer)
  • mark surface as not selected in DC_vSelectSurface when its released from a DC (Timo Kreuzer)
  • NtGdiSelectBitmap: (Timo Kreuzer)
  • Don't allow selecting a bitmap into a dc that is already selected! (Timo Kreuzer)
  • Use DC_vSelectSurface instead of manually selecting (Timo Kreuzer)
  • set the DC size based on bitmap size (Timo Kreuzer)
  • remove duplicate prototype (J√©r√¥me Gardou)
  • use RGB macro where possible (J√©r√¥me Gardou)
  • we create BGR palette for RGB DIB sections, let's do the other way around (J√©r√¥me Gardou)
  • simplify overcomplicated IntGetDIBColorTable (J√©r√¥me Gardou)
  • Add a first implementation of IntRealizePalette (J√©r√¥me Gardou)
  • No, it's not the VLC icons bugfix (J√©r√¥me Gardou)
  • addendum to r50928: 24 and 32bpp BI_RGB bitmaps are BGR (Timo Kreuzer)
  • Fix calculating of ScanLines and source point in NtGdiGetDIBitsInternal for top-down bitmaps to more closely mimic win xp behavior. (Timo - high five for your test app) (Kamil Hornicek; #5524)
  • Raster operations in user mode are on higher bytes, whereas they are on lower bytes for drivers. Try to clarify this situation. (J√©r√¥me Gardou)
  • Add sanity check about what was said previously. (J√©r√¥me Gardou)
  • Implement masking in EngBitBlt (J√©r√¥me Gardou)
  • Rewrite NtGdiMaskBlt accordingly (J√©r√¥me Gardou)
  • Realize the palette when selecting it into a device DC. (J√©r√¥me Gardou)
  • When applying raster operation, do so only on 24 bits, we don't support alpha channel in win32k (J√©r√¥me Gardou)
  • This fixes VLC pink icons, Timo's MaskBlt tests and probably a lot of other things. (J√©r√¥me Gardou)
  • Do raster operation on 4 bytes instead of only 3. Fixes ... (Timo Kreuzer)
  • maybe noone has noticed yet ;-) (Timo Kreuzer)
  • Silence some DPRINTS (Timo Kreuzer)
  • Dismiss alpha channel when creating a solid brush. (J√©r√¥me Gardou)
  • Finally fixes VLC icons and numerous winetests. (J√©r√¥me Gardou)
  • only lock DC if asked to in NtGdiSetDIBits. (J√©r√¥me Gardou)
  • in 1bpp bitmaps, 0 means white. Take that into in SetDIBits (J√©r√¥me Gardou)
  • fix a fixme in XLATEOBJ implementation (J√©r√¥me Gardou)
  • remove useless field from ROS_DCINFO (J√©r√¥me Gardou)
  • Fixes fox audio player GUI :-) Enjoy! (J√©r√¥me Gardou)
  • Revert part of r50941. First its architecturally unclean to lock a DC in a USER function, 2nd its a bug to keep the lock while sending a message. (Timo Kreuzer)
  • Acquire ownership of monitor region before deleting it. (Timo Kreuzer)
  • Fix the select of the clip region for a window. Apologies to Rafal Harabien select works like select, also don't (James Tabor)
  • assume the original author is always right. (James Tabor)
  • Missed the clearing of the clip region for the window at the end of of its life. The mouse is looking for the window, doing so, scanning through all of them, even the ones that are at deaths door. (James Tabor)
  • Add A function to dump all locked handles and call it when an assertion about 0 locks fails. (Timo Kreuzer)
  • add dumping of locked handles to missing places. (Timo Kreuzer)
  • Silence a DPRINT (Timo Kreuzer)
  • Unlock the font in PATH_ExtTextOut. Fixes a failed assertion, when running google earth. (Timo Kreuzer)
  • Fix a crash in WidenPath, tested with Area.exe. (James Tabor)
  • Fix the RLE hack (partly) (Timo Kreuzer)
  • Use GreCreateBitmapEx instead of EngCreateBitmap in NtGdiSetDIBitsToDeviceInternal, so that the RLE hack works. Fix initialization of XLATEOBJ. (Timo Kreuzer)
  • Update all brushes in DC_vPrepareDCsForBlit. This allows us to simplify the code elsewhere. (Timo Kreuzer)
  • clip the destination rect against the bounds of the destination and source surface. Fixes a crash of gdi32_winetest bitmap that occurs as soon as IntCreateCompatibleBitmap is fixed. Other Eng* code needs to be checked as well. (Timo Kreuzer)
  • Fix IntCreateCompatibleBitmap, previously when the given DC was a memory DC with a dibsection selected, the function would only work if the dibsection was <= 8 bpp. (Timo Kreuzer)
  • Fix a warning about an uninitialized variable :D (Timo Kreuzer)
  • Fix calculation of dest rect in IntSetDIBits (Timo Kreuzer; #5886)
  • Rewrite NtGdiStretchDIBitsInternal. It now calls NtGdiSetDIBitsToDeviceInternal in case of SRCCOPY and no stretching and NtGdiCreateDIBitmapInternal + IntEngStretchBlt in the default case. This fixes RLE compressed dibs. (Timo Kreuzer; #5886)
  • The code isn't yet perfect, Windows behaviour is pretty complex, especially in regard to topdown/bottomup DIBs and the whole code needs to be rewritten. It will cause one more failed bitmap test, but another one that was formerly only passing with legacy 9x behaviour now behaves correctly. (Timo Kreuzer; #5886)
  • Fix an uncovered bug. This should fix coolplayer and winamp type applications. Does not fix drawing issues. (James Tabor)
  • Move the drag detection routine to kernel space, this will decrease the number of kernel calls that is noticeable with slower systems running an emulator. (James Tabor)
  • In WH_KEYBOARD hook, lparam isn't a pointer to KBDLLHOOKSTRUCT (Giannis Adamopoulos; #5991)

BZIP2

3RDPARTY

LIB

FREETYPE

INCLUDE
FREETYPE
= CONFIG =
  • Instead of having 4 template rbuild configuration files that must be kept in-sync, maybe there should be a generic one that they all inherit from? (sir_richard)
  • Add new property settings that exist in x86, but not ARM because nobody added them there. For example, nor cc, nor cache were being built on ARM, because NEWCC was undefined (which isn't treated as 0 by rbuild). (sir_richard)
  • How I long for CMAKE. (sir_richard)
= DATA =
== XML ==
ICU
SOURCE

ICU4ROS

MINGW

SOUND

DRIVERS

MMEBUDDY
  • Getting device capabilities requires the unicode version of the structure (Johannes Anderwald)
  • Implement MIDM_OPEN, MIDM_CLOSE, MIDM_START, MIDM_STOP (Johannes Anderwald)
  • Implement MODM_OPEN, MODM_CLOSE (Johannes Anderwald)
  • Refactor MmeOpenWaveDevice into MmeOpenDevice add add support MIXER_DEVICE_TYPE, MIDI_IN_DEVICE_TYPE, MIDI_OUT_DEVICE_TYPE (Johannes Anderwald)
  • Refactor MmeCloseWaveDeivce into MmeCloseDevice and add support MIXER_DEVICE_TYPE, MIDI_IN_DEVICE_TYPE, MIDI_OUT_DEVICE_TYPE (Johannes Anderwald)
  • Merge from audio branch (Johannes Anderwald)
  • Handle mixers identified by id, not by handle (Johannes Anderwald)
  • Fix opening of mixer devices (Johannes Anderwald)
  • Waveformat struct is only provided when type is wave device (Johannes Anderwald)
  • Implement wave reset routine, fixes audio recording on ReactOS SndRec, AudaCity etc. Also fixes random hang in WinAmp when skipping audio bytes (Johannes Anderwald)
  • Implement wave pausing / restarting, should lead to smoother playback (Johannes Anderwald)
  • Check if there is a reset request in progress while the wave thread is active. In that case exit the wave buffer commiting activity (Johannes Anderwald)
  • In the reset routine, perform an alertable wait in order to make the apc io completion complete (Johannes Anderwald)
  • Store the internal state if an audio stream has been stopped (Johannes Anderwald)
  • Construct a thread when WODM_RESTART is received. This thread then triggers performs a callback to the wave thread, which finally restarts playback (Johannes Anderwald)
  • Only start the wave thread when playback is active (not paused by WODM_PAUSE) (Johannes Anderwald)
  • Fixes playback in Winamp 5.601 despite graphical issues (Johannes Anderwald)
  • Tested in Vbox 4.0 + 512MB RAM + Winamp 5.601 (Johannes Anderwald)
MMIXER

LSALIB

  • Fix compiler warnings for AMD64 build. (Eric Kohl)

FONTS

MEDIA

INF

NTOSKRNL

  • IoRegisterPlugPlayNotification: Do not fail if no Interface can be found for the given GUID. Just do not call the Callback-Routine in this case. The Interface could be created later. (Eric Kohl)
  • disable some locale IDs because they are not supported yet (Matthias Kupfer; #5636)
  • 417 Rhaeto-Romanic (Matthias Kupfer; #5636)
  • 445 Bengali (India) (Matthias Kupfer; #5636)
  • or still unknown (Matthias Kupfer; #5636)
  • 48f (Matthias Kupfer; #5636)
  • 490 (Matthias Kupfer; #5636)
  • this fixes multiple entries () (Matthias Kupfer; #5636)
  • Implement NtQueryOpenSubKeys. (Eric Kohl)
  • Add amd64 versions of MI_MAKE_PROTOTYPE_PTE and MiProtoPteToPte (Timo Kreuzer)
  • Remove outdated external declarations (Timo Kreuzer)
  • disable deprecated amd64 code (Timo Kreuzer)
  • use MiFillSystemPageDirectory only for 2 paging levels (Timo Kreuzer)
  • Fixes amd64 build (Timo Kreuzer)
  • remove svn:merginfo (Timo Kreuzer)
  • Alternative workaround for pentium lock errata: Instead of burdening the page fault handler, just mark the IDT page as Write-Through if the bug is present. According to http://www.rcollins.org/Errata/Dec97/F00FBug.html it shall prevent the lock up. Please test. Dedicated to elhoir. (Timo Kreuzer)
  • Fix ARC names accordingly (Pierre Schweitzer)
  • Fix indentation. No code changes. (Eric Kohl)
  • Don't ignore IopCreateArcNames() return while booting. (Pierre Schweitzer)
  • At the moment, it's just returning STATUS_SUCCES but it will be changed later. (Pierre Schweitzer)
  • Fixed a FIXME in ARC names by implementing IopStoreSystemPartitionInformation(). This make ReactOS writing boot paths to registry. (Pierre Schweitzer)
  • On boot, while loading drivers, make starting Loader Block available to the whole kernel to let drivers calling on-boot functions that may need it. (Pierre Schweitzer)
  • One of them will be implemented later. (Pierre Schweitzer)
  • Implement SeImpersonateClientEx() and simplify SeImpersonateClient(). (Eric Kohl)
  • Replace \" with "" in resource files. This makes CMAKE build way more silent. Needs to be merged. (Daniel Reimer)
  • TBD find a way to silent warnings happening due to \n in strings. (Daniel Reimer)
  • Implemented FstubAllocateDiskInformation(), FstubDbgGuidToString(), FstubDbgPrintDriveLayoutEx(), FstubDbgPrintPartitionEx(), FstubDetectPartitionStyle(), FstubFreeDiskInformation(), FstubGetDiskGeometry(), FstubReadPartitionTableMBR(), FstubReadSector() (Pierre Schweitzer)
  • Stubbed FstubReadPartitionTableEFI() (Pierre Schweitzer)
  • This leads to a correct & working implementation of IoReadPartitionTableEx(). As this state, it only handles MBR partition tables as EFI/GPT as been stubbed out. (Pierre Schweitzer)
  • EFI/GPT support will come later. (Pierre Schweitzer)
  • Implemented IopFetchConfigurationInformation(), IopCreateArcNamesCd(), IopCreateArcNamesDisk(), IopVerifyDiskSignature() (Pierre Schweitzer)
  • Removed IopApplyRosCdromArcHack(), IopGetDiskInformation(), IopAssignArcNamesToCdrom() (Pierre Schweitzer)
  • Finally, rewritten IopCreateArcNames() (Pierre Schweitzer)
  • To make it short, this is the rewrite of ARC names handling in the kernel. (Pierre Schweitzer)
  • This brings our kernel to a higher state of existence. Indeed, it's leaving NT4 design for a proper NT5.2 design, with less hacks, less ROS specific stuff and such. (Pierre Schweitzer)
  • This code handles the mount manager we don't have yet. (Pierre Schweitzer)
  • Implemented FstubAdjustPartitionCount(), FstubConvertExtendedToLayout(), FstubCopyEntryEFI(), FstubCreateDiskMBR(), FstubCreateDiskEFI(), FstubCreateDiskRaw(), FstubDbgPrintSetPartitionEx(), FstubReadHeaderEFI(), FstubReadPartitionTableEFI(), FstubSetPartitionInformationEFI(), FstubVerifyPartitionTableEFI(), FstubWriteBootSectorEFI(), FstubWriteEntryEFI(), FstubWriteHeaderEFI(), FstubWritePartitionTableEFI(), FstubWritePartitionTableMBR(), FstubWriteSector() (Pierre Schweitzer)
  • Implemented IoCreateDisk(), IoGetBootDiskInformation(), IoReadDiskSignature(), IoSetPartitionInformationEx(), IoVerifyPartitionTable(), IoWritePartitionTableEx() (Pierre Schweitzer)
  • To sum up, this commit finishes FSTUB API implementation in the ReactOS kernel. This means one important thing: now ReactOS kernel knows about a bit about EFI and about GPT. No need to say that it's the first step into EFI support. But a lot more work is needed. Especially since the kernel is the only real entity in ReactOS to handle GPT. All the rest of the OS doesn't know anything about GPT. (Pierre Schweitzer)
  • A small note about FstubVerifyPartitionTableEFI(). This function is supposed to check whether a disk formated with GPT is valid, and if it's not, to fix it. First step is implemented. Second step isn't yet supported. (Pierre Schweitzer)
  • A general note about all that stuff: on GPT, backup table isn't properly handled for the moment, as ReactOS is experiencing disk geometry issues. That means it's not having the proper disk sectors count and then, can't find the backup table (which is located on last disk sector). (Pierre Schweitzer)
  • References: (Pierre Schweitzer)
  • http://www.intel.com/technology/efi/ (Pierre Schweitzer)
  • http://developer.apple.com/library/mac/#technotes/tn2006/tn2166.html (Pierre Schweitzer)
  • http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob;f=fs/partitions/efi.h;hb=HEAD (Pierre Schweitzer)
  • http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=blob;f=fs/partitions/efi.c;hb=HEAD (Pierre Schweitzer)
  • Rewrite the resource map code to fix a regression, several failures cases, and a few memory leaks (Cameron Gutman)
  • Remove an incorrect definition of IopDetectResourceConflict in pnpreport.c (no idea how this didn't trigger an onslaught of warnings) (Cameron Gutman)
  • Partially implement IoAssignResources so that it creates a non-conflicting resource list from the requirements but it doesn't claim the resources for the device in the registry (Cameron Gutman)
  • Partially implement IoReportResourceUsage so that it checks the resource list for conflicts but doesn't claim the resources in the registry (Cameron Gutman)
  • Please test this revision with a variety of hardware and drivers because it activates several code paths in the PnP manager (Cameron Gutman)
  • If this causes problems, look for "Denying an attempt to claim resources currently in use by another device!" in the debug log and report the bug to me (Cameron Gutman)
  • Fix a critical bug in the conflict detection code (Cameron Gutman)
  • Don't unconditionally skip conflict detection for shared resources, instead it should be done on a descriptor-by-descriptor basis (if both descriptors are shared) (Cameron Gutman)
  • This check wasn't removed when I initially wrote this code and added the proper check below (Cameron Gutman)
  • Add IoWMIDeviceObjectToProviderId and IoIs32bitProcess stubs for 64bit builds (Timo Kreuzer)
  • Comment out some deprecated amd64 code (Timo Kreuzer)
  • Add MmProtectToValue (Timo Kreuzer)
  • Fix a typo (Timo Kreuzer)
  • Minor stuff. (Pierre Schweitzer)
  • Here is your commit Timo ;) (Pierre Schweitzer)
  • Fix a bug. (Timo Kreuzer)
  • Initialize the Zero variable (Timo Kreuzer)
  • Don't corrupt the Color value in case we didn't have any page on MmZeroedPageListHead. (Timo Kreuzer)
  • Fixes boot. (Timo Kreuzer)
  • Use appropriated macros (Pierre Schweitzer)
  • Simplify code, which should bring some fixing (Pierre Schweitzer)
  • Sync atl, hlink, shdocvw, wtsapi32 with Wine 1.3.7 (Dmitry Chapyshev)
  • Fix potential buffer overflow (Pierre Schweitzer)
  • Get back INIT_FUNCTION on lassy's polite request. (Pierre Schweitzer)
  • Previously, in ReactOS' stories: (Pierre Schweitzer)
  • ReactOS was broken since more a hundred of commits when two devs decided it was enough. One (we will name him Timo) fixed the context switch. The second, with the help of a third dev (Pierre & Herv√©) decided to run tests by disabling some stuff (ie INIT_FUNCTION). This magically made testbot going back to life. (Pierre Schweitzer)
  • But, some complains came from the ML, so trying to appease world, Pierre decided to revert half of his changes, thinking this would be OK. (Pierre Schweitzer)
  • Now, after a night. It appears that half revert was a pretty bad idea. Testbot keeps being broken. (Pierre Schweitzer)
  • So, this commit reverts r49665 (which was half reverting r49662). That way, testbot should be back, able to run tests. BUT, due to a NPFS issue, some tests are broken. Eric has been nicely mailed about that issue, with an idea of fix (thanks go here to Aleksey). (Pierre Schweitzer)
  • For those who like that, drama to follow on ML. (Pierre Schweitzer)
  • I turn into being S/M... (Pierre Schweitzer)
  • Add missing PAGED_CODE() where needed (Pierre Schweitzer)
  • Removed a wrong ASSERT in FsRtlIsNameInExpressionPrivate() and replace it by the right one (Pierre Schweitzer)
  • Mark FsRtlIsDbcsInExpression() as halfplemented (Pierre Schweitzer)
  • Renamed MmIsFileAPagingFile() to MmIsFileObjectAPagingFile() its appropriated name (Pierre Schweitzer)
  • Added it to internal headers (Pierre Schweitzer)
  • Implemented FsRtlIsPagingFile() (Pierre Schweitzer)
  • Implemented FsRtlLookupPerStreamContextInternal(), FsRtlInsertPerStreamContext(), FsRtlRemovePerStreamContext(), FsRtlTeardownPerStreamContexts() (Pierre Schweitzer)
  • Based on my previous work on pierre-fsd branch. (Pierre Schweitzer)
  • Add missing prototype and define (Pierre Schweitzer)
  • Implemented FsRtlPTeardownPerFileObjectContexts(), FsRtlLookupPerFileObjectContext(), FsRtlInsertPerFileObjectContext(), FsRtlRemovePerFileObjectContext() (Pierre Schweitzer)
  • Stubplemented IoGetFileObjectFilterContext(), IoChangeFileObjectFilterContext() (Pierre Schweitzer)
  • Add support of per file object filter context to IopDeleteFile() (Pierre Schweitzer)
  • As ReactOS doesn't support file objects extensions, this doesn't work (blame Aleksey) - yet (Pierre Schweitzer)
  • Forgotten comments... (Pierre Schweitzer)
  • That's not because ARM will rule the world on a day that you're obliged to break x86 build. (Pierre Schweitzer)
  • Fixed build. Will it work? Only God knows. (Pierre Schweitzer)
  • Fix the fix, ie fix x86. (Pierre Schweitzer)
  • Everything should work now ~ (Pierre Schweitzer)
  • Never read code & commit while being tired... (Pierre Schweitzer)
  • Implement MemorySectionName case for NtQueryVirtualMemory. Protect buffer access with SEH. (Samuel; #5753)
  • revert accidental change from r49499 (Timo Kreuzer)
  • Fixed FsRtlIsNameInExpression() according to r50018 tests (Pierre Schweitzer)
  • Rewritten FsRtlIsDbcsInExpression() using FsRtlIsNameInExpression() pattern. (Pierre Schweitzer)
  • This fixes all failing tests from kmtest.sys and make this function definitely tastier to MS fastfat.sys (Pierre Schweitzer)
  • Merge some changes from r50021 to FsRtlIsNameInExpression() to make code easier to read and understand... (Pierre Schweitzer)
  • Silent FstubEx* debug prints on popular demand (ie, Timo) (Pierre Schweitzer)
  • commit base for new vga display miniport driver, is svn copy of framebuf_new as many codes identical (evb)
  • Will than commit and document differences to make into vga driver (evb)
  • Add the new vga miniport to build (evb)
  • Replace the framebuf_new spec rc rbuild with vga_new spec rc rbuild (evb)
  • Delete pointer.c (evb)
  • Start make changes, driver.h new fields for VGA, change driver short/long name/tag, add macros and in enable.c remove hw pointer support (evb)
  • fix now palette.c for vga, by copy logPalVGA/VGALOGPALETTE from NT4 DDK VGA sample drv and turn off codes for allocate 256 color pallette, instead use fix 16 color logPalVGA (evb)
  • fix header of debug.c (evb)
  • Finish make enable.c work full on vga, main change force 4BPP (disable other codes), create 4BPP bitmap surfobj, associate and lock (evb)
  • Easy part done, now hard part (evb)
  • Mode detect look for 4BPP, planar, graphics < 0x800 mode now (evb)
  • Add GDIINFO from NT4 VGA DDK sample driver (evb)
  • Set 4BPP prefer DIB format (evb)
  • No graphics caps set for VGA driver (evb)
  • Put static palette/color buffer for when VGA IOCTL send later (evb)
  • Convert almost done, bInitSURF is last (evb)
  • Fix an assign where a comparison was intended. CID 2626. (Amine Khaldi)
  • Actually, code was correct, but ugly (who said "normal, that's a hack). (Pierre Schweitzer)
  • So, when that code is called from SetupLDR, KeyHandle is required to be to 1. This what code does. Thing we do in the if condition when it appears we are called from SetupLDR. (Pierre Schweitzer)
  • To avoid any further question, or warning, adding more parenthesis to show that we know what we do. (Pierre Schweitzer)
  • So, to sum up, there's no comparaison for KeyHandle (Pierre Schweitzer)
  • Fix CID 3454 (Pierre Schweitzer)
  • Remove all #line 15 "ARM¬≥::BLA" (Timo Kreuzer)
  • Reasons: (Timo Kreuzer)
  • It doesn't provide any benefits, its only purpose was to "look cool" (Timo Kreuzer)
  • It never looked cool, instead a character mess appeared (Timo Kreuzer)
  • It makes finding the related file harder, especially when the file is named differently then the description or when multiple files have the same tag (Timo Kreuzer)
  • It effectively breaks Coverity scans (Timo Kreuzer)
  • Sync xcopy, iexplore, winhlp32, wordpad and write to wine 1.3.10 (Daniel Reimer)
  • Make definitions of ExpChangeRundown, ExpChangePushlock and ExpSetRundown 64 bit safe (have one portable definition and use it accordingly) (Timo Kreuzer)
  • Apply consistent formatting to CcMapData (Pierre Schweitzer)
  • Hoover a bit in CC part 1. Should make MM happier. (Pierre Schweitzer)
  • But MS fastfat driver not yet (Pierre Schweitzer)
  • Plumber work part 1. To prevent leaks (Pierre Schweitzer)
  • Hoovering part 2... (Pierre Schweitzer)
  • Fix typo ~ (Pierre Schweitzer)
  • Remove broken definition of SharedUserdata and use correct SharedUserData instead. Fixes a crash on real Hardware. (Daniel; #5650)
  • Simplify SepPrivilegeCheck. (Timo)
  • Fix comments and reduce code complexity. (Timo Kreuzer)
  • MiAddressToPte translates a virtual address to the corresponding PTE, MiAddressToPde to the corresponding PDE. MiPteToAddress is the inverse of MiAddressToPte and translates from a PTE to the virtual address. MiPdeToAddress broke this scheme and didn't calculate the corresponding virtual adress, but the adress of the page table. Fix this inconsistency by renaming the macro to MiPdeToPte and adding a fixed MiPdeToAddress. All references fixed accordingly. (Timo Kreuzer)
  • For both FsRtlIsNameInExpression & FsRtlIsDbcsInExpression: (Pierre Schweitzer)
  • Remove useless checks (Pierre Schweitzer)
  • Move redundant sum before loop, so it's done only once (Pierre Schweitzer)
  • Fix handling of * wildcard (Pierre Schweitzer)
  • This fixes failing kmtest tests added in r50614 (Pierre Schweitzer)
  • Fix a bug where a spinlock was acquired on not initialized local variable (Johannes Anderwald)
  • For both FsRtlIsNameInExpression & FsRtlIsDbcsInExpression: (Pierre Schweitzer)
  • Get back "useless checks" (tests show they weren't that useless) (Pierre Schweitzer)
  • Prevent code redundancy (Pierre Schweitzer)
  • This fixes 4 failing kmtest tests added in r50679 (Pierre Schweitzer)
  • Improved * WC handling for both FsRtlIsNameInExpression & FsRtlIsDbcsInExpression (Pierre Schweitzer)
  • This fixes all failing tests in kmtest (Pierre Schweitzer)
  • Alex messed up. (Rafal)
  • Fix by (Rafal)
  • No need to use ULONG when dealing with strings, USHORT is enough. This makes MSVC warnings silent. (Pierre Schweitzer)
  • Fix a really nasty bug in FsRtlIsHpfsDbcsLegal() (Pierre Schweitzer)
  • Fix typo. (Sylvain Petreolle)
  • Add support for debug pre/post syscall hooks, that can be registered from win32k. They only exist on DBG versions. (Timo Kreuzer)
  • Halfplement (win32 only) ProcessWow64Information case in NtQueryInformationProcess. (Samuel; #5916)
  • One-line fix for FsRtlIs*InExpression(). This fixes failing tests, but not overrun. (Pierre Schweitzer)
  • Added some breaks to reach more quickly the end (Pierre Schweitzer)
  • Reverted changes commited to largemcb.c (Pierre Schweitzer)
  • They weren't intended to be commited (Pierre Schweitzer)
  • Apply r50873 on FsRtlIsNameInExpression() (Pierre Schweitzer)
  • Fix compilation with _WINKD_=1 (Herv√© Poussineau)
  • Fix a serious bug, where NtAllocateVirtualMemory could allocate memory user mode memory above MmHighestUserAddress up to MmSystemRangeStart - 1, which is a no-access area. (Timo Kreuzer)
  • Fix aborting of backtraces (Timo Kreuzer)
  • Promote service start failures from TRACE to ERR. (Aleksey Bragin; #5924)
  • Print supported CPU features. (J√©r√¥me Gardou)
  • Simplify detection of non working but claimed SYSENTER support for intel processors (J√©r√¥me Gardou)
  • Workaround a virtualbox "feature" : claim that SYSENTER isn't supported despite the fact that it is. (J√©r√¥me Gardou)
  • Fix hang on registration of mshtml.dll in 2nd stage when using Virtualbox. (J√©r√¥me Gardou)
  • shrink cpu features output. (J√©r√¥me Gardou)
  • Add reference for the detection of non SYSENTER aware but claiming so CPUs detection (J√©r√¥me Gardou)
  • Beatify cpu supported features output once and for all (J√©r√¥me Gardou)
  • DPRINT1 is not printf... (J√©r√¥me Gardou)
  • Implemented FstubFixupEfiPartition(): (Pierre Schweitzer)
  • Purpose is to let ReactOS handle realistic partitions length in case of an EFI/GPT protective MBR. (Pierre Schweitzer)
  • Indeed, when formatting a disk to GPT, you add a protective MBR that contains a fake partition entry, with type 0xEE having the following property: its size is set to maximum allocatable size in MBR. (Pierre Schweitzer)
  • In that case, if disk is small, you may go beyond disk size. (Pierre Schweitzer)
  • This is why a fix to partition length may be needed when re-reading partition entry. (Pierre Schweitzer)
  • This is the way ReactOS creates protective MBR. (Pierre Schweitzer)
  • You may find some more information here: http://msdn.microsoft.com/en-us/windows/hardware/gg463525 (Pierre Schweitzer)
  • Fixed xHalIoReadPartitionTable(): (Pierre Schweitzer)
  • Allocate a buffer that has the proper size (instead of allocating a buffer which is too big). Especially since this leads to partial init only some lines after. (Pierre Schweitzer)
  • Remove redundant & useless affectation. (Pierre Schweitzer)
  • Check/fix 0xEE partition length in case of an EFI/GPT protective MBR (see upper point). (Pierre Schweitzer)
  • Implemented FstubTranslatorNull, FstubTranslateResource, FstubTranslateRequirement, xHalGetInterruptTranslator. (Pierre Schweitzer)
  • In other words: please welcome interrupt translator in ReactOS. (Pierre Schweitzer)
  • It's not used yet. (Pierre Schweitzer)
  • Add most of the missing HAL stubs for both public & private dispatch tables (Pierre Schweitzer)
  • Revert r51016 that quite magically breaks Qemu test bot (Registry corruption?). (Pierre Schweitzer)
  • Everything was (and is still fine) on VirtualBox. (Pierre Schweitzer)
  • It will be put back online once the issue will have been fixed. (Pierre Schweitzer)
  • Revert r51017 that was reverting r51016. (Pierre Schweitzer)
  • In fact, it seems that cmlib assert error, whatever that eats randomly doesn't come from software issue inside ReactOS, but from a build issue. (Pierre Schweitzer)
  • Indeed, as you may see in the different tests I performed it shows that the same build produces the same failure, again and again. But, new build shows that there is no assert anylonger with that commit. (Pierre Schweitzer)
  • Don't ask me why or how it happens, I just don't get it. (Pierre Schweitzer)
  • But most of the time, it works, no one knows why ("as usual" (tm)). But it's cool. (Pierre Schweitzer)
  • Someone from BE team and/or buildslaves managers should take a serious look at this issue. (Pierre Schweitzer)
  • Just in case: if that commit re-hits cmlib assert, don't blame it immediatly, just commit something else, and see whether trunk is still broken. (Pierre Schweitzer)
  • But, as you can see in testman, we have now test results for r51016 ;-) (Pierre Schweitzer)

IO

PNPMGR

  • Check that we got a valid vector back from HAL when translating an interrupt resource (Cameron Gutman)
  • Add some debugging messages for failure paths in device resource handling code (Cameron Gutman)

CSR

CSRSRV

SUBSYSTEMS

  • CSRSS was started with a free address space, and was able to map 0xA0000 into it by luck, because the ReactOS Mm allocator picks address ranges randomly, and it somehow managed to avoid the low 1MB addresses. Were this algorithm to change, or perhaps, were we to implement VADs for VM allocations, the 0xA0000 region might already be allocated (by an early-process-initialization allocation, such as the heap). This is what the flag referenced above was designed for, but it was not used. Using this flag, on the other hand, now makes CSRSS fail, because it attempts to map the RAM into 0xA0000, which fails since you can map a section on top of reserved memory. To work around this Brobdingnagian annoyance, CSRSS simply releases the first MB of memory that SMSS has nicely reserved for it, and then proceeds with the mapping. This fixes the issue of getting 0xA0000 by luck and now guarantees it can be mapped. (sir_richard)
  • Dereference all threads, when a process is terminated. Fixes ghost processes in taskmgr! (Rafal; #1567)

WIN32

CSRSS

WIN32CSR

TOOLS

RBUILD

  • Fix "format not a string literal and no format arguments" build warnings. (Eric Kohl)

WIDL

  • Sync to Wine-1.3.4 (Eric Kohl)
  • Bugfix: The switchtype attribute of non-encapsulated unions was not propagated to a type but only to its aliases. (Eric Kohl)
  • Fix Unix build. (Eric Kohl)
  • Revert r49085 and r49086. (Eric Kohl)
  • Update widl to version 1.3.4. (Eric Kohl)
  • Update to Wine-1.3.9. (Aleksey Bragin)
  • Important note: Syntax of widl invocation changed slightly, so take this into account when merging to cmake branch. (Aleksey Bragin)

Uncategorized

0

  • Use the full name we get from SearchForExecutable when building the command line for CreateProcess so we get proper name in argv later. (Kamil Hornicek)

_EX

  • Implement the obsolete functions CM_Query_Remove_SubTree and CM_Remove_SubTree. (Eric Kohl)
  • Implement CM_Get_Hardware_Profile_InfoA/W. (Eric Kohl)
  • Implement CM_Query_And_Remove_SubTreeA/W and CM_Request_Device_EjectA/W. (Eric Kohl)
  • Implement CM_Register_Device_InterfaceA/W and CM_Unregister_Device_InterfaceA/W. (Eric Kohl)
  • Implement CM_Get_Device_Interface_ListA/W and CM_Get_Device_Interface_List_SizeA/W. (Eric Kohl)
  • Update Ukraianian translation by Sakara Eugene (Dmitry Chapyshev)
  • Implement CM_Query_Arbitrator_Free_Data and CM_Query_Arbitrator_Free_Size. (Eric Kohl)
  • Implement CM_Register_Device_Driver. (Eric Kohl)

ADVAPI32_LSASRV

  • Prepare LsapValidateDbHandle for access checks. (Eric Kohl)
  • Move the functionality of LsaQueryInformationPolicy (advapi32.dll) into the new function LsarQueryInformationPolicy (lsasrv.dll). (Eric Kohl)
  • Remove dead code from advapi32.dll. (Eric Kohl)

APPS

ARMDDK

  • Oh, right, forgot how this was laid out. should fix ARM build. (sir_richard)
  • Define some spinlock functions. (sir_richard)

ASM

  • Merge asm related changes from cmake branch. (Timo Kreuzer)
  • revert r49824 (Timo Kreuzer)
  • Add include guards to asm.inc and comment out broken ljmp macro (Timo Kreuzer)
  • Add syscalls.inc, containing assembler macros to generate syscall stubs (all supported architectures) (Timo Kreuzer)
  • Change the macros to prefix the labels with Nt or Zw depending on whether we build usermode or kernel mode stubs (Timo Kreuzer)
  • Create zw.S using the macros (Timo Kreuzer)
  • try to fix build. (Timo Kreuzer)
  • How did it work before? Probably by chance. "As usual"(tm) (Timo Kreuzer)

CLASSPNP_CDROM_NEW

EXPLORER_NEW

  • Provide the ability to query version info (needed for task (DavidErceg; #4386)
  • grouping). (DavidErceg; #4386)
  • Open a context menu, when a task is right clicked. (greenie; #4671)
  • Implement resizing the work area. (greenie; #5846)

FORMATTING

FREELDR_NTFS

HEAP

  • Move on to using a real HEAP_LOCK structure for a heap lock. (Aleksey Bragin)
  • Implement kernel-mode counterparts of this lock too. Right now these don't introduce much of a difference, but they are going to be properly used by the new heap manager code. (Aleksey Bragin)
  • Fix allocated/free memory fillers to match those Windows uses (winetests) (Aleksey Bragin)
  • Add missing coalesce-on-free flag check in RtlCreateHeap (Aleksey Bragin)
  • Turn on tail check/pattern filling in RtlAllocateHeap. (Aleksey Bragin)
  • Add extra stuff storage support in RtlAllocateHeap and its helpers. (Aleksey Bragin)
  • Set win32 statuses where necessary. (Aleksey Bragin)
  • Return success in RtlValidateHeap to reduce spam when running winetest. (Aleksey Bragin)
  • Roel Messiant: Remove old-style Peb->ProcessHeaps assignment from RTL, it's already done by MM. (Aleksey Bragin)
  • Roel Messiant: Fix a typo (missing else) between two if branches, which fixes commit routine support. (Aleksey Bragin)
  • Properly save requested size if 0 was given (1 should be allocated, but 0 saved as a requested amount). Fixes winetests. (Aleksey Bragin)
  • Remove unnecessary dprints. (Aleksey Bragin)
  • Set proper heap flags (tail and free checking) in case heap validation is enabled. Fixes another bunch of winetests. (Aleksey Bragin)
  • Roel Messiant: Fix infinite loop in RtlDestroyHeap if heap contained big blocks. (Aleksey Bragin)
  • Implement setting/getting heap user values and flags (very easy provided heap design is now proper). Amount of winetest failures is down to 12 (but 3 crashes in child processes). (Aleksey Bragin)
  • Move (and cleanup) private heap definitions and structure to a standalone header file heap.h. It's explicitly included in heap_rewrite.c and heapdbg.c to prevent conflicts with the existing heap manager in heap.c. (Aleksey Bragin)
  • Add 64 bit compatibility. (Aleksey Bragin)
  • Properly set HEAP_GROWABLE flag if dwMaximumSize is 0 in HeapCreate. Also check for dwMaximumSize validity. Fixes out-of-memory problems when running "heavy" applications like Office 2003 setup with a new heap manager (which actually respects HEAP_GROWABLE flag). (Aleksey Bragin)
  • More resource fixes making warnings vanish when built with cmake. (Daniel Reimer)
  • RC file fixes for inconsistences shown up by the recent dll work in r49105. (Daniel Reimer)
  • Fix RtlQuery/SetHeapInformation prototypes, move them to an appropriate place. (Aleksey Bragin)
  • Implement RtlQuery/SetHeapInformation. (Aleksey Bragin)
  • Implement in-place block growing. (Aleksey Bragin)
  • Amount of winetest heap failures is down to 6 (3 exceptions still happen). (Aleksey Bragin)
  • Fix DWORD -> ULONG in function definitions too. (Aleksey Bragin)
  • Implement heap validation support. (Aleksey Bragin)
  • Add ability to dynamically allocate UCR descriptors when preallocated amount is exhausted. (Aleksey Bragin)
  • Fix a few bugs in RtlpFindAndCommitPages and in deactivated RtlpDecommitFreeBlock. (Aleksey Bragin)
  • Enable free blocks decommitting. (Aleksey Bragin)
  • New heap manager would now be ready to replace the old one. (Aleksey Bragin)
  • Add special debug heap function declarations and stubs. (Aleksey Bragin)
  • Add a useful inline for detecting whether a special or normal heap is going to be used. (Aleksey Bragin)
  • Implement parameters validation ("DebugHeap") in all used RTL heap APIs. Winetests failures down to 4. (Aleksey Bragin)
  • Hackfixed build by stubbing RtlpValidateHeapHeaders(), RtlpValidateHeapEntry() and hackplementing RtlpValidateHeap(). (Pierre Schweitzer)
  • To be properly fixed. (Pierre Schweitzer)
  • Fix a typo which lead to incorrect flags being forced. Fixes last remaining major winetest failures (only 1 GlobalAlloc/Free implementation related one is left to be fixed). (Aleksey Bragin)
  • Time has come to get rid of a slightly modified implementation of WINE's heap, which is a hack based on Windows 95's heap implementation, itself a hack of DOS memory management. It supported 3 out of the 18 possible NT Heap Flags, did not support custom allocation/deallocation routines, and was about 50-80x slower with fragmentation rates up to 500x higher when compared to NT's LFH (WINE is lucky because the advanced NT Heap features are used in kernel-mode usually, not in user-mode, and they are crossing their fingers for this being the same). Several high-end SQL/Database applications would significantly benefit from custom heap features provided by NT. Not to say about removing crappy support for a custom Commit routine and crappy support for User-defined flags and the User-defined value. (Aleksey Bragin)
  • So, the glorious moment for a new heap manager, which is (to remind you) a totally new heap manager, resembling real NT heap manager, based on data structures similar to Windows 2003 and Vista+'s heap structures, supporting advanced heap flags (e.g. useful for debugging), having substantially lower fragmentation rates (and thus speed and reliability), having native support for user-defined flags and user-defined values, also native support for a custom commit routine, which is very important for trunk's win32 subsystem. It also reserves, commits, decommits and frees memory on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary. Not to say about support for per process heaps, with a proper lock, and a further support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions. (Aleksey Bragin)
  • Yeah, I'm not a fun person :D (Aleksey Bragin)
  • Update the rapps database. (Daniel Reimer)
  • Fix a typo (assignment) in the ASSERT, spotted by Johannes Anderwald. (Aleksey Bragin)
  • Peer review rocks. (Aleksey Bragin)
  • RtlpInsertFreeBlockHelper: Don't validate the Previous Size of the next Heap Entry when inserting a free Heap Entry into a free list. Should solve bug #5843 and may affect bug #5857. (Roel Messiant)
  • All callers of this function already perform this check, except for RtlpInsertFreeBlock, a function used during Heap Segment creation/expansion. (Roel Messiant)
  • RtlpInsertFreeBlock creates multiple free Heap Entries (using the helper function) if the free space is too big to be contained in a single Heap Entry. (Roel Messiant)
  • In such a case however, it creates a Heap Entry and calls the helper before creating the next Heap Entry, which triggers this assert. (Roel Messiant)
  • FontSmoothing" system parameter registry key should be REG_SZ (as it is in Windows, and as other SPIs are). (Aleksey Bragin)
  • RtlpInsertUnCommittedPages: Don't rely on linked list data in an UCR Descriptor after destroying it. (Roel Messiant)
  • No functionality change because the linked list data was still "as expected", but not something we want to rely on. (Roel Messiant)
  • RtlpCreateUnCommittedRange: Fix a typo that caused the head of UCR Segment list of the Heap to be treated as an UCR Segment header. (Roel Messiant)
  • Side effects of the typo: When this list wasn't empty, the (fake) UCR Segment it described was grown to contain more UCR descriptors. (Roel Messiant)
  • Due to the data involved, this always happened to be the initial Heap Segment, which contains the Heap Header. (Roel Messiant)
  • Writing the new UCR descriptors caused the Heap Header and trailing Heap Entries to be partially corrupted. (Roel Messiant)

INTRIN

  • Implement _mm_sfence, _mm_lfence, __faststorefence (for amd64) (Timo Kreuzer)
  • Don't use __sync_synchronize() for _ReadWriteBarrier, as it issues an mfence instruction and this is not what we want (Timo Kreuzer)
  • Remove "BUGBUG" comment, because the fact that _ReadBarrier and _WriteBarrier are full (compiler) barriers isn't critical. (Timo Kreuzer)

NCI

  • Ue macros for the other nci generated files, too and delete nci-tool. (Timo Kreuzer)

NPFS_KERNEL32

  • Switch back to the old pipe wait code but keep the new code in place (disabled). (Eric Kohl)

NTDLL_LDR

  • DPH could be selectively enabled for a specific application by means of Image File Execution options. Commit a rewrite of LdrQueryImageFileExecution* APIs based on a quite old (Alex)
  • This is a forced measure to commit first step of an ntdll/ldr rewrite. This particular commit should not introduce any regressions, because previously that code part just barely worked. (Alex)
  • Don't try to free a pointer allocated on stack. (Aleksey Bragin; #4751)

NTOS

  • Lookup the special labels from above when initializing the System DLL. Only lookup INT2E vs SYSENTER on x86, other architectures don't need a stub. (sir_richard)
  • Bitmap resources start at index 1, not 0. Also make sure we don't go past the maximum IDB_ resource index for no reason, and check the size of the resource instead of assuming it's going to be one page. (sir_richard)
  • Stop using MiInsertInListTail and MiRemoveHeadList in the deprecated ReactOS page functions. Those two functions do not adequately support the semantis needed for page insertion/removal and should've never been used. MmAllocPage now uses MiRemoveAny/ZeroPage, and MmDereferencePage uses MiInsertPageInFreeList. Should help with some corruptions. More is coming. (sir_richard)
  • Don't use dangerous MiRemoveHeadList in MDL page allocation, use MiRemoveAnyPage instead. (sir_richard)
  • Don't repurpose pages from the zero/free page list without actually unlinking the page first! This should fix even more corruptions. (sir_richard)
  • Adding colored page lists means we need to start using the OriginalPte field as a forward/back link. This is shared with AweReferenceCount, which ReactOS uses as the RMAP list head. However, RMAPped pages shoudl never be free/zero, and non-free-zero pages will never have a color backlink in OriginalPte, so it should theoretically be safe to do this. However, it's possible for the RMAP "get" function to be called on a free/zero page (which would normally return NULL), but with color chaining enabled, the "get" function would misinterpret the backlink as an RMAP entry. Therefore, we overload the ParityError bit to signify "there is an RMAP". The get/set functions now handle this, and the color linkage will ASSERT this later. This way, a colorlink with ParityError == FALSE is not treated as an rmap list head. (sir_richard)
  • Remove MiZeroPage, use MiZeroPhysicalPage instead. They work pretty much the same except the needless raise to DISPATCH_LEVEL. (sir_richard)
  • Get rid of the messed up MiMapPageToZeroInHyperSpace which was hacking into MiMapPagesToZeroInHyperSpace. Now MiMapPagesToZeroInHyperSpace is properly implemented to use chained PFNs, and the MmZeroPageThread code has been modified to correctly use the new mechanism. (sir_richard)
  • Zero page mapping now happens at PASSIVE trough MiMapPAgesToZeroInHyperSpace, not DISPATCH anymore. (sir_richard)
  • More fixes are coming to remove the remaining MiRemoveHeadList and rewrite the zero page loop. Should fix more possible corruptions. (sir_richard)
  • One last fix to the zero page thread before we move to ARM3: use MiRemoveAnyPage instead of dangerous MiRemoveHeadList. The code works on the assumption (validated by Windows through a bug check) that MiRemoveAnyPage always returns the first free page, and we also manually grab the first free page, and compare this is true. Nice way to detect PFN database corruption. (sir_richard)
  • Fix MiInsertZeroAtBack to increment the MmAvailablePage count, since MiRemoveAnyPage decrements it (MiRemoveHeadList did not). (sir_richard)
  • Zeroed pages should go at the front, not the back of the zero list. Going to the back is a special boot-only case on MP, which isn't supported. Implement zero-only version of MiInsertPageInList, remove MiInsertZeroPageAtBack. (sir_richard)
  • Remove many other deprecated functions. Physical memory consistency should now be higher than in the past. (sir_richard)
  • The RMAP entry only has a valid process if the address is in user-space, otherwise process is NULL. Only attempt to acquire the process rundown lock if a process actually exists. Fixes crashes caused by 48905. (sir_richard)
  • Switch to using an ARM3, much more correct MmZeroPageThread. Stub support for discarding sections and listening to the Power Manager Idle Timer. (sir_richard)
  • Use a synchronization (auto-reset) instead of notification event for the zero page thread, this way we don't have to reset it manually and query its state. Instead, a boolean MmZeroingPageThreadActive is checked instead. (sir_richard)
  • Once we switch to colored lists, major improvements can be done for speed. (sir_richard)
  • Write missing color code in certain PFN functions, and fix existing code where needed. Add some debugging. For now, turned off until testing succeeds. (sir_richard)
  • Redocument which MMPFN fields are violated by ReactOS-internal values. This has gotten much better than before. (sir_richard)
  • Fix straggling bugs in color table algorithms. (sir_richard)
  • Enable color tables! Right now pages are merely entering and exiting the tables, the tables themselves are never used for allocations. This will change with further commits. (sir_richard)
  • Add MiRemoveZeroPageSafe helper function, when a zero page is required, but the inline zeroing of MiRemoveZeroPage is not. This function will only try grabbing a zero page if one exists, otherwise a free page will be grabbed and zeroed with custom code of the caller's choosing. (sir_richard)
  • Add concept of process color and system color. Compute correct color to use whenever requesting a page. (sir_richard)
  • Uncondtionally enable the color code when inserting/removing pages. (sir_richard)
  • For now, when requesting a page, colors are still ignored, and the global PFN lists are scanned instead. If there are no regressions, we are one patch away from that. (sir_richard)
  • Fix a bug in MiRemoveAnyPage: it was always checking the colored zero page list, instead of checking the colored free page list the second time around. (sir_richard)
  • Add definition for size of a page directory, and size of all page directories required per process (some architectures have more than one page directory per process/address space). (sir_richard)
  • MiSetConsumer no longer achieves anything. Remove it. (sir_richard)
  • Use SYSTEM_PD_SIZE instead of assuming that this is PAGE_SIZE, since this is not the case on (future) ARM and (current) AMD64 ports. (sir_richard)
  • Remove some magic numbers in the pool code, using PTE_COUNT, MiAddressToPde, when needed. Also, the expansion code uses PDEs, not PTEs, so differentiate this, because on some systems (ARM), there are different structures for both. (sir_richard)
  • Use MI_WRITE_INVALID_PTE. (sir_richard)
  • ARM3 paged pool now works, the expansion bug has been fixed (and the code is more portable). Expect to see it gradually enabled soon. (sir_richard)
  • He's climbing in yo PFN database, he snatching yo pages up, tryin to page em so y'all need to hide your pool hide your cache, and hide your working set cuz they grabbin' all the pages out there. We gonna page you, we gonna page you, so you can run and fault on that, run and fault on that, home boy, homeboy, home homeboy. (sir_richard)
  • Enable ARM3 Paged Pool and remove all related deprecated code. Install tested on several VMs, it might cause new regressions. Let's fix them before 0.3.13 instead of reverting. (sir_richard)
  • This is why you shouldn't let Antoine Dodson commit code. (sir_richard)
  • Move all the Nt*Section API interfaces into ARM3 and rewrite most of the code to perform the same parameter validation and input checks as Windows does. Support all protection masks. Use correct section object access mask. Use appropriate SEH where needed. Pass 0-initialized local instead of NULL when needed. Don't assume certain parameters are OPTIONAL when they are not. Don't return SEH failures at the end of the system call, the kernel usually returns the result of the system call proper. Call DbgkMapViewOfSection in scenarios where it would not have gotten called before. Protect against certain kinds of kernel-mode access from user-mode. (sir_richard)
  • Move unimplemented Mm*Section APIs into ARM3 as well. (sir_richard)
  • Go ahead and now fill out the OriginalPte field for PFNs initialized with MiInitializePfn(ForOtherProcess). They should only belong to ARM3 so they'll never have SwapEntry/RMAP associated with them. This functionality is important for future Prototype PTE support, among other things, as it lets us get the original PTE value written for a given PFN entry. (sir_richard)
  • Define MI_MAKE_PROTOTYPE_PTE macro to make a real prototype PTE from a PTE. Define counter-part MiProtoPteToPte to recover the true PTE from a given Prototype PTE. (sir_richard)
  • Define MI_PTE_LOOKUP_NEEDED instead of using 0xFFFF. The name was found in checked build assertion strings. (sir_richard)
  • Add MM_VIEW (used for System-mapped Section Views) and MM_SESSSION (used to define the system/session view mappings) structure definitions. (sir_richard)
  • Initialize system views by calling MiInitializeSystemSpaceMap. This sets up the lock, bitmap, and hash table. (sir_richard)
  • Implement/fixup the code paths during page faults that are needed to succesfuly resolve a demand page associated with a pagefile backed ARM3 section (which uses Prototype PTEs). A lot of the code was already there but assumed we were using Prototype PTEs only for the shared user data page. By combining that code with the typical demand-zero fault code, we obtain the needed paths. For now, only tested with ARM3 sections that are page-filed backed (not image or data-file backed) mapped into system view space (MmMapViewOfSectionInSystemSpace), not user-mode addresses (which need VADs). The code to actually create/map these doesn't exist in trunk yet, the purpose of this checkin is to test the new fault changes to make sure they don't cause negative effects to already-working faults. (sir_richard)
  • Implement MmCreateArm3Section, which creates ARM3-backed sections, but only for pagefile-backed memory at the moment. It uses MiCreatePagingFileMap and creates the expected Segment, Subsection, ControlArea and Section objects described in Windows kernel internals literrature. It's surprisingly easy and only takes 200 lines of code. (sir_richard)
  • Implement MiMapViewInSystemSpace, all it took was another 250 lines and we can now map ARM3 sections into memory. Accessing them causes a fault, which we correctly handle with the prototype PTE fault code. (sir_richard)
  • Added a bogus allocation flag that can be used with Nt/MmCreateSection and MmMapViewInSystemSpace to take the ARM3 path instead. Only for internal testing at the moment. (sir_richard)
  • Now we need to look at how to allow mapping these into user-space as well... (sir_richard)
  • Nobody reads/checks for MEMORY_AREA_CACHE_SEGMENT. Might as well just call this zero (no logical change). (sir_richard)
  • We don't support SEC_BASED for ARM3 sectios either, ASSERT that. (sir_richard)
  • Nobody actually writes TRUE for WriteCopyView in the MEMORY_AREA data structure, so this field is useless (always false). Remove all instances of its use. (sir_richard)
  • Nobody uses MEMORY_AREA_SYSTEM anymore, call these MEMORY_AREA_OWNED_BY_ARM3 for now. We'll have to sync this code with x86 later anyway. (sir_richard)
  • Use the Spare flag in the VAD as a ReactOS/MemoryArea specific flag to signify that this VAD is associated with a MEMORY_AREA and should be unlinked at process exit, but not freed. This is because MemoryAreas themselves are cleaned up later, and in the future their associated VADs (not yet in Trunk) will also be parsed. In the process death scenario, those VADs will be freed, but not unlinked (since it would already have been unlinked). (sir_richard)
  • Add a _64K macro definition so we can stop typing out 65536 all the time. (sir_richard)
  • Delete deprecated handling of MEMORY_AREA_IO_MAPPING. Delete all MEMORY_AREA definitions except the ones for SEGMENT_VIEW and VIRTUAL_MEMORY. All other memory is now owned by ARM3! (sir_richard)
  • Delete WriteCopyView flag from MEMORY_AREA (unused, and was taking up 4 bytes due to alignment), and add a Vad pointer (takes up 4 bytes -- no actual size change). (sir_richard)
  • For VM and Section MEMORY_AREAs mapped in user-mode, build a "fake" VAD and insert it into the VAD Root of the Process. This means there is now a consistent view between ARM3 and RosMm in terms of user-mode address space layout, which will come in handy later. (sir_richard)
  • Destroy the MEMORY_AREA's VAD when the MEMORY_AREA itself is deleted. Watch out for the scenario explained in a previous check-in, where the VAD was caught by the MmCleanProcessAddressSpace vad-cleanup-loop. (sir_richard)
  • Implement MiInsertVad to restore the old functionality of MiInsertNode when the current parent and insertion result is not yet known. It obtains the information and calls MiInsertNode. (sir_richard)
  • Add the tiny little bit of code required to correctly handle user-mode faults on ARM3 mapped sections in certain limited scenarios. (sir_richard)
  • Implement ARM3 version of MmMapViewOfSection, only for ARM3 pagefile-backed sections, and without any special flag support. Tested and works great, with the new pagefault code correctly finding the Prototype PTE for the VAD. (sir_richard)
  • Make every VAD insert also create a MEMORY_AREA. Now the two address space views should be completely synchronized and we can try removing the hack that was done for PEB/TEB support (which will remove the 200 thread regression). (sir_richard)
  • Implement MiGetNextNode and MiFindEmptyAddressRangeInTree. (sir_richard)
  • When shutting down, call Cc to flush the dirty cached pages, otherwise these might've gotten lost (and lead to lost/corrupted data on disk). (sir_richard)
  • Don't assume that CcFlushDirtyPages will run with APCs disabled. Go ahead and actually enter/leave a critical region (Acquire/ReleaseForLazyWrite depend on this). The guarded mutex does disable APCs, but it's released when the actual flush happens. (sir_richard)
  • Delete a bunch of junk, 5 less files in Mm now (also moved some functions around). Delete unused functions where found. (sir_richard)
  • The modified page writer should run at a high priority such as 27, not in idle mode at priority 1 -- otherwise dirty pages never get flushed out. (sir_richard)
  • Reimplement MmGetFileNameForAddress, MmGetFileNameForSection, MmGetFileObjectForSection to also support ARM3 sections. Shouldn't affect anything other than the user-mode debugging support. (sir_richard)
  • Fix whitespace typo in comment (two spaces instead of one). (sir_richard)
  • That's right. I'm not a fun person. (sir_richard)
  • Build fix. (sir_richard)
  • High-level interface fixes to NtAllocateVirtualMemory/NtFreeVirtualMemory: (sir_richard)
  • Validate MEM_LARGE_PAGES, MEM_PHYSICAL flags. Check for permission to use MEM_LARGE_PAGES. (sir_richard)
  • Validate protection mask. (sir_richard)
  • Validate MEM_RELEASE and MEM_DECOMMIT. (sir_richard)
  • Perform correct SEH in NtFreeVirtualMemory. (sir_richard)
  • Protect against overflows past VAD/User address ranegs. (sir_richard)
  • Only reference the process by handle if this isn't already the current process. (sir_richard)
  • If this isn't the current process, attach to it during the duration of the VM operation. (sir_richard)
  • Temporary debugging. (sir_richard)
  • Implement monitor bitmap support for the display dialog (Carlo; #3158)
  • Fix incorrect codepage values (Carlo; #3158)
  • Look for applets in windows dir as well as system dir (Carlo; #3158)
  • Fix bugs in the VAD algorithms, we should be rounding up, not down. (sir_richard)
  • My attempt at making bugchecks a thing of the past has failed, someone has caught the typo. Bugchecks will now happen in ReactOS again instead of being ignored. Maybe you can "forget" to merge this one with the release branch? ;-) (sir_richard)
  • Add support for user-mode VAD faults on page tables (just a couple lines of extra code). (sir_richard)
  • Add support for user-mode VAD demand zero faults. (sir_richard)
  • Remove broken ASSERT. (sir_richard)
  • Hackfix a hack. Should get rid of the recent VAD assert in user32/bpp changes. (sir_richard)
  • Fix copy/paste error. (sir_richard)
  • Add MmProtectToValue array to convert MM/PTE protection values to Win32 protection flags. (sir_richard)
  • Handle faults on non-demand-zero PTEs (and/or demand-zero PTEs that are not READWRITE (such as EXECUTE_READWRITE)). (sir_richard)
  • Use MI_SET_PFN_DELETED where we missed it. (sir_richard)
  • Implement support for deleting user-mode pageable VM addresses. Now when cleaning up the process address space, MiDeleteVirtualAddresses is called for the VADs, so this will now actually free the PEB/TEB pages that were previously getting leaked for each thread/process (a known regression I introduced when moving to VADs for PEB/TEB). (sir_richard)
  • Fix brainfart (an interesting bug we would've never hit, but a bug nevertheless). (sir_richard)
  • Complete the VAD-to-MAREA Synchronization hack by removing fake MAREAs that were added when inserting real VADs. To do this, we have to track the fake MAREA associated with a VAD, so we overload the FirstProtoTypePte field in the VAD, if this is NOT a section VAD (which we don't use yet). We'll figure something out for section VADs later. (sir_richard)
  • Now that VAD and MAREA views are synchronized, remove the VAD limit and let VADs be created at any address. Also do not create an arbitrary 16MB VAD memory area anymore. This basically now allows for as many PEB/TEBs as can fit in the address space, fixing the recent known regression that limited the number of threads a process could have. (sir_richard)
  • Store the protection mask in the Fake VADs as well, we can read/convert this from the MAREA protection value. (sir_richard)
  • Reimplement NtQueryVirtualMemory to use VAD information instead. Even though Alloc/Free are still MAREA-based, the fake VADs we build ought to be enough to make the query API work for certain limited scenarios. Only some paths are implemented and it's lacking SEH, but it's good enough for the install/boot requirements. If there are any regressions, please file bugs. (sir_richard)
  • Remove the Bavarian hack, I no longer think it is needed. (sir_richard)
  • Remove the "35314 sginsberg /* REACTOS Mm Hack of Doom */". Apocalypse averted? (sir_richard)
  • Clean up Mm initialization, there is now no-more RosMM stuff done in Phase 0 of MmInit, only ARM3 runs. The kernel address space and memory areas are only initialized in Phase 1, because that's where sections are started up, and they're the only thing other than VM which still use memory-areas. (sir_richard)
  • Implement MiDecrementReferenceCount and rewrite large parts of the ProbeAndLock/Unlock MDL API to fully use ARM3 APIs, dropping MmReference/DereferencePage behind. (sir_richard)
  • Fix many MDL API bugs: correctly check for I/O pages, use LIST_HEAD instead of -1, track system-wide locked pages, use the process working set lock instead of the address space lock, add check for cross-ring MDL mappings, and make some small optimizations. (sir_richard)
  • Make some more fixes in MmAllocatePagesForMdl, MmFreeMdlPages to make the PFN entries more "correct". (sir_richard)
  • Had a little breakthrough: instead of complicating our lives and hiding certain ReactOS-Mm fields inside legitimate ARM3/MMPFN fields, differentiate between "legacy" (RosMm) and ARM3 pages. The legacy allocator (MmAllocPage/MmRequestPageMemoryConsumer) will use the non-paged pool to allocate a MMROSPFN add-on (8 bytes), in which the RMAP list head and SWAPENTRY are stored. When a legacy "free" is done, this data is deleted. Additionally, we can now tell apart between ARM3 and RosMm pages, so appropriate ASSERTs have been added to make sure the two never cross paths (which should safely let us use all the PFN fields now and implement working sets, etc...). I don't know why I didn't think of this sooner. (sir_richard)
  • Get rid of MC_NPPOOL and MC_PPOOL memory consumers since those are not managed by RosMm anymore. Use MC_SYSTEM for the page table stuff that RosMm still handles, and keep MC_USER and MC_CACHE for the current Section/VirtualMemory/Cache RosMm code. (sir_richard)
  • Implement the MAREA<->VAD hack for section VADs as well. (sir_richard)
  • Use allocation attribute 0x1 instead of 0xC0000000 to let RosMm know this is an ARM3 section. 0xC0000000 is actually a valid combination of SEC_ flags, 0x1 is illegal and thus recognized. (sir_richard)
  • Add support for unmapping ARM3 sections, destroying segments and control areas, and clearing out subsection PTEs. (sir_richard)
  • Add support to MiDeletePte/MiDeleteVirtualAddresses to handle Section VADs. (sir_richard)
  • Add support to MiDeletePte to handle valid, prototype PTEs. (sir_richard)
  • Add MEM_TOP_DOWN support to ARM3 section code. (sir_richard)
  • Add support for unmapping currently mapped ARM3 section views at process termination. (sir_richard)
  • Use the new ARM3 section code for mapping the NLS section in the system (tests the system-view mapping code) and in each new process (tests the data-mapping code). Section is correctly unmapped at process termination time! (sir_richard)
  • C Pointer Math will bite even the most experienced programmer in the ass. Fix wrong calculation which led to ASSERTs and memory corruption (since the last revision). (sir_richard)
  • Fix multiple math/logic bugs in the PrototypePTE paths. Caught while trying to switch the Win32k GDI Handle Table to ARM3 sections. (sir_richard)
  • Go back to using RosMm for the NLS section since supposedly this causes issues on some systems. This is the only actual change in r206/208/209, so if Caemyr's data is correct, this fill fix it. (sir_richard)
  • Protect Arty's changes with #ifdef NEWCC, otherwise this code ASSERTs and crashes as soon as a pageout operation is required. Since your advanced test/regression systems boot into configurations with 1GB+ RAM, you never even test these paths and one could put an ASSERT(FALSE) and you wouldn't even notice it (as proven). (sir_richard)
  • Remove merge artifact from newcc. (sir_richard)
  • Make sure we don't get a user-pointer back from MmMapInSystemSpace. (sir_richard)
  • Sanity checks when dealing with creating/cleaning process address space. (sir_richard)
  • Set the VmDeleted flag when the process address space is being nuked. (sir_richard)
  • Fix typos. (sir_richard)
  • Assert nobody tries to touch the sharecount of a non-ARM3 page. (sir_richard)
  • ASSERT nobody tries to put ARM3 pages into the MC_USER LRU. (sir_richard)
  • You can't just set MDL_LOCKED_PAGES without actually... locking the page. Add a MmReferencePage when doing so, so when that a paging read/write IRP gets completed (and MmUnlockPages is called), the page gets handled correctly. Can now boot with 64MB RAM without ASSERTs. (sir_richard)
  • Fix one of the MDL code paths that isn't getting called frequently. (sir_richard)
  • Fix a bug in MmFindGapBottomUp which could make it return an address lower than what the caller said should be the lowest address. (sir_richard)
  • Fix a bug in the MDL Code which would dereference a completely bogus page frame index. (sir_richard)
  • Misc typo and cleanup fixes. (sir_richard)
  • CR3 should be PDE_BASE, not PTE_BASE! (sir_richard)
  • Define DemandZeroPte. (sir_richard)
  • Define an array of MI_USAGE integers to track what a PFN is used for. (sir_richard)
  • Extend the MMPFN structure for ReactOS-specific PFN tracing mechanism. (sir_richard)
  • Add macros to track page usage and process/extra-data (not yet used). (sir_richard)
  • Add page-tracking macro calls wherever needed. MI_TRACE_PFNS is still off, though, so this code won't be called. (sir_richard)
  • Mark all initialization functions INIT_FUNCTION. (sir_richard)
  • This will save ~280KB of RAM once we dump INIT from RAM in a future patch. (sir_richard)
  • Display current free RAM at certain checkpoints. (sir_richard)
  • Implement the idle loop in C. (sir_richard)
  • Make idle loop portable. Can be moved out of /i386 now. (sir_richard)
  • Context switch in C instead of ASM. Can be made more portable, but it's a good start. Unless Timo rewrites it. (sir_richard)
  • KiDispatchInterrupt (the DPC handler) in C, instead of ASM. (sir_richard)
  • Optimize new context switching code to avoid wasted cycles. (sir_richard)
  • Assign a working set to the system process and correctly initialize its address space. (sir_richard)
  • Assign the working set list address, system-wide, but per-process (in hyperspace). (sir_richard)
  • Give every process its working set page, and store it. Build a bogus working set list (MMWSL). (sir_richard)
  • Use the process working set list (MMWSL) to track page table references during faults, just as Windows does. (sir_richard)
  • Correctly initialize the colored page list heads and assert their validity. (sir_richard)
  • Fix bugs in MiAllocateContiguousPages. Fixes an ASSERT Caemyr was seeting a lot (the cont-able ASSERT). (sir_richard)
  • Part 1 of fixes: For some reason beyond me, I had abbreviated (Art Yerkes)
  • MiCowSectionPage to always assume CoW rather than always not (Art Yerkes)
  • CoW for cache sections. (Art Yerkes)
  • Make sure we're looking for cache type sections rather than (Art Yerkes)
  • as we were in the branch) data file sections. More needed. (Art Yerkes)
  • Fix another bug in the continuous memory allocation code, which would go off-by-one while looping the PFN entries for the allocation, and corrupt the PteFrame/PteAddress of an unrelated PFN entry. If this PFN was in the active lists, it would cause page table leaks and faults, if the page was on a free list, it would override the colored list backlink and corrupt the list, later causing unlinked pages to remain linked to the list. (sir_richard)
  • Fix a bug in MiRemovePageByColor which caused corruption of the page list and could lead to crashes, re-use of freed memory, assuming active memory was free, etc. (sir_richard)
  • Use MI_PFN_ELEMENT in this code, as the extra checks done by MiGetPfnEntry are irrelevant and slow things down. (sir_richard)
  • Remove some old ReactOS hacks before we had MMROSPFNDATA. (sir_richard)
  • Start using colored pages. This will help performance on real systems significantly as cache is now taken into account by the memory manager. Also radically changes the way page allocations are given out and creates a less uniform physical memory layout. The fact this now works means that the PFN lists are finally now sane. (sir_richard)
  • Bugfixes for the I/O Controller Object. (sir_richard)
  • Define portable MI_MAKE_ACCESSED_PAGE macro. (sir_richard)
  • Fix MiDetermineUserGlobalPteMask to account ARM, where the PDE and PTE formats are different. (sir_richard)
  • Fix MiDetermineUserGlobalPteMask to use portable PTE macros instead of hard-coding x86-only fields. (sir_richard)
  • Don't put boot.s in "arch" anymore, it's part of "boot" now. (sir_richard)
  • Erm, why is it that the ARM compiler detects this obvious bug, but x86 does not? Fix missing ShareCount zeroing when unlocking an MDL. (sir_richard)
  • Errr... wow! Another one caught by ARM GCC. I can swear x86 GCC used to catch these. Did someone change warning settings? Anyhow, fix a *f++ which increments the pointer, not the value INSIDE the pointer (*f)++. Fixes MiDeleteSystemPageableVm. (sir_richard)
  • Fix incorrect assumptions that a PDE == PTE which have crept up throughout new ARM3 code. (sir_richard)
  • Fix a couple more unportable directly "Hard" PTE field accesses, instead of using portable MI macros. (sir_richard)
  • Cleanup some of the pool code that had really messed up PDE vs PTE. (sir_richard)
  • Define the number of page directoty levels for ARM. (sir_richard)
  • Comment out some ARM3 code that won't be needed now that most of the x86 code is in C. (sir_richard)
  • Fixes all but one build error. (sir_richard)
  • Add MiGetPteOffset for ARM. All of the kernel compiles, but does not link yet. (sir_richard)
  • Fix up ARM code to match recent ARM3 changes. (sir_richard)
  • Do not use initguid inside every single file to zillionplicate the GUIDs! Why doesn't the x86 linker catch this?!!? (sir_richard)
  • Some more ARM build and linker fixes, moving some of the new x86 C code into ARM. This should really be shared later. (sir_richard)
  • Totally broke thread context switching on ARM for now. It's a Good Thing. (sir_richard)
  • Fix 16-bit interlocked operations on ARM (GCC doesn't provide built-ins). ARM should build now. (sir_richard)
  • STATUS_SUCCESS is not the only succesful return code. (sir_richard)
  • Seems like cpsr_c doesn't work in this case? Need to investigate. Put an infinite loop in the entrypoint on ARM. (sir_richard)
  • Roel Messiant: Fix NtQueryObject to return the required buffer size if the buffer provided was too small. Unimplemented paths behaviour is preserved. (Aleksey Bragin)
  • Check that MaximumSize is valid value if the section is being backed by paging file. (Michael Martin)
  • Always initialize TrapFrame segment selectors in KiEnterTrap, because further C code relies on at least TrapFrame->SegFs being correct. Running Arwinss on VirtualBox exposed this bug. (Aleksey Bragin)
  • I wouldn't find solution for this bug without Timo's great help! (Aleksey Bragin)
  • Remove IMAGE_FILE_MACHINE_NATIVE and IMAGE_FILE_MACHINE_ARCHITECTURE definitions, use only the former (Timo Kreuzer)
  • Fix incompatibility with newer KiEnterTrap implementation. Should fix spontaneous issues I possibly introduced with my previous commit, and finally fixes that VirtualBox issue. (Aleksey Bragin)
  • Fix memory region size calculation in MemoryBasicInformation in certain cases. Spotted by Michael Martin. (Aleksey Bragin)
  • Fix a typo in region size calculation of special memory areas, which unbreaks OllyDbg & co. Thanks Michael Martin for the hint. (Aleksey Bragin; #5692)
  • Do the required flush when the last reference to a cache stripe is released. (Art Yerkes)
  • The installer now completes given enough ram in NEWCC=1, and writes an (Art Yerkes)
  • understandable FS. There's at least one more problem preventing the (Art Yerkes)
  • resulting installation from booting however. (Art Yerkes)
  • Fix a bug in rmap where we were checking the next (unfortunately named (Art Yerkes)
  • current) rmap for a segment membership. (Art Yerkes)
  • Fix a mistake in cache trim. (Art Yerkes)
  • ifdef detection of DirectMapping in section in NEWCC mode in page out. (Art Yerkes)
  • Fix copypasta, thanks Victor! (Aleksey Bragin)
  • Greatly simplify and fix the incorrect and overcomplicated if condition in IoIsOperationSynchronous(), based on MSDN description. Bug spotted, fix tested by Pierre. (Aleksey Bragin)
  • Temporary bring back the old boot image until I or sir_richard commit a proper fix. (Aleksey Bragin)
  • Reduce PDE/PTE confusion a little more. (Roel Messiant; #5791)
  • MiQueryMemoryBasicInformation: Fall back on MEMORY_AREA data in sections until the MM rewrite also covers these. for more info. (Roel Messiant; #5791)
  • Complete rewrite reserving and releasing of System PTEs. (Roel Messiant)
  • The previous algorithm, in a nutshell, worked as follows: (Roel Messiant)
  • PTE clusters are in a singly linked list, ordered by their base address. (Roel Messiant)
  • All PTEs in the clusters are zeroed (except for cluster list bookkeeping). (Roel Messiant)
  • Upon reservation: Walk the list to get the first cluster that's large enough, cut the requested amount of PTEs off its tail and return them. (Roel Messiant)
  • Upon release: Create a new cluster using the PTEs to release, and merge it together with possible adjacent clusters. (Roel Messiant)
  • Problems with the previous algorithm: (Roel Messiant)
  • While the idea is that all PTEs in clusters are zeroed, which requesters rely on, cluster bookkeeping isn't zeroed on merges. (Roel Messiant)
  • The side effect of this was that PTEs that weren't really zeroed were randomly delivered to requesters. (Roel Messiant)
  • 99% of the time, allocations are serviced using the first cluster in the list, which is virtually always the first suitable cluster. (Roel Messiant)
  • This is so because the ordering is based on the base address of the clusters, and allocations are serviced using the cluster tail. (Roel Messiant)
  • Because the first cluster starts out as the whole pool, and the pool is quite sizable, it can deal with virtually allocations.. for a while. (Roel Messiant)
  • A corollary of the previous point is *massive fragmentation* because: as long as an allocation isn't released back into the pool, (Roel Messiant)
  • the space of previous allocations that have been released isn't reused because the first cluster can't suck them up, and enough allocations remain in use. (Roel Messiant)
  • The combined effect of the previous two points: a first cluster that effectively shrinks mostly, with small clusters forming behind it. (Roel Messiant)
  • Once the first cluster has shrunk far enough (which of course takes a long time), 90% of the space may still be free, scattered in mostly small clusters. (Roel Messiant)
  • This would make decent sized allocations fail because of the heavy fragmentation. (Roel Messiant)
  • An implementation detail that caused the head of the list to be treated as a genuine cluster when the first cluster in the list was too small. (Roel Messiant)
  • The algorithm (as explained above) made this case quite unlikely until your system has been running for a while, after which it could happily (Roel Messiant)
  • corrupt list heads of other pools, depending on where the list head is with respect to its own pool. (Roel Messiant)
  • Empirically obtained data revealed that after just *booting to the desktop*, the pool for System Pte Space entries (Roel Messiant)
  • contained roughly 70 (unusable) clusters, blocking 15 to 20% of the pool. These figures increased to roughly 100 (Roel Messiant)
  • clusters and 30 to 35% after opening a foxy browser and using it to visit a mathematically inspired search engine. (Roel Messiant)
  • The same data also showed that over 95% of allocations requested just a single PTE, and a noticable allocation spike (Roel Messiant)
  • also occured in the range of 65-128 PTEs. It should be clear optimizing for small allocations is a good idea, (Roel Messiant)
  • and preferably encourage reuse the same PTEs for such allocations. (Roel Messiant)
  • And the new algorithm was born: (Roel Messiant)
  • PTE clusters are in a singly linked list, ordered by increasing cluster size. (Roel Messiant)
  • All PTEs in the clusters are zeroed (except for cluster list bookkeeping) .. really this time! (Roel Messiant)
  • Upon reservation: Walk the list to get the first cluster that's large enough, cut the requested amount of PTEs off its tail and return them. (Roel Messiant)
  • Upon release: Create a new cluster using the PTEs to release, and merge it together with possible adjacent clusters. (Roel Messiant)
  • Both in the reservation and release actions, insertions into the list preserve the increasing cluster size order. (Roel Messiant)
  • Empirically obtained data now revealed that after just booting to the desktop, the pool for System Pte Space entries (Roel Messiant)
  • contained exactly 2 clusters. This increased to 10 clusters after some minor internet browsing and watching a 5 minute video using a media player. (Roel Messiant)
  • Fix a typo in the page fault handler that caused PDEs to be fixed up when they were in fact valid. (Roel Messiant)
  • Only update the System Page Directory when expanding the paged pool. Fixes the PointerPde asserts. (Roel Messiant)
  • On paged pool expansion, the system page directory and the process page directory of the calling process were updated. (Roel Messiant)
  • When updating the process page directory, an assert made sure the PDE that got written was invalid. (Roel Messiant)
  • In case of the System process, both page directories are located on the same physical page. (Roel Messiant)
  • So when this process expanded the paged pool, the system page directory update automagically (Roel Messiant)
  • updated the process page directory too. The assert therefore triggered. (Roel Messiant)
  • Not explicitly updating the process page directory will result in a page fault later on, which is (Roel Messiant)
  • handled by copying the required PDE from the system page directory to the process page directory. (Roel Messiant)
  • Rumour has it this fix is incorrect because "something's wrong with the System PDE stuff". The lack (Roel Messiant)
  • of any further info however leads to this change and explanation. (Roel Messiant)
  • Remove undocumented defines from winuser.h and include undocuser.h when _WINE is defined. (Aleksey Bragin)
  • crt header compatibility update: (Timo Kreuzer)
  • define _USE_MATH_DEFINES for dsound, gdiplus, jscript and some win32k files (Timo Kreuzer)
  • don't define HAVE_LRINT(F) in libsamplerate (Timo Kreuzer)
  • Remove M_PI constants from win32k (Timo Kreuzer)
  • Try to fix a winetst crash. (Timo Kreuzer)

NTOS_FSRTL

  • Implement parameters checking in FsRtlIsNameInExpressionPrivate. (Aleksey Bragin)
  • Add two shortcuts for common wildcard invocations to make the function faster. (Aleksey Bragin)
  • Second (main part of the function) is still under review. (Aleksey Bragin)
  • Fix a typo, thanks Herve! (Aleksey Bragin)
  • Remove unnecessary upcasing, thanks Pierre. (Aleksey Bragin)

NTOS_MM

  • N (Aleksey Bragin; #3755)
  • Initialize Found to FALSE in NtQueryVirtualMemory. I wonder how GCC missed uninitialized var usage? (Aleksey Bragin; #3755)
  • Implement case when NtQueryVirtualMemory is called with non-existing virtual address. (Aleksey Bragin; #3755)
  • Handle various special cases in NtQueryVirtualMemory (e.g. querying illegal virtual addresses, shared memory area, etc). Example of an app doing this - OllyDbg. (Aleksey Bragin)
  • Don't lie about page protection in MiQueryAddressState. Fixes PDFCreator-alike bugs. (Aleksey Bragin; #5627)
  • Don't access pfn database directly, there is a function for this. Thanks sir_richard. (Aleksey Bragin)
  • An accompanying change to r50768. Fixes boot. (Aleksey Bragin)

NTOSKNRL

NTOSKRNL_MM

  • Acquire rundown protection on process to make sure it is not being terminated and before attempting to do anything with the process. Fixed a rare case of PspDeleteProcess being called twice for a process, resulting in bugcheck. (Michael Martin)
  • Fix the use of an uninitialized variable. (Amine Khaldi)

NTOSKRNL_NEWCC

NTOSKRNL_PPC

NTOSKRNL_PS

  • PspCreateThread: If thread creation fails, dereference the Process object also to account for the reference taken at the beginning of the function. (Michael Martin)
  • Remove mistakenly committed ASSERTs that were used during my tests. (Michael Martin)
  • Revert r48857. The Process object is dereferenced when the Thread object is destroyed, so dont dereference it here. (Michael Martin)

NTSOKRNL

  • add a comment so that noone will stumble upon this atrocity a second time. (Timo Kreuzer)

PSDK_DDK

  • Add more missing definitions. Fix classpnp.h. (sir_richard)
  • Last couple of fixes to headers. Classpnp can compile (and link) now. (sir_richard)

PSDK_NDK

  • Fix KPCR/KIPCR for ARM to match x86 more closely. Add KeGetTickCount for ARM. (sir_richard)

RTL_AVL

  • Remove unnecessary field from TABLE_ENTRY_HEADER. Spotted by (the only in ReactOS?) user of RTL AVL tables - page heap. (Aleksey Bragin)
  • Fix an inverted condition which resulted in incorrect assignment of NewElement var in RtlInsertElementGenericTableAvl(). (Aleksey Bragin)
  • Zero out contents of a newly allocated AVL table node. (Aleksey Bragin)

RTL_DPH

  • Add core DPH (Debug Page Heap) structures based on Windows 2003/Vista. (Aleksey Bragin)
  • Add misc generic support routines. (Aleksey Bragin)
  • Implement DPH version of RtlCreateHeap(). (Aleksey Bragin)
  • Debug prints match those printed by Windows 2003. (Aleksey Bragin)
  • Implement adding a new pool and allocating a new node. (Aleksey Bragin)
  • Add a bunch of stubs. (Aleksey Bragin)
  • Implement list manipulation routines: pool list, virtual list, unused list. (Aleksey Bragin)
  • Implement node removal from an available list. (Aleksey Bragin)
  • Implement more support functions: coalescing a node into the list of available nodes, finding a best fitting node for a given size, growing available virtual memory amount. (Aleksey Bragin)
  • Implement other support locking/unlocking, handle-related routines. (Aleksey Bragin)
  • Fix RtlpDphFreeVm definition. (Aleksey Bragin)
  • Node lists related improvements: Add a function for removing a node from a free list, implement coalescing free nodes into an available list. (Aleksey Bragin)
  • Implement a non-implemented case in RtlpDphAllocateNode when there is a need to allocate more virtual memory, and fix incorrect size calculation too. (Aleksey Bragin)
  • Implement a function for validating the page heap block. (Aleksey Bragin)
  • Implement RtlpPageHeapDestroy. Now we have two exported APIs ready: heap create and heap destroy. (Aleksey Bragin)
  • Use better names for validation information flags based on application verifier messages. (Aleksey Bragin)
  • Implement a simple RtlpDphReportCorruptedBlock routine which just prints the problem description for now, without any additional info. (Aleksey Bragin)
  • Connect debug page heap routines in the debug heap implementation, so they are going to be actually called now. (Aleksey Bragin)
  • Implement delayed free queue initialization and freeing. (Aleksey Bragin)
  • Implement allocating from the page heap along with all necessary helper routines. Some minor things are left though, so it doesn't work yet. (Aleksey Bragin)
  • Change some defines names to more meaningful/readable. (Aleksey Bragin)
  • Fix build. (Aleksey Bragin)
  • Various fixes: set NodeToAllocate member of the heap root so it could be used lated in AVL allocation routine, initialize the AvailableAllocation list. (Aleksey Bragin)
  • Comment out biased pointer checks for now, and fix biasing the AdjacencyEntry pointer (spotted by rafalh). (Aleksey Bragin)
  • Zero-initialize VM allocation base. (Aleksey Bragin)
  • Don't reserve VM, just commit it right away. This was a premature optimisation. Instead, retry committing a smaller amount of memory if committing all memory fails. (Aleksey Bragin)
  • Fix a bug with node count in RtlpDphAddNewPool(). (Aleksey Bragin)
  • Unprotect needed amount of memory in RtlpDphSetProtectionBeforeUse() instead of always assuming PAGE_SIZE. (Aleksey Bragin)
  • Fix an incorrect virtual block pointer calculation in RtlpPageHeapAllocate(). (Aleksey Bragin)
  • Silence RtlpDphShouldAllocateInPageHeap() debug print. (Aleksey Bragin)
  • Add helpful debug prints (disabled by default). (Aleksey Bragin)
  • Some code cleanup for better readibility. (Aleksey Bragin)
  • Heap create, destroy and allocating a block from the heap work now. (Aleksey Bragin)
  • Implement heap free operation using already implemented busy/free/available/unused lists support and other base routines. (Aleksey Bragin)
  • Implement missing place to free list and remove from busy list routines. (Aleksey Bragin)
  • Implement find busy block routine (using AVL tree). (Aleksey Bragin)
  • Fix a bug in RtlpDphCoalesceNodeIntoAvailable() which resulted in unwanted attempt to merge the only node with itself (which failed anyway). (Aleksey Bragin)
  • Fix a bug in RtlpDphCoalesceNodeIntoAvailable() which incorrectly removed a node from available list (which is implemented as a standard NT double-linked list, compared to unused and free lists which are implemented as single-linked custom lists and busy list which is an AVL tree). Result of that bug was an infinite loop at the next attempt to traverse the list of available nodes. (Aleksey Bragin)
  • In RtlpDphCoalesceFreeIntoAvailable() break when FreeAllocations becomes less than LeaveOnFreeList (before it would break 1 size too early). (Aleksey Bragin)
  • Fix list traversal in RtlpDphSearchAvailableMemoryListForBestFit(). If it couldn't find a node, it would return the last node in the list instead of NULL. (Aleksey Bragin)
  • In RtlpDphFindAvailableMemory(), a new smaller size should be 4 times smaller, not just 2. (Aleksey Bragin)
  • Add a #if0-ed section in RtlpDphRemoveFromAvailableList which checks if a request to remove node not in the list performed. Used only for debugging. (Aleksey Bragin)
  • Add a trace dprint to every type of list insert/removal operation for easier tracking. (Aleksey Bragin)
  • Add break on NULL ptr freeing support. (Aleksey Bragin)
  • RtlpDphSetProtectionAfterUse() is stubbed and protection is set directly in RtlpDphHeapFree(). To be moved into this function. (Aleksey Bragin)
  • Implement DPH version of ReAllocateHeap. Scenario of falling back to normal heap is stubbed everywhere now. (Aleksey Bragin)
  • Fix a bug in POINTER_ADD_BIAS which noone noticed. (Aleksey Bragin)
  • Implement user flags/values and HeapSize APIs in debug page heap (nearly the same code in all three functions). With these done, DPH core features are complete. Some debugging is still needed. (Aleksey Bragin)
  • Implement ValidateHeap API for DPH. Fixes attempts to validate DPH as a normal heap. (Aleksey Bragin)
  • Fix wrong pointer comparison in RtlpDebugPageHeapFree(). Should check for NULL pointer freeing, instead of checking for NULL heap pointer. (Aleksey Bragin)

RTL_HEAP

  • First commit of a heap manager rewrite. It introduces a totally new heap manager, with the following features: (Aleksey Bragin)
  • Actually resembles real NT's heap manager; (Aleksey Bragin)
  • Based on data structures similar to Windows 2003 and Vista+'s heap structures; (Aleksey Bragin)
  • Supporting advanced heap flags (e.g. useful for debugging); (Aleksey Bragin)
  • Substantially lower fragmentation rates (and thus speed and reliability) than the existing Wine's implementation. It's going to be further enhanced by adding a frontend allocator (for example, as lookaside lists, or as a Low Fragmentation Heap alike frontend in Vista+ systems); (Aleksey Bragin)
  • Real support for user-defined flags and native support for user-defined values; (Aleksey Bragin)
  • Native support for a custom commit routine, which is very important for trunk's win32 subsystem; (Aleksey Bragin)
  • Reserving, committing, decommitting and freeing on the fly, unlike existing heap manager which prefers to reserve and commit as much as possible, and doesn't decommit when it's no longer necessary; (Aleksey Bragin)
  • Support for per process heaps, with a proper lock; (Aleksey Bragin)
  • Reserved support for a special so-called debug heap allocator (to be implemented in heapdbg.c) which will be useful for finding heap corruptions. (Aleksey Bragin)
  • The committed code is a result of a month of work, and is a heavy work-in-progress one. It already implements the bare minimum required to boot to 3rd stage and run FireFox 3, however many rare codepaths are not implemented yet and there is some maintenance work to do (e.g. move structures and defines to a standalone header file). A list of used references is stated in the header of a source file for now. (Aleksey Bragin)
  • Lame... build fix. (sir_richard)
  • Implement missing parts of a virtual block allocations support. (Aleksey Bragin)
  • Minor fixes to handling extra stuff in heap blocks. (Aleksey Bragin)
  • Wine's heap regression tests now run through the end without crashing and show 277 failures. (Aleksey Bragin)
  • A few comments, and a new structure definition (currently unused). Absolutely no changes to the actual code. (Aleksey Bragin)

RTL_PATH

  • Update path.c code to Wine 1.3.14. Fixes a buffer overwrite happening in RtlDosSearchPath_U() when invoked by "shell32_winetest.exe shlexec". (Aleksey Bragin; #5964)
  • RtlDosPathNameToNtPathName_U remains unsynced. (Aleksey Bragin; #5964)
  • Author names added to the header of the file. (Aleksey Bragin; #5964)

SPRINTF

  • Don't compile the new sprintf by default. Requested by Timo. (Amine Khaldi)

URLCACHE

USB_USBEHCI

  • Reorganization code to put hardware related structures and routines in own source files. (Michael Martin)
  • Modify ResetPort to correctly reset the port instead of the controller. (Michael Martin)
  • Implement allocating chunks of memory from the Common Buffer for use with the rest of source code. (Michael Martin)
  • Implement creating and deleting Queue Heads and Transfer Descriptors from common buffer. (Michael Martin)
  • Implement linking/unlinking QueueHeads to create a linked list for Asynchronous Schedule traversal. (Michael Martin)
  • Implement BuildSetupPacketFromURB for creating a setup packet from a URB. (Michael Martin)
  • Implement SubmitControlTransfer. (Michael Martin)
  • Remove all hardware related structs from usbehci.h as they are now in hardware.h. (Michael Martin)
  • Add debugging routines for usb descriptors, queue heads and transfer descriptors. (Michael Martin)
  • This will break building usbehci, but not a problem as it is not included in the default build. Will be fixed with later commit. (Michael Martin)
  • Remove all hardware related routines from fdo.c as they are now in hardware.c (Michael Martin)
  • Replace ExecuteControlRequest with new SubmitControlTransfer. (Michael Martin)
  • For internal control requests (originating from ehci driver) use an event to signal request completion. (Michael Martin)
  • When submitting non internal control request save the Irp in the software part of the QueueHead. (Michael Martin)
  • For these requests check for errors and complete the Irp with the appropriate URB Status when the QueueHead is complete. (Michael Martin)
  • Misc code cleanup and dead code removal. (Michael Martin)
  • UsbEhci now works as before and should be ready for some forward progress. (Michael Martin)
  • Fix bug in InitializeUsbDevice that caused endpoints to be duplicated in internal config structure. (Michael Martin)
  • Fix implementation of UsbRemoveDevice. (Michael Martin)
  • Implement SetDeviceHandleData and RestoreUsbDevice. (Michael Martin)
  • SubmitControlTransfer: Not all control request need data, in which case dont create a MDL and a PID_CODE_IN_TOKEN TD Descriptor. (Michael Martin)
  • Fix bug in ReleaseMemory that caused memory not to be marked as free. (Michael Martin)
  • Fix incorrect memory header size that resulted in memory corruption. (Michael Martin)
  • Implement URB_FUNCTION_SELECT_INTERFACE. (Michael Martin)
  • Add missing IoMarkIrpPending before calling SubmitControlRequest. (Michael Martin)
  • Now use BuildSetupPacketFromURB for creating the CtrlSetup data structure. (Michael Martin)
  • When selecting configuration, make the ConfigurationHandle from the related UsbDevice instead of always the RootHub device. (Michael Martin)
  • Fix typo that caused all pipes to be marked as interrupt type. (Michael Martin)
  • Change CompletePendingURBRequest to only complete one SCE request Irp. (Michael Martin)
  • EhciDefferedRoutine: Only free Mdl if one was created when the request was added to the queue. (Michael Martin)
  • Dont assume that three transfer descriptors need to be freed, use a while moving to each linked and free instead. (Michael Martin)
  • Yabba Dabba Doo added to increase size of message. :) (Michael Martin)

USER32_WIN32K

VBEMP

  • Fix rounding error when calculating display size (neoman; #5790)
  • Loosely based on (neoman; #5790)
  • Fixes gdi32_winetest:mapping (neoman; #5790)

VIDEOPRT_WIN32K

  • Synchronize and share PEVENT/ENG_EVENT/VIDEO_PORT_EVENT implementation, as these objects are actually the same (and VideoPrt Event* APIs can be used on GRE Event Objects). Use ENG_EVENT structure from ntddvdeo.h instead of re-creating our own. Drivers using these interfaces will no longer explode. (sir_richard)

WDMAUD_KERNEL

WIN32KSYS

  • replace nci-generated stubs with a stub file using macros (Timo Kreuzer)

WIN32K|USER32

  • Implement NtUserGetMenuIndex, . (James Tabor; #5528)
  • Fix build from 49005. (James Tabor)
  • Move to the new window structure. Window Object served us well. (James Tabor)
  • Rewrite the Event and Hook procedures. (James Tabor; #5670)
  • Add fix for KsStudio for Olaf Siejka and debug prints for WH_KEYBOARD_LL. (James Tabor; #5670)
  • Fix for DosBOX. Added more data copies in user32 hook.c. (James Tabor; #5670)
  • This hook commit fixes the ros regression testing startup, but consider this a hax fix until more research in Global hooks has completed. More pointed Global hook tests are needed. Misc changes, removed unused storage pointers and reordering. For DosBOX, the mouse low level is now working and the keyboard low level should not be so intermittent as before, now sending messages from system desktop not from thread desktop, (James Tabor; #5670)
  • Cleanup and added debug prints. (James Tabor)
  • Fixed SendNotifyMessage, thanks to Michael Martin callback changes. Fixed DispatchMessage when dealing with thread errors. Fixed all but one of the Get/PeekMessage wine tests. Fixed attaching threads to process information. Plus other fixes. (James Tabor)
  • Implemented support for QS bits, ReplyMessage (not fully correct), and others. (James Tabor)
  • Tested everything here, please post regressions so I can add more applications to the test list. This patch is synced with 49720 and 49772. After that there are graphic issues. (James Tabor)
  • Credits goes to wine for helping with diagnosing issues in the ReactOS message system. (James Tabor)
  • Remove the old send message API and use NtUserMessageCall. (James Tabor)
  • Send messages do not pass the Ansi bit. This was evident during the hook changes. User32 knows the caller is Ansi and with a Unicode window user32 can make the apropate switch. Win32k on the other hand, assumes, based on the Unicode window the caller is Unicode. Hook tests enabled in send message, forces the call to win32k, and the Ansi product is Unicode data. Using NtUserMessageCall this bit can be passed forward to allow win32k to make the correct switch going to callback. (James Tabor)
  • Finish 50030 (work by Giannis), Now PostMessage passes all the correct data based on Get/PeekMessage. Example: Post A, Get/Peek A, Translate A, Dispatch A, should be that simple. FYI: DDE memory handling should be in win32k not user32 and why,,,,, ~see next point~ (James Tabor)
  • Patch up problems (at a minimum) going into the SendMessage/Timeout A2U U2A support in win32k and fixed SMTO callback if local. (James Tabor)
  • Fix all the user32 wine win test_SetParent tests. (James Tabor)
  • Fix mdi class window function Id, now msi message tests do not assert. (James Tabor)
  • Fix most of the user32 wine win test_mdi tests. Leaving 6 failures dealing with rect size. Start A2U and U2A support. (James Tabor)
  • Fix copy paste error, which means this code is not used, should have pop up during testing. (James Tabor)
  • Add hack to mark desktop window as a desktop window and notes for creating a desktop with tips in win32k. Move user position code from window to winpos. (James Tabor)
  • WM_MDICREATE originates from user space so treat it as it should, fixes bug 5903. (James Tabor)
  • Clarify the meaning and the use of 0, 1 and 2 for user window regions, wine never did. Noticing patches not corresponding in correctness and understanding, leaving potential crashes in the DCE code, which depend on these types. (James Tabor)
  • Patch based on Rafal Harabien patch, fixes wine msg SetWindowRgn test, see also bug 5959. (James Tabor)
  • Use User32 GetWindowRgnBox, still passing both wine msg SetWindowRgn and win winregion tests, . (James Tabor; #5959)
  • Use User32 GetWindowRgnBox, still passing both wine msg SetWindowRgn and win winregion tests, . (James Tabor; #5959)

WINE32K|USER32

  • Implement client thread information for the beginning of QS flag support and signaling synchronization of messages. (James Tabor)
  • Set and clear idle event when setting clearing masks. This fixed the idle foreground hook call from user mode. (James Tabor)
  • Fixed wine ListBox and ReactOS ComboBox tests. Critical note: SendMessageA/W, when IsThreadHooked is used and any global hooks are affirmed, all messages are sent to Win32k and the result is, A to W and W to A mismatch via UMToKM. Fixing Global hook support exposed a critical bug in ReactOS message system. Enable the appropriate hooks will temporarily remedy this bug. (James Tabor)
  • All patches are from a checked out revision from 49475. Upping ntuser.h, win32k and user32 to sync. (James Tabor)

YAROTOWS

  • Reintegrate the branch. For a brighter future. (Timo Kreuzer)
  • Main features: (Timo Kreuzer)
  • Implement LDEVOBJ api. Responsible for loading dlls (display drivers, font drivers, keyboard layout, etc), replacing code in different locations. (Timo Kreuzer)
  • Implement PDEVOBJ api. A PDEVOBJ represents a physical device and is the core component for handling multiple display devices. (Timo Kreuzer)
  • Rewrite device locking. The new method was neccessary to allow dynamic mode switching. (Timo Kreuzer)
  • Implement support for enumerating display devices and settings. (Timo Kreuzer)
  • Implement dynamic mode switching. (Timo Kreuzer)
  • Implement a number of Eng mapping functions. (Timo Kreuzer)
  • Rewrite Eng level surface handling for cleaner code and better compatability. (Timo Kreuzer)
  • Rewrite parts of the DIB handling code. (Timo Kreuzer)
  • Rewrite DC creation and deletion. Deletion and cleanup is now completely callback based. Now we don't leak the DC objects when terminating a process, like we did before. (Timo Kreuzer)
  • Improve the XLATE and BRUSH code, removing several old hacks. (Timo Kreuzer)
  • Improve icon code. (Timo Kreuzer)
  • Thanks to Jerome Gardou, Kamil Hornicek and everyone helping. (Timo Kreuzer)
  • Update rapps database. (Daniel Reimer)
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