Commit graph

70810 commits

Author SHA1 Message Date
Pierre Schweitzer 9a07c71eef
[NTOSKRNL] Implement support for deferred writes in Cc.
Namely, implement CcCanIWrite() (very basic, and likely wrong).
And implement CcDeferWrite() which will queue the write operation.

In CciLazyWriter() (which may be renamed CcWorkerThread() ;-)),
handle the queued write operations one by one. This is likely
not to be accurate, but, given we have only on FS supporting
this for now (NFS / RDBSS / Shares), this is OK.

CORE-14235
2018-01-23 23:25:26 +01:00
Pierre Schweitzer 07e6e9c9c1
[NTOSKRNL] When marking a BCB dirty, also mark the underlying VACB dirty.
Experiment and MSDN tend to show that a dirty BCB is queued for lazy write.
This will do the job here!

Also, renamed CcRosMarkDirtyFile() which is more accurate, and added a new
function CcRosMarkDirtyVacb() which just takes a VACB as arg (expected locked)
and marks it dirty (using previous implementation). Make CcRosMarkDirtyFile()
use it.

CORE-14235
2018-01-23 23:25:26 +01:00
Pierre Schweitzer 6ba67b8152
[NTOSKRNL] Bug fix: lazy write more often.
CcDirtyPageThreshold is not here to compute when you have to write,
but to know where you have to deny writes.
More commits to come in that direction!

CORE-14235
2018-01-23 23:25:26 +01:00
David Quintana 5ec441a867 [EXPLORER] Workaround for something that may or may not be an "unintended feature" of the comctl toolbar.
Apparently the indices provided in NMTBGETINFOTIP (TBN_GETINFOTIP data struct), are not reliable,
but since the lParam values are, and it saves us a lookup, we will be using those instead. Win-Win!
2018-01-23 23:10:44 +01:00
David Quintana bc43733e48 [EXPLORER] Implement balloon queueing. 2018-01-23 22:13:01 +01:00
David Quintana bbca71c4a5 [EXPLORER] Implement rudimentary uVersion management, and notification balloons.
- uVersion will only be truly useful when Vista+'s V4 style notification icons are implemented.
- Balloon notifications do not yet support queuing and auto-closing.
- Force the notification icon tooltips to always show even if the taskbar isn't foreground.
[ROSCTRLS.H] Implement CTooltips class which manages a comctl32 tooltips window.
2018-01-23 22:13:01 +01:00
Pierre Schweitzer c7ad200f8b
[NTOSKRNL] Reimplement the lazy writer in Cc and remove the "basic" one in Mm.
This removes the "modified page writer" thread in Mm that was regularly blindly
attempting to flush dirty pages to the disk.
Instead, this commit introduces a lazy writer that will monitor dirty pages count
and will flush them to disk when this count is above a threshold. The threshold is
computed on Cc init.
Compared to what was done previously, this lazy writer will only write down files
that are not marked as temporary.
The mechanisms involved in this lazy writer worker are well described in Windows
Internals 4th editions (constants are coming from it ;-)).
Also fixed a bad (and old!) bug in CcRosFlushDirtyPages() where target count could
be overflow and the function would spin forever while holding the VACBs lock. This is
mandatory as now lazy writer will call it with "random" values.
This also allows implementing CcWaitForCurrentLazyWriterActivity() :-).
Also renamed DirtyPageCount to its MS equivalent.

CORE-14235
2018-01-23 19:33:59 +01:00
Joachim Henze 2382435e88 [DESK.CPL] Update de-DE.rc for flat menus option 2018-01-23 19:29:28 +01:00
Stanislav Motylkov 25564cda9d [UXTHEME] Add missing THEME_BUTTON_STATES
CORE-14245 #resolve
2018-01-23 14:46:57 +02:00
Hermès Bélusca-Maïto 9e07da5ccb
[SHLWAPI] Partly revert SHLWAPI Wine 3.0 sync b725032 .
This Wine sync (that was not done against WineStaging) erased code
that had been submitted to WineStaging by the ReactOS team (clist.c
fixes, see r73565 a05881c and r73976 7b6b597) or added in r68042 9a78054.

To that aim I add explicit #if(n)def __REACTOS__ guards around the code.
2018-01-22 21:07:21 +01:00
Stanislav Motylkov c22c6e3ba3 [WIN32K:NTUSER] Fix color indices for themes
CORE-14231 #resolve
2018-01-22 21:45:50 +02:00
Stanislav Motylkov e8ec23fcd2 [DESK.CPL] Fix hardcoded colors in classic theme preview
CORE-14238 #resolve
2018-01-22 21:45:03 +02:00
Stanislav Motylkov 46c40d4cb5 [DESK.CPL] Add flat menus option to effects dialog 2018-01-22 20:42:10 +02:00
Jérôme Gardou c4ee1a3460 [WINSRV] -Fix inline functions definitions
This fixes -O0 compilation
2018-01-22 18:17:50 +01:00
Stanislav Motylkov 20a782b7b1 [KBSWITCH] Update tray icon on color scheme change
CORE-14240 #resolve
2018-01-22 18:56:41 +02:00
Eric Kohl 9d29ee3a62 [DEVMGR] Implement missing device power information (current power state, power capabilities and power state mappings). 2018-01-22 00:35:21 +01:00
Amine Khaldi 46598fe04a [SECUR32_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:45:12 +01:00
Amine Khaldi bdbc2cbf9e [SCRRUN_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:44:28 +01:00
Amine Khaldi 2f85bcc30b [REGEDIT_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:43:47 +01:00
Amine Khaldi 4a7f3bdb4e [PSAPI_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:43:04 +01:00
Amine Khaldi d1c4fe8cfb [OPENGL32_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:42:20 +01:00
Amine Khaldi 173200c3cb [NETAPI32_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:40:45 +01:00
Amine Khaldi d42fce3c82 [MSVCRT_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:39:53 +01:00
Amine Khaldi 64daf542b8 [CMD_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:38:00 +01:00
Amine Khaldi c16a79f47a [QUARTZ_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:34:54 +01:00
Amine Khaldi b313fd906e [QUARTZ] Sync with Wine 3.0. CORE-14225 2018-01-21 22:33:20 +01:00
Amine Khaldi 4d8fc348d7 [QEDIT_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:32:08 +01:00
Amine Khaldi defffcf1f0 [QEDIT] Sync with Wine 3.0. CORE-14225 2018-01-21 22:31:34 +01:00
Amine Khaldi 09527f87fb [DXDIAGN_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:30:36 +01:00
Amine Khaldi 92f11cd7c0 [DXDIAGN] Sync with Wine 3.0. CORE-14225 2018-01-21 22:29:51 +01:00
Amine Khaldi 2fe88c2edd [DPLAYX_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:28:27 +01:00
Amine Khaldi c557dfb7b8 [DINPUT_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:27:32 +01:00
Amine Khaldi 0b35adc274 [DINPUT] Sync with Wine 3.0. CORE-14225 2018-01-21 22:26:41 +01:00
Amine Khaldi 56fc552f24 [DEVENUM] Sync with Wine 3.0. CORE-14225 2018-01-21 22:25:39 +01:00
Amine Khaldi 65bd988c40 [D3DX9_24=>43] Sync with Wine 3.0. CORE-14225 2018-01-21 22:24:27 +01:00
Amine Khaldi a18d16dcb5 [D3DCOMPILER_43] Sync with Wine 3.0. CORE-14225 2018-01-21 22:22:20 +01:00
Amine Khaldi d6ac0a71ad [D3D9][WINED3D] Sync with Wine 3.0. CORE-14225 2018-01-21 22:20:57 +01:00
Amine Khaldi d255223474 [DDRAW] Sync with Wine 3.0. CORE-14225 2018-01-21 22:15:58 +01:00
Amine Khaldi e6c95b14e3 [D3D8] Sync with Wine 3.0. CORE-14225 2018-01-21 22:13:33 +01:00
Amine Khaldi 928bad849b [AMSTREAM] Sync with Wine 3.0. CORE-14225 2018-01-21 22:11:24 +01:00
Amine Khaldi 9a9ebc0e93 [WINHLP32] Sync with Wine 3.0. CORE-14225 2018-01-21 22:10:10 +01:00
Amine Khaldi 502927fd0e [XCOPY] Sync with Wine 3.0. CORE-14225 2018-01-21 22:08:40 +01:00
Amine Khaldi f7f635d478 [TASKKILL] Sync with Wine 3.0. CORE-14225 2018-01-21 22:07:31 +01:00
Amine Khaldi 819443d39d [REG_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:05:34 +01:00
Amine Khaldi b50acff2bf [REG] Sync with Wine 3.0. CORE-14225 2018-01-21 22:04:40 +01:00
Amine Khaldi d71285065d [WTSAPI32_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:02:13 +01:00
Amine Khaldi 90f14ccef3 [WTSAPI32] Sync with Wine 3.0. CORE-14225 2018-01-21 22:01:34 +01:00
Amine Khaldi 161232c08b [WSHOM_WINETEST] Sync with Wine 3.0. CORE-14225 2018-01-21 22:00:27 +01:00
Amine Khaldi 3672658e75 [WSHOM.OCX] Sync with Wine 3.0. CORE-14225 2018-01-21 21:59:45 +01:00
Amine Khaldi 81b5ed93e1 [WMVCORE] Sync with Wine 3.0. CORE-14225 2018-01-21 21:58:37 +01:00