reactos/ntoskrnl/include/internal
Pierre Schweitzer c5139563db
[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
2018-02-09 10:14:11 +01:00
..
amd64 [NTOS:MM] Make x64 address space layout more like Vista+ 2018-02-05 01:09:32 +01:00
arch
arm [NTOS:MM] Add support for NX page-faults 2018-01-06 18:20:24 +01:00
i386 [NTOSKRNL] Define the Mm global variables related to Cc on Mm init. 2018-02-06 13:41:23 +01:00
powerpc
cc.h [NTOSKRNL] Bring an initial (and not perfect ;-)) implementation of read ahead to our Cc! 2018-02-09 10:14:11 +01:00
cm.h
cm_x.h
dbgk.h
ex.h [NTOSKRNL] Rename ExpCriticalWorkerThreads and ExpDelayedWorkerThreads (no p) 2018-02-07 21:37:17 +01:00
fsrtl.h
hal.h
hdl.h
inbv.h [NTOS:INBV] Simplify a little bit the BootLogoFadeIn() function 2018-01-03 02:57:28 +01:00
io.h
io_i.h
io_x.h
kd.h [NTOS:KD] Pass PreviousMode down to KdpPrintString, since ExGetPreviousMode is not accurate. CORE-14103 2017-12-14 11:46:18 +01:00
kd64.h [NTOS] Add some header guards. 2017-12-12 12:42:13 +01:00
ke.h
ke_x.h
ldr.h
lpc.h
lpc_x.h
mm.h [NTOS:MM] Pass page fault code to MmAccessFault 2018-01-06 18:20:24 +01:00
napi.h
ntoskrnl.h
ob.h [NTOSKRNL] Implement (with many FIXMEs) ObReferenceFileObjectForWrite() so that it can already do the job! 2017-11-12 22:39:40 +01:00
ob_x.h
po.h
probe.h
ps.h
ps_i.h
ps_x.h
rtl.h
se.h
spinlock.h
tag.h
test.h
vdm.h