Commit graph

71993 commits

Author SHA1 Message Date
Joachim Henze b4767f237a [0.4.9][COMCTL32] Address regression CORE-14622
"Avira Antivir Personal 6.35.00.243" had issues painting its
setup wizard dialog with correct background color.
That part was a regression of SVN r74136 == git
b1b42795a9

and also did not draw its umbrella bmp, which did never work
in ros up to now afaik.

https://reactos.org/testman/compare.php?ids=69394,69478 VBOX
https://reactos.org/testman/compare.php?ids=69395,69479 KVM

Thanks to patches author Doug Lyons and HBelusca.

Wine has been reported to be affected by that bug as well:
https://bugs.winehq.org/show_bug.cgi?id=46636
Not sure whether our patch will be accepted by Wine,
to my naive eye this looks like an interim solution.

fix picked from commit 0.4.14-dev-107-g
f2f833c53c
2020-11-13 00:44:10 +01:00
Joachim Henze 07ff621b4b [0.4.9][CONUTILS] Fix regression with file redirection of 'more' CORE-14592
In ConWrite(), emit an \r when a \n is encountered but not already preceded by \r.

And, don't emit \r\n when an \r alone is encountered.
This fixes the problem of extra newlines appearing when redirecting
"more" output to a file.

It regressed somewhere in between SVN [r68849-r73441], most likely with some
commit that touched 'conutils' or 'more'.

fix picked from commit 0.4.11-dev-1-g
b277cbdf22
2020-11-11 17:39:36 +01:00
Joachim Henze 144976843a [0.4.9][WIN32SS] Fix last user visible parts of regression CORE-10855
When Themesvc was disabled, some Window titlebar
frames were drawn too thin until the window
was actively resized in y by the user.

That and similar symptoms started to show up after SVN r68904 ==
6dfa71c487

Many thanks to patches author Doug Lyons.

fix picked from commit 0.4.14-dev-121-g
9e14a762d5
2020-11-09 23:14:17 +01:00
Joachim Henze 64ccae4b26 [0.4.9][WIN32SS] Fix maximized window positioning and 2 addendum commits
Fix CORE-5177 "TaskMgr and ProcExp positioning when maximized."

which regressed by SVN r47264 == git
0ac861114e

fix cherry picked from commit 0.4.12-dev-954-g
1f619b2781
-----------
but since above commit did introduce a new regression CORE-15893
symptom "Most of maximized windows have extra row of pixels around"
I had to port back those 2 follow-up-master-commits as well:
0.4.12-dev-956-g
197c4f875d3332dbc4656a6360e3c7e9def2ed5
and 0.4.13-dev-397-g
3cc50cedaf

Side-note: This results in the same final state as 0.4.12rls0, because
I ported 0.4.13-dev-397-g3cc50ce into 0.4.12-RC-29-gab7f77a earlier.
2020-11-09 19:41:30 +01:00
Katayama Hirofumi MZ 913c11aaa7 [0.4.9][SHELL32] Fix SHFileOperation Move operation (#1487)
Reduce failures of Move operation of shell32!SHFileOperation function. CORE-13450

And also fixes regression CORE-13176 "Drag and drop with multiple files is broken"
which regressed by SVN r74380 == git
fd91fe3337

fix picked from commit 0.4.12-dev-1080-g
c65156002c
2020-11-09 12:58:29 +01:00
Joachim Henze 763e08ed5e [0.4.9][WIN32SS:NTGDI] Fix missing text in labels and buttons for .NET apps.
Fixes CORE-15000 "Totally Broken/messed up text in many .NET applications"
and its duplicates
CORE-14679 "Missing fonts in Reg Organizer 8.16"
CORE-15398 "Messed fonts in Microsoft SQL Server 2005 Express Edition"
CORE-15611 "Word 2003: Organization Chart has corrupted display"

There was a missing break statement in ftGdiGetGlyphOutline().
Found by JIRA contributor 'I_Kill_Bugs' :-)

Add also brackets around 'case's to make code navigation easier.

Fix picked from 0.4.12-dev-865-g
0e56ec8892
2020-11-03 14:17:07 +01:00
Joachim Henze bf8cbe2769 [0.4.9][WIN32K:NTUSER] Fix CORE-12243 OS-freezing when closing nLite
This fixes CORE-12243 and allows .NET applications like nLite 1.4.9.3
to exit properly without freezing the whole OS.

The actual fix was picked from 0.4.11-dev-78-g
4d48b88bfb
"[WIN32K:NTUSER] co_UserDestroyWindow(): Simplify the destruction of the owned windows."

but it made sense to also pick the related 0.4.11-dev-77-g
e286c4c520
"[WIN32K:NTUSER] Optimize IntWinListOwnedPopups() a little bit. Improve a trace."

and 0.4.11-dev-76-g
f644a50cd7
"[WIN32K:NTUSER] Code formatting only."
2020-11-03 03:54:16 +01:00
Joachim Henze 2a9249b546 [0.4.9][WIN32SS] Require at least the amount of extra memory, not exact amount
Fixes 3 application crashes:
CORE-15576 "Civilization II Multiplayer Gold Edition crashes when trying to open a map"
CORE-13924 "Click-n-type Virtual Keyboard 3.03.4012 from rapps crash when opening program preferences"
CORE-8790 "IceChat crashes with OutofMemory"

It regressed around SVN r56947, r56948, r56949.

cherry picked from commit 0.4.12-dev-417-g
e022d8d7cb
2020-11-01 02:13:21 +01:00
Joachim Henze 8377b4fd23 [0.4.9][COMCTL32] Workaround v6 button redraw regressions CORE-13278 & CORE-16093
Most likely not correct, as it breaks comctl32:buttonv6 tests
https://reactos.org/testman/compare.php?ids=68146,68147

But greatly eliminates perceived flickering when hovering
with the mouse over buttons in unthemed mode.
We suffered from these regressions for years and nobody did
find a proper solution, therefore it's time to at least workaround them.
The patch did not expose any new real-world-issues after I retested
the whole rapps suite against it in 0.4.12RCs.

CORE-13278 was once introduced/unhidden by SVN 73806 ==
c607de7

CORE-16093 was once introduced/unhidden by SVN 74149 ==
301c476

The comctl32 part of the fix was picked from 0.4.13-dev-1194-g
a40331b0f4
2020-10-31 20:19:52 +01:00
Joachim Henze fcd06d286b [0.4.9][NTOSKRNL] Restore section layout for NTOSKRNL to fix BSOD regression CORE-14683
Thomas Faber thinks that it's a bit more
safe to just move "after .rsrc" instead of the proper "after .reloc".
A temporary tribute until ROSBE-154 will be fixed properly.

For now we use this just for NTOSKRNL, but not for drivers yet, see
MODULE TYPE sdk/cmake/gcc.cmake
As using also for drivers would immediately lead to BSODs like CORE-16183.
To allow installing DVDWritenow without BSOD,
we need the script at least for ntoskrnl!

The regression was introduced by SVN r55835 == git
6ebf8c2537

This patch (after .rsrc) was already committed into 0.4.15-dev-220-g
d28677795e
2020-10-31 16:39:40 +01:00
Joachim Henze 6d872b3e7e [0.4.9][EXPLORER] systray notification area - icon crosstalk on NIS_SHARED or NIS_HIDDEN CORE-14262
Fixes a regression introduced by SVN r68893 == git 332652615a
Symptom "TightVNC Server may show a doubled icon and/or corrupts its neighbor icon in the systray"
Fix picked from 0.4.13-dev-481-g8d6c9e8
------------------
I allowed myself to also port the fix for some TRACE-loggings missing ending "\n".
That second regression was introduced during 0.4.8-dev'ing when substantial parts of this code
were moved from trayntfy.cpp into syspager.cpp.
releases/0.4.7 was not affected by that yet.
That 2nd fix was picked from 0.4.13-dev-480-g7796df3
2020-10-24 21:10:01 +02:00
Thomas Faber 65c7d4a17b [0.4.9][WIN32K:NTUSER] Reference menus owned by a popup menu. CORE-15504
Fixes a BSOD mentioned in CORE-15504

cherry picked from commit 0.4.12-dev-218-g
e3c8002dfc
2020-10-22 20:55:56 +02:00
Timo Kreuzer ca8fbad361 [0.4.9][NTOS] Fix a regression in the PE loader CORE-11717
which caused images to be loaded up to MmHighestUserAddress,
thus overwriting the shared user page.

This is now fixed by using MM_HIGHEST_VAD_ADDRESS as the margin instead.
This commit allows again to load WIN32K.sys of Win2K3SP2
which regressed by SVN 67793 == git
3565260212

fix cherry picked from commit 0.4.14-dev-143-g
56da95671c
2020-10-22 15:50:57 +02:00
Joachim Henze 995d69c8d7 [0.4.9][WIN32K:NTUSER] Avoid dereferencing a null pointer in NC_DoNCPaint.
Fixes BSODs CORE-15569, CORE-12963, CORE-13410

For non-technicians:
Author Thomas Faber just imprisons the BSODs into an artificial cage
made of curly-braces. The BSODs can't h(a)unt any users anymore
and inevitably starve therefore.

cherry picked from commit 0.4.12-dev-338-g
b2dcb8e0d8
2020-10-12 23:06:29 +02:00
Joachim Henze d351b32bdb [0.4.9][NTUSER] Fix regression CORE-11828
Fixes symptom "mouse pointer vanishes when closing
applications via x in title-bar"

The bug in WIN32SS was unhidden by SVN r65496 == git
5c1a8109c8
, when we introduced explorer_new. The old explorer
had a workaround built within.

Many thanks to patches author James Tabor.
cherry picked from commit 0.4.14-dev-1012-g
820dbfccd0
2020-10-11 23:46:39 +02:00
Joachim Henze e8cc477de5 [0.4.9][WIN32K:ENG] Fix fullscreen switch regressions CORE-15325 & CORE-14684 PR#1659
In PDEVOBJ_vRefreshModeList, find a proper match for the current
display mode instead of assuming a constant index.

Both tickets CORE-15325 & CORE-14684 regressed by SVN r74404
384affe098

fix cherry picked from commit 0.4.13-dev-456-g
00e882c2b1
Many thanks to the patches author Thomas Faber.

With this commit we sync PDEVOBJ_vRefreshModeList() to the state I used in 0.4.12rls and 0.4.13rls.

This patch does fix:
- regression CORE-15325 "Pocket Tanks 1.6 not filling the whole screen because it does not switch its resolution when coming from desktop res 1024x768 32bpp"
- regression CORE-14684 "Fall 0.1.3 opens just a white window instead of content when started with desktop resolution 1024x768 32bpp"
- regression "Globulation 2 0.9.4.4 not filling the whole screen when configured to use fullscreen and running it from desktop resolution 1024x768 32bpp"

but also helps to fix the last app that was still affected by CORE-14363 "systray icons do flash through now when an app is running in fullscreen".
CORE-14363 actually was fixed for >95% of the apps already by my last commit into the releases, but there was an outlier that does require Thomas patch additionally, that was:
- "Pengupop 2.2.3 when being run from desktop with 1024x768 32 bpp"

I committed it beforehand:
- for master:    0.4.13-dev-456-g00e882c
- for 0.4.12rls: 0.4.12-RC-34-gec3cc13
- for 0.4.11rls: 0.4.11-release-4-g11e0b0b
- for 0.4.10rls: 0.4.10-release-6-g58f9e1e
2020-10-08 17:53:51 +02:00
Joachim Henze 9f4fee83ab [0.4.9][WIN32SS] Fix many regressions of fullscreen switching, all caused by SVN r75407
CORE-16393 'switching to fullscreen via Alt+Enter in cmd now leaves the taskbar visible'
CORE-15477 'TileWorld 1.3.2 when started in fullscreen mode it now leaves the taskbar visible'
CORE-14979 'It depends on the desktop color-depth bpp whether taskbar is hidden in fullscreen of Anno 1602'
CORE-15599 'Rocks&Diamonds 3.3.1.2 from rapps leaves its taskbar visible when switching into fullscreen via alt+enter'
CORE-15600 'LGeneral from rapps leaves the taskbar visible when selecting fullscreen from context menu'
CORE-15654 'Exiting "Bound Around Demo" from fullscreen leaves black borders around the desktop'

All those cases regressed by SVN r75407 == git
09ab5ea7ed

To date I am not aware of more that broke by that historic commit, but we still have some cases that still
do not work as intended, they are linked as blocker against the EPIC CORE-11242.
But at least no regressions known anymore to date by that specific commit into display.c.

In sum this brings us in the context of this regression in this file
for the functions UserChangeDisplaySettings() & NtUserChangeDisplaySettings()
to the state of
- for master:    0.4.14-dev-38-g96ef605
- for 0.4.13rls: 0.4.13-RC-11-g0a03b36
- for 0.4.12rls: 0.4.12-release-4-g8c5e349
- for 0.4.11rls: 0.4.11-release-3-g29e0b55
- for 0.4.10rls: 0.4.10-release-5-g679a66f
2020-10-07 02:46:20 +02:00
Joachim Henze 59392f766f [0.4.9][MSPAINT] Revert LoadDIBFromFile for workaround (#2186) CORE-16566
This fixes the regression of mspaint not being able any longer to
overwrite an existing file.
The regression was once introduced by
0.4.7-dev-118-g
44fc547ffa
when trying to determine the resolution on load.

Our new fix does cover both issues and even reduces imports: win-win.

fix cherry picked from commit 0.4.14-dev-691-g
be40a0e296
2020-10-06 03:24:52 +02:00
Joachim Henze 9c4feddb23 [0.4.9][WINED3D] Workaround regression CORE-15408
Many 3D applications crashed with 'WineD3D fake window' msgbox
if they were used in VirtualBox with graphics driver
'VBoxDisp.sys from VM guest additions + installed 3D acceleration'

That was a regression of SVN r75847 == git 0.4.7-dev-319-g
3d13ed394e

Contrary we had no such issues with the SW emulation.
The reason for the bug is that
VBoxDisp only supports OpenGL 2.1 (GLSL 120) and WineD3D
tried to use shaders for OpenGL 3.2 (GLSL 150).

This workaround disables the usage in a hard-coded way for
all graphics adapters. Should be ok for now, as ros does not
really support any modern GPU drivers yet.
Proper working runtime detection would be better ofc.

Thx to Doug Lyons & Fabian Maurer

Fix cherry picked from 0.4.14-dev-113-g
082f230ac7
2020-10-04 17:11:45 +02:00
Joachim Henze f5c37a88d3 [0.4.9][NTOS:CC] Access SectionObjectPointers without lock in CcRosInitializ…
…eFileCache. CORE-14691

kmtest:NtCreateSection calls CcInitializeCacheMap with a
NULL value for SectionObjectPointers. This will cause an exception when
trying to access it, which in Windows can be handled gracefully.
However accessing it while holding ViewLock means the lock will not be
released, leading to an APC_INDEX_MISMATCH bugcheck.

This solves the problem by allocating SharedCacheMap outside the lock,
then freeing it again under lock if another thread has updated SharedCacheMap
in the mean time. This is also What Windows Does(TM).

The 100%-chance BSOD in kmtest:NtCreateSection was a regression
introduced by 0.4.10-dev-20-g
8a8cb4d890
which we once ported back into 0.4.9-RC-13-g
09f068086d
to support building ros on ros. That's why 0.4.9 is also in need of a fix.

The BSOD fix was cherry picked from 0.4.10-dev-191-g
1d398057a3
2020-10-04 12:52:08 +02:00
Joachim Henze d172937b63 [0.4.9][GDIPLUS] Fix a regression painting gradient CORE-15479
patch is import of Wine commit 0937186f7d15fed60f77fa2014d650f4d0b6b20b
by Nikolay Sivov

regression was introduced by SVN r75872 == git 0.4.7-dev-344-g
c6f32e4a5f

fix cherry picked from 0.4.12-dev-360-g
daadcc6141
2020-10-03 23:21:57 +02:00
Joachim Henze 2b20379851 [0.4.9][CDFS_NEW] Make windows gcc release build compile CORE-15659
This fixes a regression introduced by 0.4.8-dev-164-g
ec6b3ecbe4
when the new driver was activated for compiling.

Many thanks to Thomas Faber, Pierre Schweitzer, Serge Gautherie

The fix is squashed backport of commit 0.4.12-dev-431-g
bccad87f3c
and commit 0.4.12-dev-432-g
3463b2db9f
2020-10-03 19:33:17 +02:00
Joachim Henze d33c3420ee [0.4.9][RICHED20] Revert ocr_reverse.cur to fix CORE-15190
Old cursor looks better.
We revert to SVN state r75895 and note the diff for Amine
so that the wrong version won't come back in the future.

Old file is just 326bytes while the one that we do not want is 33.134bytes
which means we will save some RAM as well.

The regression was introduced by SVN r75896 == 0.4.7-dev-368-g
ec29185ee5

fix cherry picked from 0.4.11-dev-634-g
ad34c91d1c
2020-10-02 16:53:26 +02:00
Joachim Henze a920a9672c [0.4.9] [SDK] Remove 'RC' from version.cmake 2018-07-12 17:37:32 +02:00
Serge Gautherie 3eb03ef9ce [0.4.9] cherry-pick [SYSSETUP] Fix a DPH report about dwPageCount
- "(sdk/lib/rtl/heappage.c:1329) corrupted suffix pattern"
  detected at
  "dll/win32/syssetup/wizard.c:2672 (InstallWizard)"
- Add an ASSERT(), as hinted by Mark Jansen.

(cherry picked from commit 1668527acf)
2018-06-19 21:00:11 +02:00
Joachim Henze 9d758ae1cd [0.4.9] [COMCTL32] Fix regression CORE-14671
Fixes the icons on some buttons being flipped vertically.
Known affected apps: Lazarus IDE, Double Commander, Peazip.

Thanks to patches author Doug Lyons.
The patch is new and has not been committed to master yet.
2018-06-19 20:56:21 +02:00
Pierre Schweitzer ea76ef8477 [0.4.9] cherry-pick [FASTFAT] Properly check for buffer size on dir enumeration.
This avoids improper returns when multiple entries are requested
and, in rare circumstances, entries not being seen by umode.

CORE-14699

(cherry picked from commit 01e2877161)
2018-06-07 20:57:47 +02:00
Joachim Henze fb0fd2b462 [0.4.9] cherry-pick [COMCTL32] Simplify some ifdefs CORE-14649
Addendum to 16d6c9b5e0
Giannis suggested and Thomas explained:

Before the Wine sync, comctl32/button.c was based on ROS's
user32/button.c, so _USER32_ would highlight changes between
user32 (originally based on Wine) and comctl32. Now our
comctl32/button.c is based on Wine's comctl32/button.c, so
__REACTOS__ is enough.

(cherry picked from commit 1c151c9977)
2018-06-03 14:40:20 +02:00
Hermès Bélusca-Maïto 09c64b5982 [0.4.9] cherry-pick [CMD] Improve the situations when the console title can be changed.
- Introduce two small helpers to change and restore the console title.
- Console title can change even when internal commands are executed.
- Note that when commands are run from within batch files, title is unchanged.
- When "cmd.exe /c command" is run, the console title is unchanged; however
  when "cmd.exe /k command" is run, the console title changes.

(cherry picked from commit a165999067)
picked to fix CORE-14648 which was the last puzzle-piece to build ros on ros
2018-06-03 14:40:01 +02:00
Hermès Bélusca-Maïto 9a6be75d5f [0.4.9] cherry-pick [CMD] Print a newline after the interactive 'pause' command message finishes to run.
(cherry picked from commit 39af25024a)
2018-06-03 14:37:45 +02:00
Pierre Schweitzer 7b3affa096 [0.4.9] cherry-pick [CRT] Reimplement qsort() using FreeBSD implementation.
Our implementation had a bug that could be triggered while
building our USBD library on ReactOS: the compare function
could be called with a NULL pointer instead of a valid value.

With this bug fixed (and the cmd hack in CORE-14648), ReactOS
can totally selfhost :-)! I was able to build LiveCD and BootCD
without any trouble, crash, deadlock or whatever.
(Next step: having a buildbot slave hosted on ReactOS ;-)).

Enjoy: https://twitter.com/HeisSpiter/status/1002880397103988737

CORE-14680

(cherry picked from commit 2dfe5e3f46)
2018-06-03 14:37:28 +02:00
Joachim Henze b2a415edc2 [0.4.9] cherry-pick [ZIPFLDR] Fix text-cutoff + improve de-DE CORE-14682
(cherry picked from commit ea42633bed)
2018-06-02 22:09:05 +02:00
Joachim Henze 39f5e56a29 [0.4.9] [NFSD] Apply a hack to avoid CORE-13498
Committing into rls was requested by Pierre.
The hack allows to startup nfsd even when getnameinfo() fails.
2018-06-02 13:23:06 +02:00
Joachim Henze 4268605cb9 [0.4.9] cherry-pick [COMCTL32] Fix regression CORE-14649
Fixes a regression that was introduced by Wine Staging 3.3 Sync.
Symptom was missing button text and icons for specific buttons
in Delphi applications, e.g. Double-Commander, Lazarus, Peazip.
The patch restores and ifdef-guards previous changes of Giannis.

(cherry picked from commit 16d6c9b5e0)
2018-06-02 12:38:19 +02:00
Pierre Schweitzer 98e87bcafd [0.4.9] cherry-pick [FASTFAT] Lock DirResource on flush in case we're updating entry
CORE-14660

(cherry picked from commit 9f3169b295)
2018-05-28 19:44:27 +02:00
Pierre Schweitzer ae5aa9cd8b [0.4.9] cherry-pick [VFATLIB] Only attempt to clear the dirty set bit in rw mode.
(cherry picked from commit 59dc951bf7)
2018-05-28 19:44:17 +02:00
Joachim Henze 519cdd3c52 [0.4.9] [SDK] Change gcc baseaddress for user32.dll to fix CORE-12752
Giving this risky fix a chance.
It reliably prevents the conflict between MSVCP71.dll
& our user32.dll (that can't be relocated by design).
But we'll have to check very carefully that this
patch does not break anything else.
2018-05-27 14:16:03 +02:00
Pierre Schweitzer 367cb1fff3 [0.4.9] cherry-pick [FASTFAT] Lock DirResource when modifying an entry on disk.
Likely not optimal, but fixes some races conditions where
the directory is uninit in the middle of the write.

(cherry picked from commit fc788cf2fd)
2018-05-27 12:58:00 +02:00
Benedikt Freisen 8b45da6d3d [0.4.9] cherry-pick [MSPAINT] When clicking selection, invalidate _and_ repaint Scroll Client _and_ Image Area
Previously, the canvas disappeared when a selection was clicked until the mouse was moved.

CORE-13288 & CORE-10053

(cherry picked from commit cca1a3f47f)
2018-05-27 12:57:03 +02:00
Benedikt Freisen 49687637b3 [0.4.9] cherry-pick [MSPAINT] Store subsequent changes to file selected via Save As
Paint has erroneously been storing subsequent changes to Unnamed.bmp

CORE-13291

(cherry picked from commit 97025c3e06)
2018-05-27 12:56:34 +02:00
Joachim Henze d33b71e9d4 [0.4.9] [WINHTTP] Revert to SVN r75943 to fix regression CORE-13952
Our RCs were still affected by that regression.
The revert allows to run the current Online! setup
of Flash-Player 29.0.0.171 to download.
(I was able to watch a flash video in Opera 12.18 afterwards.)
2018-05-26 17:00:47 +02:00
Pierre Schweitzer c71d198fd8 [0.4.9] cherry-pick [FASTFAT] Initialize cache if neded for changing volume label.
CORE-14654

(cherry picked from commit 47b9db9d02)
2018-05-26 14:13:17 +02:00
Stanislav Motylkov a757a3fb04 [0.4.9] cherry-pick [MSPAINT] Fix call sequence in OnRButtonUp
This fixes unexpected undo action when zooming out with right mouse
click.

The call sequence in OnLButtonUp is already correct.

CORE-14539

(cherry picked from commit 1007a2e0f9)
2018-05-26 14:13:11 +02:00
Stanislav Motylkov 16d7d9d27c [0.4.9] cherry-pick [MSPAINT] Fix divide by zero in drawZoomFrame
CORE-14539 #resolve

(cherry picked from commit 8c726ae0d2)
2018-05-26 14:13:05 +02:00
Stanislav Motylkov 22a0c675ba [0.4.9] cherry-pick [MSPAINT] Fix copy-pasta bug (#562)
This would fix setting image height via Attributes dialog and help fixing CORE-14539.
(cherry picked from commit e27d5d2efc)
2018-05-26 14:12:59 +02:00
Pierre Schweitzer 9bccee3237 [0.4.9] cherry-pick [NTOSKRNL] Addendum to 8a8cb4d: don't print uninit pointer.
(cherry picked from commit 2cf9a69bce)
2018-05-26 14:12:49 +02:00
Pierre Schweitzer 09f068086d [0.4.9] cherry-pick [NTOSKRNL] Only consider SharedCacheMap value once ViewLock is acquired.
This avoids a really nasty race condition in our cache controler where
two concurrents could try to initialize cache on the same file.
This had two nasty effects: first shared map was purely leaked and erased
by the second one. And the private cache map, allocated on the first shared
cache map couldn't be freed and was leading to Mm BSOD (free in a middle of
a block).

This was often triggered while building ReactOS on ReactOS (with multi threads).
With that patch, I cannot crash anylonger while building ReactOS.

CORE-14634

(cherry picked from commit 8a8cb4d890)
2018-05-26 14:12:42 +02:00
Pierre Schweitzer bf2d787a94 [0.4.9] cherry-pick [FASTFAT] Properly handle IRPs that can wait and these that cannot.
CORE-14634

(cherry picked from commit b4363068d1)
2018-05-26 14:12:36 +02:00
Pierre Schweitzer 07a13ca67c [0.4.9] cherry-pick [FASTFAT] Properly queue pending write IRPs.
Addendum to 30b836b

(cherry picked from commit e9e14be661)
2018-05-26 14:12:29 +02:00
Pierre Schweitzer 4af12f40ca [0.4.9] cherry-pick [FASTFAT] When extending a file, also lock the DirResource.
This avoids race conditions under high IOs and thus corruption on
the FS, or assertions failures in the kernel.
Easily triggered by building ReactOS on ReactOS ;-).

(cherry picked from commit 30b836bf3f)
2018-05-26 14:12:22 +02:00