reactos.git
6 years ago[HAL] Eliminate tail calls from HalpDispatchInterrupt[2]. CORE-14076
Thomas Faber [Sun, 18 Feb 2018 11:50:54 +0000 (12:50 +0100)]
[HAL] Eliminate tail calls from HalpDispatchInterrupt[2]. CORE-14076

6 years ago[HAL] Eliminate tail calls from HalEndSystemInterrupt. CORE-14076
Thomas Faber [Sun, 18 Feb 2018 11:49:24 +0000 (12:49 +0100)]
[HAL] Eliminate tail calls from HalEndSystemInterrupt. CORE-14076

6 years ago[HAL] Create a macro for the HalpEndSoftwareInterrupt to allow reuse. CORE-14076
Thomas Faber [Sun, 18 Feb 2018 11:42:18 +0000 (12:42 +0100)]
[HAL] Create a macro for the HalpEndSoftwareInterrupt to allow reuse. CORE-14076

6 years ago[HAL] Convert HalpEndSoftwareInterrupt2 to fastcall. CORE-14076
Thomas Faber [Sun, 11 Feb 2018 10:33:16 +0000 (11:33 +0100)]
[HAL] Convert HalpEndSoftwareInterrupt2 to fastcall. CORE-14076

6 years ago[RAPPS] Some fixes to our completely broken cert pinning attempt.
Mark Jansen [Sun, 18 Feb 2018 11:56:33 +0000 (12:56 +0100)]
[RAPPS] Some fixes to our completely broken cert pinning attempt.
- We should not open a new connection to request a certificate.
- Update the issuer / subject for the LE certificate.
- User proper types.
- Require all fields that we check to be present.

Without checking the public key or the entire certificate it's still not secure, but we are a step closer.
Dedicated to Joachim Henze
CORE-14350

6 years ago[NTOSKRNL] Don't make CcScheduleReadAhead() too noisy
Pierre Schweitzer [Sun, 18 Feb 2018 10:30:51 +0000 (11:30 +0100)]
[NTOSKRNL] Don't make CcScheduleReadAhead() too noisy

6 years ago[WIN32K:NTUSER] Safely handle allocation failure in IntCloneMenu. CORE-14222 366/head
Thomas Faber [Thu, 1 Feb 2018 10:08:14 +0000 (11:08 +0100)]
[WIN32K:NTUSER] Safely handle allocation failure in IntCloneMenu. CORE-14222

6 years ago[WIN32K:NTUSER] Avoid allocating an extra item in IntCloneMenuItems. CORE-14222
Thomas Faber [Thu, 1 Feb 2018 10:07:39 +0000 (11:07 +0100)]
[WIN32K:NTUSER] Avoid allocating an extra item in IntCloneMenuItems. CORE-14222

6 years ago[WIN32K:NTUSER] Handle realloc failure in IntRemoveMenuItem. CORE-14222
Thomas Faber [Thu, 1 Feb 2018 10:06:50 +0000 (11:06 +0100)]
[WIN32K:NTUSER] Handle realloc failure in IntRemoveMenuItem. CORE-14222

6 years ago[WIN32K:NTUSER] Handle allocation failure in PopupMenuWndProc. CORE-14222
Thomas Faber [Thu, 1 Feb 2018 10:06:03 +0000 (11:06 +0100)]
[WIN32K:NTUSER] Handle allocation failure in PopupMenuWndProc. CORE-14222

6 years ago[KMTESTS] Change license to LGPL and update to SPDX headers.
Thomas Faber [Sun, 18 Feb 2018 10:14:13 +0000 (11:14 +0100)]
[KMTESTS] Change license to LGPL and update to SPDX headers.

Permission for this change was given by all authors
(who are now mentioned in the copyright lines).

6 years ago[NTSTATUS] Add some status messages.
Hermès Bélusca-Maïto [Sun, 18 Feb 2018 01:49:31 +0000 (02:49 +0100)]
[NTSTATUS] Add some status messages.

6 years ago[BOOTDATA] Add some informative registry values (Win2k3 compat).
Hermès Bélusca-Maïto [Sun, 18 Feb 2018 00:41:53 +0000 (01:41 +0100)]
[BOOTDATA] Add some informative registry values (Win2k3 compat).

- In HKLM\SYSTEM\CurrentControlSet\Control\Windows, add "Directory"
  and "SystemDirectory" values, giving the ReactOS installation
  directories (purely informative).
- Also add the "ErrorMode" value that specifies how the hard-error
  popups are displayed. This value will be used later.
- Fix event log sources ordering.

6 years ago[BOOTDATA] Add "Application Popup" as a known source of events for the System event...
Hermès Bélusca-Maïto [Sun, 18 Feb 2018 00:16:24 +0000 (01:16 +0100)]
[BOOTDATA] Add "Application Popup" as a known source of events for the System event log.

6 years ago[CMAKE] Increase KERNEL_VERSION_PATCH_LEVEL to 9 CORE-14345
Joachim Henze [Sat, 17 Feb 2018 22:48:16 +0000 (23:48 +0100)]
[CMAKE] Increase KERNEL_VERSION_PATCH_LEVEL to 9 CORE-14345

To make 1st stage setup properly report "0.4.9"

6 years ago[SC] Fix MSVC build.
Hermès Bélusca-Maïto [Sat, 17 Feb 2018 20:03:58 +0000 (21:03 +0100)]
[SC] Fix MSVC build.

6 years ago[SHELL32] CFSDropTarget: style fixes
Giannis Adamopoulos [Sat, 17 Feb 2018 20:01:04 +0000 (22:01 +0200)]
[SHELL32] CFSDropTarget: style fixes

6 years ago[SHELL32] CDefView: remove a useless print
Giannis Adamopoulos [Sat, 17 Feb 2018 19:36:31 +0000 (21:36 +0200)]
[SHELL32] CDefView: remove a useless print

6 years ago[SHELL32] CFSDropTarget: Use copy depending on the source drive
Giannis Adamopoulos [Sat, 17 Feb 2018 11:59:51 +0000 (13:59 +0200)]
[SHELL32] CFSDropTarget: Use copy depending on the source drive
Show the default action as the default menu item in the right click menu.

6 years ago[SHELL32] CFSDropTarget: Initial implementation of right click drag menu
Giannis Adamopoulos [Fri, 16 Feb 2018 18:33:44 +0000 (20:33 +0200)]
[SHELL32] CFSDropTarget: Initial implementation of right click drag menu

6 years ago[SHELL32] CDefView: Implement several methods needed for drop targets
Giannis Adamopoulos [Sat, 17 Feb 2018 17:29:20 +0000 (19:29 +0200)]
[SHELL32] CDefView: Implement several methods needed for drop targets
Set the view object as the site of the drop target.
Implement GetItemPosition, SelectAndPositionItems, IsDropOnSource, GetDragPoint.
Use DROPEFFECT_COPY only when the item supports it.

6 years ago[SHELL32] Add menu resource which is used when dragging files with right click
Giannis Adamopoulos [Sat, 17 Feb 2018 17:18:43 +0000 (19:18 +0200)]
[SHELL32] Add menu resource which is used when dragging files with right click

6 years ago[SC] Implement missing query/queryex options
Eric Kohl [Sat, 17 Feb 2018 18:26:06 +0000 (19:26 +0100)]
[SC] Implement missing query/queryex options
- PrintService: Print optional display name.
- MainUsage: Print missing query options.
- Parse query options and use them to enumerate services.

6 years ago[CMAKE] Call "git describe" with the --long parameter to always output the format...
Colin Finck [Sat, 17 Feb 2018 17:09:07 +0000 (18:09 +0100)]
[CMAKE] Call "git describe" with the --long parameter to always output the format we are used to.

6 years ago[SHELL32_APITEST] Run the CUserNotification worker test function in a thread to copy... 0.4.9-dev
Hermès Bélusca-Maïto [Sat, 17 Feb 2018 15:02:22 +0000 (16:02 +0100)]
[SHELL32_APITEST] Run the CUserNotification worker test function in a thread to copy with possible test timeouts. CORE-13177

6 years ago[NTOSKRNL] Don't call OOM dumper in case we were trying to allocate more than 100...
Pierre Schweitzer [Sat, 17 Feb 2018 14:09:38 +0000 (15:09 +0100)]
[NTOSKRNL] Don't call OOM dumper in case we were trying to allocate more than 100 pages.
In such case, we'll consider the caller is bogus and we'll fail in silence.
Dedicated to Mark (again!)

6 years ago[NTOSKRNL] Allow more chars in ExpTagAllowPrint().
Pierre Schweitzer [Sat, 17 Feb 2018 14:06:29 +0000 (15:06 +0100)]
[NTOSKRNL] Allow more chars in ExpTagAllowPrint().
Dedicated to Mark

6 years ago[FASTFAT] Drop read ahead locking routines in favor of lazy writer routines.
Pierre Schweitzer [Sat, 17 Feb 2018 12:48:32 +0000 (13:48 +0100)]
[FASTFAT] Drop read ahead locking routines in favor of lazy writer routines.
This avoids code duplication while being consistent with MS FastFAT.

6 years ago[SHELL32] Fix COM registration of IShellFolder, IShellLinkA/W, IQueryContinue and...
Hermès Bélusca-Maïto [Fri, 16 Feb 2018 22:30:09 +0000 (23:30 +0100)]
[SHELL32] Fix COM registration of IShellFolder, IShellLinkA/W, IQueryContinue and IUserNotification classes.

6 years ago[EXPLORER] Update French translation
Pierre Schweitzer [Fri, 16 Feb 2018 18:36:25 +0000 (19:36 +0100)]
[EXPLORER] Update French translation

6 years agoimprove SHGetFileInfo (#118)
Katayama Hirofumi MZ [Fri, 16 Feb 2018 11:00:08 +0000 (20:00 +0900)]
improve SHGetFileInfo (#118)

This patch reduces failures of SHGetFileInfo function. CORE-7159
* improve WideByteToWideChar calls
* fix bugs related to file attributes and SHGFI_EXETYPE
* SHGFI_USEFILEATTRIBUTES and SHGFI_ICON fix
* s/sizeof(temppsfi)/0/

6 years ago[D3D9][ARPING] Add missing va_start() and va_end() (#371)
Serge Gautherie [Fri, 16 Feb 2018 09:28:25 +0000 (10:28 +0100)]
[D3D9][ARPING] Add missing va_start() and va_end() (#371)

6 years ago[COM_APITEST] Reenable two known interfaces (#367). Caught by Thomas.
Hermès Bélusca-Maïto [Thu, 15 Feb 2018 23:15:41 +0000 (00:15 +0100)]
[COM_APITEST] Reenable two known interfaces (#367). Caught by Thomas.

6 years ago[I8042PRT] Apply a workaround for Dell Latitude D610
Doug Lyons [Thu, 15 Feb 2018 21:48:01 +0000 (22:48 +0100)]
[I8042PRT] Apply a workaround for Dell Latitude D610
CORE-14324

6 years ago[SHELL32_APITEST] Add a test for the CUserNotification implementation. CORE-13177 367/head
Hermès Bélusca-Maïto [Thu, 15 Feb 2018 00:17:32 +0000 (01:17 +0100)]
[SHELL32_APITEST] Add a test for the CUserNotification implementation. CORE-13177

6 years ago[SHELL32] Implement the CUserNotification class, which implements the IUserNotificati...
Hermès Bélusca-Maïto [Wed, 7 Feb 2018 01:20:26 +0000 (02:20 +0100)]
[SHELL32] Implement the CUserNotification class, which implements the IUserNotification interface. CORE-13177

6 years ago[COM_APITEST] Add tests for IUserNotification. CORE-13177
Hermès Bélusca-Maïto [Wed, 7 Feb 2018 01:14:07 +0000 (02:14 +0100)]
[COM_APITEST] Add tests for IUserNotification. CORE-13177

6 years ago[PSDK] Add definitions for IUserNotification, IQueryContinue, and IUserNotification2...
Hermès Bélusca-Maïto [Wed, 7 Feb 2018 01:15:41 +0000 (02:15 +0100)]
[PSDK] Add definitions for IUserNotification, IQueryContinue, and IUserNotification2 and IUserNotificationCallback (Vista+).
CORE-13177

6 years ago[SC] Disable debug messages on user interface (#382)
Serge Gautherie [Thu, 15 Feb 2018 13:58:17 +0000 (14:58 +0100)]
[SC] Disable debug messages on user interface (#382)

6 years ago[HAL] Implement APIC-based profiling for x64. 116/head
Ivan Labutin [Mon, 6 Nov 2017 18:40:21 +0000 (21:40 +0300)]
[HAL] Implement APIC-based profiling for x64.

6 years ago[IP] Silence "TCP operation failed" debug spam.
Thomas Faber [Thu, 15 Feb 2018 11:19:57 +0000 (12:19 +0100)]
[IP] Silence "TCP operation failed" debug spam.

6 years ago[SHELL32] CNewMenu: Don't use CWM_GETISHELLBROWSER.
Giannis Adamopoulos [Wed, 14 Feb 2018 22:58:22 +0000 (00:58 +0200)]
[SHELL32] CNewMenu: Don't use CWM_GETISHELLBROWSER.
CDefaultContextMenu: Set the site for context menu extensions
CNewMenu: Get SID_IFolderView service of the site to get the IShellView

6 years ago[SHELL32] Fix the toolbar buttons in the file open dialog
Giannis Adamopoulos [Wed, 14 Feb 2018 22:23:18 +0000 (00:23 +0200)]
[SHELL32] Fix the toolbar buttons in the file open dialog
CDefView: Make GetItemObject return an IContectMenu after setting itself as the site.
CDefViewBckgrndMenu: Make the inner context menu use the same site. Implement handling CMDSTR_VIEWLISTA and CMDSTR_VIEWDETAILSA.
CDefaultContextMenu: CMDSTR_VIEWLISTA and CMDSTR_VIEWDETAILSA shouldn't be handled in this class.
Fixes CORE-14327 and the two buttons that change the view mode

6 years ago[SHELL32] Fix glitch in de-DE.rc
Joachim Henze [Wed, 14 Feb 2018 19:12:10 +0000 (20:12 +0100)]
[SHELL32] Fix glitch in de-DE.rc

checkbox captions are too long.
issue was introduced by 3624c5d6fd2cf1c589c26f75ac2d6054f7a838a0

fixes CORE-14329 for de-DE

6 years ago[SHELL32] CDefViewBckgrndMenu: Fix handling string verbs.
Giannis Adamopoulos [Tue, 13 Feb 2018 22:03:35 +0000 (00:03 +0200)]
[SHELL32] CDefViewBckgrndMenu: Fix handling string verbs.
It shouldn't be necessary for QueryContextMenu to be called before InvokeCommand.
Move retrieving the IContextMenu of the folder to the initialization of the class.
CORE-12866

6 years ago[SHLWAPI] Import wine commit 2c163225730e88 as addendum to the SHCreateWorkerWindowW...
Hermès Bélusca-Maïto [Tue, 13 Feb 2018 21:05:13 +0000 (22:05 +0100)]
[SHLWAPI] Import wine commit 2c163225730e88 as addendum to the SHCreateWorkerWindowW/A fixes from commit 770bf93.

6 years ago[TRANSLATION][INF] Update Simplified Chinese translation. (#378)
Luo Yufan [Tue, 13 Feb 2018 21:16:25 +0000 (05:16 +0800)]
[TRANSLATION][INF] Update Simplified Chinese translation. (#378)

6 years ago[COMCTL32] Import wine commit 71cf0a31d99feb to fix the name column width in rapps.
Mark Jansen [Tue, 13 Feb 2018 18:47:58 +0000 (19:47 +0100)]
[COMCTL32] Import wine commit 71cf0a31d99feb to fix the name column width in rapps.

6 years ago[SHLWAPI] Improvements for SHCreateWorkerWindowW/A() prototypes + fix x64-bit compati...
Hermès Bélusca-Maïto [Mon, 12 Feb 2018 23:10:09 +0000 (00:10 +0100)]
[SHLWAPI] Improvements for SHCreateWorkerWindowW/A() prototypes + fix x64-bit compatibility. Sent upstream.

[SHLWAPI] Refactor the SHCreateWorkerWindowW() prototype to match its ANSI SHCreateWorkerWindowA() counterpart.

The last parameter is really to be understood as an extra window data, and not a "message result" (as it would be the case for dialog window procedure).
That is why I also remove the mention of "DWLP_MSGRESULT" in the SetWindowLongPtrW() call.
SHCreateWorkerWindowA() had it OK but SHCreateWorkerWindowW() did not.

------------------

[SHLWAPI] Make SHCreateWorkerWindowA() and SHCreateWorkerWindowW() x64-compatible.

The first parameter of these functions is a pointer to a window procedure, having a definite prototype, so employ a correct typedef WNDPROC,
which ensures both correct pointer size and parameter type enforcement.
This also ensures that we use instead a correct pointer size, since otherwise LONG remains 32-bits for Windows compatibility on x64 platforms.
The wndProc parameter is thus casted to LONG_PTR to comply with the SetWindowLongPtrA/W calls.

In SHCreateWorkerWindowW(), the last "wnd_extra" parameter should also be LONG_PTR to be able to pass 64-bit data pointer on x64 platforms.
Therefore fix also setting the wc.cbWndExtra size. One should note that the ANSI SHCreateWorkerWindowA() function had everything OK already.

6 years ago[CDFS_NEW] Fix a bug in Microsoft CDFS implementation where the top level IRP
Pierre Schweitzer [Mon, 12 Feb 2018 19:45:12 +0000 (20:45 +0100)]
[CDFS_NEW] Fix a bug in Microsoft CDFS implementation where the top level IRP
is set before locking is actually attempted for Cc worker thread (lazy write/read ahead).
So in case locking fails, the top level IRP is set and never unset, and latter
call will hit the assert where it expects the top level IRP to be NULL.

Should be reported upstream (tm).

CORE-14315

6 years ago[SERVICES] Set a complete service status for running boot start or system start drivers
Eric Kohl [Mon, 12 Feb 2018 14:50:30 +0000 (15:50 +0100)]
[SERVICES] Set a complete service status for running boot start or system start drivers

6 years ago[SERVICES] Fix the initial service status
Eric Kohl [Mon, 12 Feb 2018 13:58:02 +0000 (14:58 +0100)]
[SERVICES] Fix the initial service status

- The initial dwWin32ExitCode for a disabled service is ERROR_SERVICE_DISABLED and ERROR_SRVICE_NEVER_STARTED for non-disabled services.
- The initial dwWaitHint is 2000 (2 seconds) for (user-mode) services and 0 for drivers.
- Move all driver-related code to driver.c.

6 years ago[APPSHIM_APITEST] Fix 2 Clang-Cl warnings about ok2
Serge Gautherie [Sun, 11 Feb 2018 22:15:06 +0000 (23:15 +0100)]
[APPSHIM_APITEST] Fix 2 Clang-Cl warnings about ok2

"warning: expression result unused [-Wunused-value]"

CORE-14306

6 years ago[EXPLORER] Fix a Clang-Cl warning about Icon->ProcessId
Serge Gautherie [Sun, 11 Feb 2018 22:57:15 +0000 (23:57 +0100)]
[EXPLORER] Fix a Clang-Cl warning about Icon->ProcessId

"warning: expression result unused [-Wunused-value]"
Regressed in be2bf9b.

CORE-14306

6 years ago[EXPLORER] WatchList should be freed with delete[], not delete (#374)
Bișoc George [Sun, 11 Feb 2018 21:56:38 +0000 (22:56 +0100)]
[EXPLORER] WatchList should be freed with delete[], not delete (#374)

WatchList is a set of array objects, initialized with "new[]", so it should be freed with "delete[]" to free all of its elements. Otherwise using only "delete" only frees the first variable but not its array. This would lead to an undefined behaviour.

6 years ago[CONUTILS] Relax the enforcement of using FORMAT_MESSAGE_MAX_WIDTH_MASK in the ConMsg...
Hermès Bélusca-Maïto [Sun, 11 Feb 2018 17:08:39 +0000 (18:08 +0100)]
[CONUTILS] Relax the enforcement of using FORMAT_MESSAGE_MAX_WIDTH_MASK in the ConMsg* and ConResMsg* functions.

6 years ago[MAGNIFY] Call PostQuitMessage() only at the very end.
Hermès Bélusca-Maïto [Sat, 10 Feb 2018 23:35:29 +0000 (00:35 +0100)]
[MAGNIFY] Call PostQuitMessage() only at the very end.

6 years ago[NTOSKRNL] In debug builds, print more information about the top level IRP in the...
Pierre Schweitzer [Sat, 10 Feb 2018 22:49:33 +0000 (23:49 +0100)]
[NTOSKRNL] In debug builds, print more information about the top level IRP in the Cc worker thread

CORE-14315

6 years ago[SDK] Fix NT6 building issues and improve SDK NT6 headers. 356/head
Denis Malikov [Sun, 4 Feb 2018 11:29:23 +0000 (18:29 +0700)]
[SDK] Fix NT6 building issues and improve SDK NT6 headers.

CORE-12596

6 years ago[CRT:STARTUP] Fix a Clang-Cl warning about GS_ExceptionPointers 372/head
Serge Gautherie [Sat, 10 Feb 2018 05:39:28 +0000 (06:39 +0100)]
[CRT:STARTUP] Fix a Clang-Cl warning about GS_ExceptionPointers

"warning: unused variable 'GS_ExceptionPointers' [-Wunused-const-variable]"
Missed in CORE-8626 r64704.

CORE-14306

6 years ago[DXG] Fix a Clang-Cl warning about DDHAL_CB32_CANCREATESURFACE 370/head
Serge Gautherie [Wed, 7 Feb 2018 23:31:13 +0000 (00:31 +0100)]
[DXG] Fix a Clang-Cl warning about DDHAL_CB32_CANCREATESURFACE

"warning: use of logical '&&' with constant operand [-Wconstant-logical-operand]"

CORE-14306

6 years ago[OPENGLCFG] Fix a Clang-Cl warning about IDC_DEBUG_OUTPUT
Serge Gautherie [Wed, 7 Feb 2018 23:27:27 +0000 (00:27 +0100)]
[OPENGLCFG] Fix a Clang-Cl warning about IDC_DEBUG_OUTPUT

"warning: use of logical '||' with constant operand [-Wconstant-logical-operand]"

CORE-14306

6 years ago[STRMBASE] Sync with Wine 3.0. CORE-14225 364/head
Thomas Faber [Mon, 5 Feb 2018 17:47:10 +0000 (18:47 +0100)]
[STRMBASE] Sync with Wine 3.0. CORE-14225

6 years ago[SERVICES] Update the service status after unloading a driver
Eric Kohl [Sat, 10 Feb 2018 16:02:23 +0000 (17:02 +0100)]
[SERVICES] Update the service status after unloading a driver

Update the service status after unloading the driver and pass the new status to the caller.

CORE-14269

6 years ago[EXPLORER] Send balloon notifications to the callback message.
David Quintana [Sat, 10 Feb 2018 14:47:49 +0000 (15:47 +0100)]
[EXPLORER] Send balloon notifications to the callback message.
TODO: Send NIN_BALLOONUSERCLICK when the user clicks on the balloon content (not the X button).

6 years ago[PSDK] Add missing shell notification message flags.
Hermès Bélusca-Maïto [Sat, 10 Feb 2018 14:41:21 +0000 (15:41 +0100)]
[PSDK] Add missing shell notification message flags.

6 years ago[SERVICES] Support the NoInteractiveServices registry value
Eric Kohl [Sat, 10 Feb 2018 13:23:11 +0000 (14:23 +0100)]
[SERVICES] Support the NoInteractiveServices registry value

6 years ago[NTOSKRNL] Avoid private cache map allocation for the first handle
Pierre Schweitzer [Fri, 9 Feb 2018 20:52:41 +0000 (21:52 +0100)]
[NTOSKRNL] Avoid private cache map allocation for the first handle
Standard shared cache map provides space for a private cache map, do the same
and make it available for the first handle. It avoids two allocations in a row.

6 years ago[NTOSKRNL] Modified CcCanIWrite to handle Mm throttling limits
Pierre Schweitzer [Fri, 9 Feb 2018 13:22:00 +0000 (14:22 +0100)]
[NTOSKRNL] Modified CcCanIWrite to handle Mm throttling limits

6 years ago[NTOSKRNL] Define the throttling limits for Cc in Mm: MmThrottleTop, MmThrottleBottom.
Pierre Schweitzer [Fri, 9 Feb 2018 13:21:14 +0000 (14:21 +0100)]
[NTOSKRNL] Define the throttling limits for Cc in Mm: MmThrottleTop, MmThrottleBottom.
Modified !defwrites to reflect that change

6 years ago[NTOSKRNL] Rewrite CcCanIWrite() to make it more accurate and handle specific callers
Pierre Schweitzer [Fri, 9 Feb 2018 12:56:16 +0000 (13:56 +0100)]
[NTOSKRNL] Rewrite CcCanIWrite() to make it more accurate and handle specific callers

6 years ago[NTOSKRNL] Don't defer write through write operations
Pierre Schweitzer [Fri, 9 Feb 2018 11:25:58 +0000 (12:25 +0100)]
[NTOSKRNL] Don't defer write through write operations

6 years ago[NTOSKRNL] Quickly implement the !defwrites in KDBG
Pierre Schweitzer [Fri, 9 Feb 2018 11:16:29 +0000 (12:16 +0100)]
[NTOSKRNL] Quickly implement the !defwrites in KDBG

6 years ago[NTOSKRNL] Drop the iSharedCacheMapLock in favor of the master lock
Pierre Schweitzer [Fri, 9 Feb 2018 10:13:53 +0000 (11:13 +0100)]
[NTOSKRNL] Drop the iSharedCacheMapLock in favor of the master lock

6 years ago[NTOSKRNL] Silence lazy writer now we know it works
Pierre Schweitzer [Fri, 9 Feb 2018 10:05:44 +0000 (11:05 +0100)]
[NTOSKRNL] Silence lazy writer now we know it works

6 years ago[NTOSKRNL] Use better locking for private cache map in CcRosReleaseFileCache().
Pierre Schweitzer [Fri, 9 Feb 2018 10:05:15 +0000 (11:05 +0100)]
[NTOSKRNL] Use better locking for private cache map in CcRosReleaseFileCache().
Suggested by Thomas

6 years ago[NTOSKRNL] Bring an initial (and not perfect ;-)) implementation of read ahead to...
Pierre Schweitzer [Fri, 9 Feb 2018 09:06:17 +0000 (10:06 +0100)]
[NTOSKRNL] Bring an initial (and not perfect ;-)) implementation of read ahead to our Cc!

This halfplements CcScheduleReadAhead() which is responsible for finding the next reads
to perform given last read and previous reads. I made it very basic for now, at least
to test the whole process.
This also introduces the CcExpressWorkQueue in the lazy writer which is responsible
for dealing with read ahead items and which is dealt with before the regular queue.
In CcCopyData(), if read was fine, schedule read ahead so that it can happen in background
without the FSD to notice it! Also, update the read history so that scheduling as a
bit of data.
Implement (à la "old Cc" ;-)) CcPerformReadAhead() which is responsible for performing
the read. It's only to be called by the worker thread.

Side note on the modifications done in CcRosReleaseFileCache(). Private cache map
is tied to a handle. If it goes away, private cache map gets deleted. Read ahead
can run after the handle was closed (and thus, private cache map deleted), so
it is mandatory to always lock the master lock before accessing the structure in
read ahead or before deleting it in CcRosReleaseFileCache(). Otherwise, you'll
just break everything. You've been warned!

This commit also partly reverts f8b5d27.

CORE-14312

6 years ago[RAPPS] Fix column sorting
Alexander Shaposhnikov [Thu, 8 Feb 2018 22:53:31 +0000 (00:53 +0200)]
[RAPPS] Fix column sorting

CORE-13793

6 years ago[RAPPS] Set header style when sorting by column
Alexander Shaposhnikov [Thu, 8 Feb 2018 22:41:55 +0000 (00:41 +0200)]
[RAPPS] Set header style when sorting by column

6 years ago[NTOSKRNL] Fix a ****ing bug where private cache map was deleted in CcUninitializeCac...
Pierre Schweitzer [Thu, 8 Feb 2018 13:15:02 +0000 (14:15 +0100)]
[NTOSKRNL] Fix a ****ing bug where private cache map was deleted in CcUninitializeCacheMap()
before the call to CcRosReleaseFileCache() which expects to have it to properly clean the file.
So, move deletion code to CcRosReleaseFileCache() so that he's the only one to handle private map.
Should hopefully fix all the recent buildbots issues (and the universe perhaps, who knows?)

6 years ago[NDK] Update the PRIVATE_CACHE_MAP structure to match W2K3 one.
Pierre Schweitzer [Thu, 8 Feb 2018 13:02:42 +0000 (14:02 +0100)]
[NDK] Update the PRIVATE_CACHE_MAP structure to match W2K3 one.
Also update the spin lock on allocation.

6 years ago[NTOSKRNL] Revert 2362e0f and 07e6e9c (partly) they seem to have caused high instabil...
Pierre Schweitzer [Thu, 8 Feb 2018 12:40:54 +0000 (13:40 +0100)]
[NTOSKRNL] Revert 2362e0f and 07e6e9c (partly) they seem to have caused high instability in Cc.
This reverts BCB being lazy written when marked dirty.

We'll go back to this behavior when this part will have been reworked and stabilized.

CORE-14263
CORE-14279
CORE-14285

6 years ago[NTOSKRNL] Revert 6ece4e9fc22d664ea2485d04303e8ae10047f21f for third tools compatibility
Pierre Schweitzer [Thu, 8 Feb 2018 10:50:45 +0000 (11:50 +0100)]
[NTOSKRNL] Revert 6ece4e9fc22d664ea2485d04303e8ae10047f21f for third tools compatibility

6 years ago[NTOSKRNL] Implement CcSetAdditionalCacheAttributes()
Pierre Schweitzer [Thu, 8 Feb 2018 10:49:22 +0000 (11:49 +0100)]
[NTOSKRNL] Implement CcSetAdditionalCacheAttributes()

6 years ago[NTOSKRNL] Misc cosmetic changes
Pierre Schweitzer [Thu, 8 Feb 2018 10:02:07 +0000 (11:02 +0100)]
[NTOSKRNL] Misc cosmetic changes

6 years ago[NTOSKRNL] Implement CcSetReadAheadGranularity()
Pierre Schweitzer [Thu, 8 Feb 2018 08:46:57 +0000 (09:46 +0100)]
[NTOSKRNL] Implement CcSetReadAheadGranularity()

6 years ago[NTOSKRNL] Magic value--
Pierre Schweitzer [Thu, 8 Feb 2018 08:46:08 +0000 (09:46 +0100)]
[NTOSKRNL] Magic value--

6 years ago[SYSDM] Make the GPL text ASCII. CORE-14278
Thomas Faber [Wed, 7 Feb 2018 09:53:51 +0000 (10:53 +0100)]
[SYSDM] Make the GPL text ASCII. CORE-14278

This is better than wasting space on null chars (and having Git mangle it).
Also ensure that it gets CRLF newlines since its contents go in the binary.

6 years ago[LIBXML2] Restore lost ROS-diff introduced in 7571d351ce. CORE-14291 CORE-11799
Thomas Faber [Wed, 7 Feb 2018 23:41:13 +0000 (00:41 +0100)]
[LIBXML2] Restore lost ROS-diff introduced in 7571d351ce. CORE-14291 CORE-11799

6 years ago[NTOSKRNL] When initializing file cache, also allocate a private cache map if needed.
Pierre Schweitzer [Wed, 7 Feb 2018 22:18:54 +0000 (23:18 +0100)]
[NTOSKRNL] When initializing file cache, also allocate a private cache map if needed.
Not used yet.

6 years ago[NTOSKRNL] Drop the CcTryToInitializeFileCache() which is actually doing nothing...
Pierre Schweitzer [Wed, 7 Feb 2018 21:23:25 +0000 (22:23 +0100)]
[NTOSKRNL] Drop the CcTryToInitializeFileCache() which is actually doing nothing relevant

6 years ago[NTOS:KE] Replace "Fatal System Error" with "BugCheck"
Serge Gautherie [Wed, 7 Feb 2018 05:29:02 +0000 (06:29 +0100)]
[NTOS:KE] Replace "Fatal System Error" with "BugCheck"

6 years ago[NTOSKRNL] Use the LockQueueMasterLock where appropriate
Pierre Schweitzer [Wed, 7 Feb 2018 20:35:22 +0000 (21:35 +0100)]
[NTOSKRNL] Use the LockQueueMasterLock where appropriate

6 years ago[NTOSKRNL] Handle FSRTL_FLAG_LIMIT_MODIFIED_PAGES flag in CcDeferWrite().
Pierre Schweitzer [Wed, 7 Feb 2018 20:11:39 +0000 (21:11 +0100)]
[NTOSKRNL] Handle FSRTL_FLAG_LIMIT_MODIFIED_PAGES flag in CcDeferWrite().
Util now, CcDeferWrite() was ignoring limits per file object.

6 years ago[NTOSKRNL] Add wait support in CcCanIWrite()
Pierre Schweitzer [Wed, 7 Feb 2018 20:09:36 +0000 (21:09 +0100)]
[NTOSKRNL] Add wait support in CcCanIWrite()

6 years ago[NTOSKRNL] Implement CcPostDeferredWrites() that executes deferred writes.
Pierre Schweitzer [Wed, 7 Feb 2018 19:27:55 +0000 (20:27 +0100)]
[NTOSKRNL] Implement CcPostDeferredWrites() that executes deferred writes.
Make use of it in the lazy writer

6 years ago[NTOSKRNL] Properly implement lazy writer activity watching.
Pierre Schweitzer [Wed, 7 Feb 2018 17:56:13 +0000 (18:56 +0100)]
[NTOSKRNL] Properly implement lazy writer activity watching.
We get rid of the old iLazyWriterNotify event in favor of work items
that contain an event that lazy writer will set once its done.
To implement this, we rely on the newly introduced CcPostTickWorkQueue work queue
that will contain work items that are to be queued once lazy writer is done.

Move the CcWaitForCurrentLazyWriterActivity() implementation to the
lazy writer file, and reimplemented it using the new support mechanisms

6 years ago[NTOSKRNL] Drop the always running thread for lazy writer.
Pierre Schweitzer [Wed, 7 Feb 2018 17:10:59 +0000 (18:10 +0100)]
[NTOSKRNL] Drop the always running thread for lazy writer.
Instead move to a threading model like the Windows one.
We'll queue several work items to be executed in a system thread (Cc worker)
when there are VACB that have been marked as dirty. Furthermore, some delay
will be observed before action to avoid killing the system with IOs.
This new threading model opens way for read ahead and write behind implementation.

Also, moved the initialization of the lazy writer to CcInitializeCacheManager()
it has nothing to do with views and shouldn't be initialized there.

Also, moved the lazy writer implementation to its own file.

Modified CcDeferWrite() and CcRosMarkDirtyVacb() to take into account the new threading model.

Introduced new functions:
- CcPostWorkQueue(): post an item to be handled by Cc worker and spawn a worker if required
- CcScanDpc(): called after some time (not to have lazy writer always running) to queue a lazy scan
- CcLazyWriteScan(): the lazy writer we used to have
- CcScheduleLazyWriteScan(): function to call when you want to start a lazy writer run. It will make a DPC after some time and queue execution
- CcWorkerThread(): the worker thread that will handle lazy write, read ahead, and so on

6 years ago[NTOSKRNL] On Cc init, also define CcNumberWorkerThreads which will be used later on
Pierre Schweitzer [Wed, 7 Feb 2018 16:52:51 +0000 (17:52 +0100)]
[NTOSKRNL] On Cc init, also define CcNumberWorkerThreads which will be used later on
Also make a "default" case (really limited) in case SystemSize doesn't match.

6 years ago[NTOSKRNL] Rename ExpCriticalWorkerThreads and ExpDelayedWorkerThreads (no p)
Pierre Schweitzer [Wed, 7 Feb 2018 16:51:35 +0000 (17:51 +0100)]
[NTOSKRNL] Rename ExpCriticalWorkerThreads and ExpDelayedWorkerThreads (no p)
to match Windows names and make them available for the whole kernel.