Jérôme Gardou
91587a432b
[NTOS:MM] Fix another instance of reentrant spinlock acquisition
2021-06-29 11:49:20 +02:00
Jérôme Gardou
376fbc5242
[NTOS:MM] Check result of RtlCreateUnicodeString in MmGetFileNameForAddress
...
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou
59cddd15e2
[NTOS:MM] Implement MmFlushImageSection(MmFlushForDelete)
...
CORE-17544
2021-06-25 10:28:51 +02:00
Jérôme Gardou
b3e9c89725
[NTOS:MM] Simplify refcounting when adding/deleting a page in a shared segment
...
CORE-17544
2021-06-25 10:28:51 +02:00
Jérôme Gardou
bec42b6530
[NTOS:MM] Do not call ExAllocatePool* with PFN lock acquired
...
Unsurprisingly, it actually might acquire it
2021-06-25 10:28:51 +02:00
Jérôme Gardou
c6e9fea844
[NTOSKRNL] Deduplicate some symbols
2021-06-24 18:48:31 +02:00
Jérôme Gardou
1c5ce8d11c
[NTOS:MM] Fix-up call site of traced PFNs when serving a page fault
2021-06-24 18:48:31 +02:00
Jérôme Gardou
146337cc50
[NTOS:MM] Save caller address when tracing PFNs
2021-06-24 18:48:31 +02:00
Jérôme Gardou
c8ce0cc434
[NTOS:MM] Fix one occurrence of MiDeletePte instead of MiDeletePde
2021-06-22 12:05:20 +02:00
Serge Gautherie
eab2bb4b20
[NTOS:MM] MmFlushSegment(): Fix Iosb annotation
...
Addendum to 90c6a65
.
2021-06-22 10:33:45 +02:00
Timo Kreuzer
396167bc7e
[NTOS:MM] Improve an ASSERT
2021-06-19 12:17:18 +02:00
Timo Kreuzer
33949028fb
[NTOS:MM] Fix PFN lock usage
2021-06-19 12:17:18 +02:00
Victor Perevertkin
3f601122bc
[NTOS:MM] Fix placing entries into MmNonPagedPoolFreeListHead
...
When freeing pages, free page entries with pages num == 3 were
incorrectly treated as entries with pages num >= 4 and thus
their re-insertion was not triggered. That lead to non paged pool
fragmentation (can be triggered by kmtest:ExPools, for example)
Also, altered the index acquisition code for MmNonPagedPoolFreeList
entries so it looks more clear
2021-06-16 12:14:27 +02:00
Victor Perevertkin
34593d933b
[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces
2021-06-11 15:33:08 +03:00
Jérôme Gardou
afc27ab1aa
[NTOS:MM] Handle PT references for page table faults in MmAccessFault
...
Idea from Timo Kreuzer
2021-06-09 11:27:18 +02:00
Jérôme Gardou
c7e09061ca
[NTOS:MM] Get rid of MiQueryPageTableReferences
2021-06-09 11:27:18 +02:00
Timo Kreuzer
6a2eeaa5ae
[NTOS] Implement MiIsPageTablePresent as a replacement for the abused MiQueryPageTableReferences
2021-06-09 11:27:18 +02:00
Jérôme Gardou
678923bf4b
[NTOS:MM] In MiMakePdeExistAndValid, do not overly check PDE validity
...
It's "okay" to not #ifdef, but it's useless and confusing.
2021-06-09 11:27:18 +02:00
Jérôme Gardou
c8fb3f7514
[NTOS:MM] Implement proper refcounting of page tables on amd64
...
CORE-17552
2021-06-09 11:27:18 +02:00
Jérôme Gardou
3aa346c21f
[NTOS:MM] Make MiIsEntireRangeCommitted 64-bits aware
2021-06-09 11:27:18 +02:00
Jérôme Gardou
8bfba59b3e
[NTOS:MM] Add some DPRINTs when incrementing or decrementing PFN share count
2021-06-09 11:27:18 +02:00
Jérôme Gardou
a80ae8f2ea
[NTOS:MM] Make MiCalculatePageCommitment 64-bits aware
2021-06-09 11:27:18 +02:00
Jérôme Gardou
ed1038ff9c
[NTOS:MM] Properly initialize initial process address space on amd64
...
By applying the same kludge on the relevant MMPFNs than on x86
2021-06-09 11:27:18 +02:00
Jérôme Gardou
f9ea58dc97
[NTOS:MM] Unconditionally delete the PFN in MiDeletePte when PTE is in transition
...
When we will have a modified page writer, it will have to know if the written
page is stale when being done, and act accordingly.
CORE-8552
2021-06-09 11:27:18 +02:00
Jérôme Gardou
82dd1afe33
[NTOS:MM] Remove some dead code from legacy Mm
2021-06-09 11:27:18 +02:00
Jérôme Gardou
a5ea259b28
[NTOS:MM] Fix remnants of CORE-17587
2021-06-07 17:04:18 +02:00
Jérôme Gardou
4ddc66f224
[NTOS:MM] Make MI_MAKE_HARDWARE_PTE_KERNEL actually respect the protection it is given
...
This one would set a page as writable & dirty even if MM_READONLY was passed
CORE-17587
2021-06-07 17:04:18 +02:00
Hervé Poussineau
831cad3410
[NTOS:MM] Remove wrong cleaning of PDEs at session cleanup
2021-05-25 21:13:32 +02:00
Hervé Poussineau
98882fb089
[NTOS:MM] Finish implementation of MmSessionDelete
2021-05-25 18:48:16 +02:00
Hervé Poussineau
eac0afc6fe
[NTOS:MM] MiDereferenceSession: return as soon as session is destroyed
...
This leads to some simplifications in the following code.
2021-05-25 18:48:16 +02:00
Jérôme Gardou
7eff8a36d5
Revert "[NTOS:MM] Add private pages to process working sets"
...
This is so full of bugs, I don't know what to say.
This reverts commit 374fef2d59
.
2021-05-20 00:19:43 +02:00
Jérôme Gardou
969e60a06d
[NTOS:MM] Move software PTE specific check after it's been tested for being one
...
Caught by The_DarkFire, only soul on earth actually *running* our SMP kernel
2021-05-19 23:56:21 +02:00
Jérôme Gardou
7d0d14965e
[NTOS:MM] Do not map Process Working Set List in kernel space
...
This is not needed anymore and causes havoc on amd64
2021-05-19 23:17:27 +02:00
Jérôme Gardou
826aec48de
[NTOS:MM] Fix build on whatever MSVC version triggered this
...
There is no real need to put static or extern "C" function in a special namespace anyway
2021-05-19 00:12:05 +02:00
Jérôme Gardou
374fef2d59
[NTOS:MM] Add private pages to process working sets
2021-05-18 23:42:19 +02:00
Jérôme Gardou
6a5fd8f487
[NTOS:MM] Relax requirements with regards to PFN lock when adding & removing entries in Working Sets
...
Once a page is used, holding the WS lock is enough until you want to free it.
2021-05-18 23:42:19 +02:00
Jérôme Gardou
3adf450867
[REACTOS] Addendum to 5c7ce4475e
- Fix MSVC 2015 build
...
Put data into PAGEDATA or INITDATA sections
Keep section declaration for prototypes
CORE-17540
2021-05-12 11:04:29 +02:00
Jérôme Gardou
f421bccbcc
[NTOS:MM] First shot for Working Set list support
...
- Initialize
- Add private page (no shared page support yet)
- Remove pages
- Trim
Yes, this is C++ in the kernel.
2021-05-04 12:02:41 +02:00
Jérôme Gardou
31afbf1054
[NTOS] Make some internal headers C++ aware
2021-05-04 12:02:41 +02:00
Jérôme Gardou
8df48f9876
[NTOS:MM] Introduce MI_IS_PROCESS_WORKING_SET helper function
2021-05-04 12:02:41 +02:00
Jérôme Gardou
6b2f05f9dd
[NTOS:MM] Implement turning working set shared lock to exclusive
2021-05-04 12:02:41 +02:00
Jérôme Gardou
cd085ac12f
[NTOS/MM] Implement Mi(Un)lockWorkingSetShared
...
Also fix checks when exclusively locking
2021-05-04 12:02:41 +02:00
Serge Gautherie
710acab83d
[NTOS:MM] MiSetPagingOfDriver(): Add an explicit #if around unreachable code
2021-04-26 10:27:20 +02:00
Jérôme Gardou
c48580135d
[NTOS:MM] Fix a bit page fault handler with regard to COW sections
2021-04-08 15:40:37 +02:00
Jérôme Gardou
a34d9bcfb6
[NTOS:MM] Share "page.c" between i386 & amd64 builds
2021-04-08 15:40:37 +02:00
Jérôme Gardou
7ea8312617
[NTOS:MM] Split MmCreateProcessAddressSpace in two parts
...
Generic one and arch-specific one.
Properly fail if we are out of resources.
Restore a lost assert.
2021-04-08 15:40:37 +02:00
Jérôme Gardou
6c027d28f9
[NTOS:MM] Properly track system process hyper space PDE page
2021-04-08 15:40:37 +02:00
Jérôme Gardou
370982aa1d
[NTOS:MM] Make i386/page.c usable for all x86 variants
...
This includes PAE & amd64
2021-04-08 15:40:37 +02:00
Jérôme Gardou
b10d92a16c
[NTOS:MM] Use MI_MAKE_HARDWARE_PTE & friends in legacy Mm
2021-04-08 15:40:37 +02:00
Jérôme Gardou
43378411fb
[NTOS:MM] Rewrite arch-specifics of the legacy Mm
...
Properly handle PDE refcounting
Clean-up of the internal API
Enforce attaching to the process when modifying its memory layout, instead of
making circonvoluted mappings which always end up being broken.
2021-04-08 15:40:37 +02:00