Commit graph

70990 commits

Author SHA1 Message Date
Pierre Schweitzer e26e4445b3
[NTOSKRNL] Revert 6ece4e9fc2 for third tools compatibility 2018-02-08 11:50:45 +01:00
Pierre Schweitzer df5839db5b
[NTOSKRNL] Implement CcSetAdditionalCacheAttributes() 2018-02-08 11:49:22 +01:00
Pierre Schweitzer f8c3f0c9c4
[NTOSKRNL] Misc cosmetic changes 2018-02-08 11:02:26 +01:00
Pierre Schweitzer 9c87925197
[NTOSKRNL] Implement CcSetReadAheadGranularity() 2018-02-08 11:02:26 +01:00
Pierre Schweitzer c19c7c7674
[NTOSKRNL] Magic value-- 2018-02-08 11:02:26 +01:00
Thomas Faber c0a227d9a5
[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.
2018-02-08 00:52:41 +01:00
Thomas Faber 2d887745a7
[LIBXML2] Restore lost ROS-diff introduced in 7571d351ce. CORE-14291 CORE-11799 2018-02-08 00:41:39 +01:00
Pierre Schweitzer 074e7e97fe
[NTOSKRNL] When initializing file cache, also allocate a private cache map if needed.
Not used yet.
2018-02-07 23:18:54 +01:00
Pierre Schweitzer 0e932c7bef
[NTOSKRNL] Drop the CcTryToInitializeFileCache() which is actually doing nothing relevant 2018-02-07 22:23:49 +01:00
Serge Gautherie 6ece4e9fc2 [NTOS:KE] Replace "Fatal System Error" with "BugCheck" 2018-02-07 22:22:28 +01:00
Pierre Schweitzer 323f71a551
[NTOSKRNL] Use the LockQueueMasterLock where appropriate 2018-02-07 21:37:17 +01:00
Pierre Schweitzer 19c822341b
[NTOSKRNL] Handle FSRTL_FLAG_LIMIT_MODIFIED_PAGES flag in CcDeferWrite().
Util now, CcDeferWrite() was ignoring limits per file object.
2018-02-07 21:37:17 +01:00
Pierre Schweitzer c11e947f61
[NTOSKRNL] Add wait support in CcCanIWrite() 2018-02-07 21:37:17 +01:00
Pierre Schweitzer 92e64a6c9b
[NTOSKRNL] Implement CcPostDeferredWrites() that executes deferred writes.
Make use of it in the lazy writer
2018-02-07 21:37:17 +01:00
Pierre Schweitzer f4e67aa837
[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
2018-02-07 21:37:17 +01:00
Pierre Schweitzer 7e550edb26
[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
2018-02-07 21:37:17 +01:00
Pierre Schweitzer 3b147adafb
[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.
2018-02-07 21:37:17 +01:00
Pierre Schweitzer 853f04e6fc
[NTOSKRNL] Rename ExpCriticalWorkerThreads and ExpDelayedWorkerThreads (no p)
to match Windows names and make them available for the whole kernel.
2018-02-07 21:37:17 +01:00
Pierre Schweitzer ee7b3b315d
[NTOSKRNL] Save system size on init in CcCapturedSystemSize 2018-02-07 21:37:17 +01:00
Luo Yufan 19737a2cb9 [TRANSLATION] Simplified Chinese translation update for NETID and PING. (#369) 2018-02-07 14:03:42 +01:00
Giannis Adamopoulos e05f08be4e [SYSSETUP] Hackfix CORE-14228
Wine's comctl32 somehow fails to load an 24bpp image with ImageList_LoadImageW
when crMask is CLR_NONE so use a color that doesn't exist in the bitmaps until
comctl32 gets fixed.

I prefer to add this silly hack in a non critical dll than make a hasty change in the
critical comctl32 until some proper tests are written for this absurd failure.
2018-02-07 02:26:28 +02:00
Giannis Adamopoulos 218b8eda92 [SYSSETUP] Don't load ISOLATIONAWARE_MANIFEST_RESOURCE_ID manually
Such a manifest is meant to be activated by the caller of the exports of the dll.
This means that the user of syssetup which is setup.exe is the one that should do the proper handling of the manifests.
Since setup.exe is the one that needs to do the right thing, add a CREATEPROCESS_MANIFEST_RESOURCE_ID to it and avoid
dealing with ISOLATIONAWARE_MANIFEST_RESOURCE_ID altogether (which is supposed to be used by activating the activation context
before calling the exports of the dll that has it). We don't really use ISOLATIONAWARE_MANIFEST_RESOURCE_ID correctly in any
place in the tree so let's rely on CREATEPROCESS_MANIFEST_RESOURCE_ID for now.

This fixes one part of CORE-14228 where no image was shown in the theme selector buttons. This happened because comctl32 was
statically linked and calling ImageList_LoadImage ended up creating an image list with comctl32 v5. Then we passed this image
list to a button created with comctl32 v6 and as a result the image list was unusable. This is yet another issue that needs
to be addressed in the future. Namely, it seems that in windows comctl32 v6 can use image lists created by comctl32 v5 whereas
we cannot.

This fix is not a hack but cleverly works around these two bugs that need to be addressed some time in the future.
CORE-14228
2018-02-07 01:15:49 +02:00
Joachim Henze 579e1e6b24 [EXPLORER] Update all preview bitmaps showing notification area
To reflect recent changes in taskbar height, icon spacing,
clock x and y margins.
Also make sure all shots show the exact same time
and choose a more localization agnostic time.
2018-02-06 17:35:08 +01:00
Joachim Henze bd7eae6795 [EXPLORER] Update classic/modern startmenu preview bitmaps
To reflect our recent updates in banners and notification area.
Also reduces explorer binary size by 214.016bytes.
2018-02-06 14:48:43 +01:00
Pierre Schweitzer d56a249089
[NTOSKRNL] Define the Mm global variables related to Cc on Mm init.
This means that MmSystemCacheStart, MmSystemCacheEnd, MmSizeOfSystemCacheInPages
have now a valid value.
System cache is not used atm the moment though. MmMapViewInSystemCache() is to
be implemented, and Cc is to be made aware of this.

CORE-14259
2018-02-06 13:41:23 +01:00
Mark Jansen 64d32eab27 [RAPPS] Do not resize (hide) the treeview when minimizing. 2018-02-06 00:08:12 +01:00
Bișoc George 7b71877676 [TRANSLATION] Romanian translation for FONTEXT and TIMEOUT (#363)
[FONTEXT]: At the moment there is a comment in the en-US.rc resource file that advises to not translate it. I only created this file as a basis for the future. The file will be updated later when there is the possibility for FONTEXT to be translated further.
2018-02-05 18:57:39 +01:00
Thomas Faber fc82f8e2e3
[LIBXML2] Update to version 2.9.7. CORE-14291 2018-02-05 18:55:48 +01:00
Luo Yufan b97f0a8fed [TRANSLATION][BROWSEUI][MEDIA] Simplified Chinese translations update (#360) 2018-02-05 18:47:53 +01:00
Thomas Faber ffd3b0c8db
[LIBTIFF] Restore ROS-diff that I thought was no longer needed because of PCH. CORE-14291 2018-02-05 18:21:48 +01:00
Mark Jansen 058c2658a4 [SHELL32] CDefViewBckgrndMenu: Fix a crash when pasting on a new explorer window. 2018-02-05 17:39:32 +01:00
Thomas Faber 2f8a7f36f5
[LIBMPG123] Update to version 1.25.8. CORE-14291 2018-02-05 14:40:39 +01:00
Thomas Faber f46b177e11
[LIBTIFF] Update to version 4.0.9. CORE-14291 2018-02-05 14:40:31 +01:00
Thomas Faber 5c0faa58cf
[LIBXSLT] Update to version 1.1.32. CORE-14291 2018-02-05 14:37:37 +01:00
Thomas Faber 5c72e50fd0
[LIBXSLT] Better highlight some ROS diffs. CORE-14291 2018-02-05 14:37:27 +01:00
Thomas Faber ef4f57579e
[LIBJPEG] Update to version 9c. CORE-14291 2018-02-05 11:51:02 +01:00
Thomas Faber df5a0b43e7
[LIBPNG] Update to version 1.6.34. CORE-14291 2018-02-05 11:51:00 +01:00
Thomas Faber 76c2045434
[FREELDR] Reduce the timeout during serial mouse detection. CORE-14280 2018-02-05 11:49:12 +01:00
Thomas Faber 4d811a2f97
[FREELDR] Remove unnecessary checks. CORE-14280 2018-02-05 11:49:10 +01:00
Thomas Faber 79ea0ae09e
[FREELDR] Display an additional status message for hardware detection. CORE-14280 2018-02-05 11:49:07 +01:00
Timo Kreuzer dae88fb828 [NTOS:MM] Make x64 address space layout more like Vista+
- Change MM_SYSTEM_SPACE_START to 0xFFFFF88000000000
- Move MI_DEBUG_MAPPING to the end of the system PTE range
- Add MI_SYSTEM_CACHE_START and MI_SYSTEM_CACHE_END, which is in the range that Vista uses as dynamic VA space for cache and other allocations
- Wrap x86 specific code that makes now invalid assumptions about the address space layout in #ifdef _M_IX86
2018-02-05 01:09:32 +01:00
Alex Ionescu 9ec85c29e3 [ROSLOAD]: Continue work on target preparation OslPrepareTarget 2/104.
[ROSLOAD]: Stubplement OslpCheckForcedFailure, OslpGetSetBootStatusData, OslSetBootStatusData, OslGetBootStatusData.
[ROSLOAD]: Stub OslpInitializeBootStatusDataLog, OslpReadWriteBootStatusData.
[BOOTLIB]: Fix BlAppendBootOptionString to accept an actual BCD ID instead of hardcoding LibraryPath.
[BOOTLIB]: Fix BlAppendBootOptionBoolean to accept an actual BOOLEAN value instead of hardcoding TRUE.
[BOOTLIB]: Implement BlDeviceIsVirtualPartitionDevice.
[BOOTLIB]: Add missing BcdOSLoaderInteger_ForceFailure BCD value. Add BCDE_OSLOADER_TYPE_BOOT_STATUS_POLICY based on BcdEdit.exe and Geoff Chappel site.
2018-02-04 16:01:38 -08:00
Eric Kohl f0c7db730c [SERVICES] Remove the synchronous service control pipe code
Remove the synchronous service control pipe code because we are using the asynchronous service control pipe code for years.
2018-02-04 22:30:33 +01:00
Eric Kohl e5870819a3 [SETUPAPI] Machine handles are pointers. 2018-02-04 22:03:17 +01:00
Pierre Schweitzer 41792c517e
[NTOSKRNL] Yet another ASSERT...
CORE-14285
2018-02-04 22:02:27 +01:00
Pierre Schweitzer 8dc4ac3692
[NTOSKRNL] Add an assert against VACB reference count overflow.
Very likely to be hit...

CORE-14285
2018-02-04 21:46:08 +01:00
Eric Kohl 19fc20f222 [SETUPAPI] Add a proper (SEH protected) check for LOG_CONF handles 2018-02-04 20:23:51 +01:00
Eric Kohl 60a218948e [SETUPAPI] Fix the coding style, annotations and debug messages
* Fix the coding style.
* Add missing annotations.
* Add the function name to the debug messages.
* Treat all machine handles like pointers.
2018-02-04 20:16:46 +01:00
Thomas Faber b9f88d594d
[PSDK][XDK] Remove DECLSPEC_* from windef.h, protect against redefinition in winnt.h 2018-02-04 19:28:36 +01:00
Adam Słaboń 0d838f40a3 [TRANSLATION] Polish translation update (#357) 2018-02-04 18:45:20 +01:00