[NTOSKRNL] Warn about unimplemented feature in CcMapData() (in all callers)
authorPierre Schweitzer <pierre@reactos.org>
Fri, 31 Aug 2018 17:43:04 +0000 (19:43 +0200)
committerPierre Schweitzer <pierre@reactos.org>
Fri, 31 Aug 2018 17:48:32 +0000 (19:48 +0200)
commite806d16b065c5db27206d69f76a724ce593659bc
tree40a4d187b65ca89969098053e502ccaa308cd2b2
parent3f65f3a51d106ac046a092f9a851d6570fe21a87
[NTOSKRNL] Warn about unimplemented feature in CcMapData() (in all callers)

Currently, our CcMapData() behavior (same goes for CcPinRead()) is broken
and is the total opposite of what Windows kernel does. By default, the later
will let you map a view in memory without even attempting to bring its
data in memory. On first access, there will be a fault and memory will
be read from the hardware and brought to memory. If you want to force read
on mapping/pinning, you have to set the MAP_NO_READ (or PIN_NO_READ) flag
where kernel will fault on your behalf (hence the need for MAP_WAIT/PIN_WAIT).

On ReactOS, by default, on mapping (and thus pinning), we will force a view
read so that data is in memory. The way our cache memory is managed at the
moment seems not to allow to fault on invalid access and if we don't force
read, the memory content will just be zeroed.
So trying to match Windows behavior, by default, now CcMapData() will enforce
the MAP_NO_READ flag and warn once about this behavior change.
ntoskrnl/cc/pin.c