Stanislav Motylkov
f18fb7da09
[NTOS:MM] Unrefernece some dereferences
2021-12-30 01:54:09 +03:00
Thomas Faber
0af3689c2e
[REACTOS] Fix traces with missing arguments.
...
Courtesy of VS Code Analysis warning C6064:
Missing integer argument to 'DbgPrint' that corresponds to conversion specifier 'N'.
2021-11-21 12:57:35 -05:00
Thomas Faber
a7b2703479
[NTOS] Fix broken SAL annotations on MmDereferenceSegmentWithLock.
2021-11-21 12:47:46 -05:00
Hermès Bélusca-Maïto
fe9ac14aa3
[NTOS] Move two CODE_SEG("INIT") to a better place.
2021-09-05 21:22:45 +02:00
Victor Perevertkin
6ef6fabfc5
[FREELDR][NTOS][HALPPC][SDK] Remove PowerPC code
...
Remove PowerPC-related code from the kernel, HAL, SDK and
Freeloader.
2021-08-15 15:35:51 +03:00
Jérôme Gardou
589016ddb9
[NTOS:MM] Implement MmFlushImageSection(MmFlushForWrite)
2021-08-07 09:34:58 +02:00
Jérôme Gardou
acf28dbc1e
[NTOS:MM] Fix the mess created by the "balancer thread"
...
When processing:
Make sure that the process is not terminating.
Make sure that the process WorkingSet is still valid
Protect accessing & writing to PTEs by acquiring the working set lock
CORE-17595 CORE-17642
2021-08-05 10:06:19 +02:00
Jérôme Gardou
676dc4b441
Revert "[NTOS:MM] Do proper checks & acquire proper locks when sweeping user pages"
...
This reverts commit 7c006df7e0
.
Note to self: This is what happens when you have too many branch and push the wrong one.
2021-08-04 23:57:39 +02:00
Jérôme Gardou
7c006df7e0
[NTOS:MM] Do proper checks & acquire proper locks when sweeping user pages
...
CORE-17595
2021-08-04 20:38:37 +02:00
Jérôme Gardou
789d7a7741
[NTOS:MM] When mapping pages for zeroing them, disable cache, enable write through
...
Idea from Thomas Faber
2021-08-04 17:48:39 +02:00
Jérôme Gardou
98e62b9bca
[NTOS:MM] In page zeroing thread, zero more than one page at a time.
2021-08-04 17:48:39 +02:00
Jérôme Gardou
e98de5ef1f
[NTOS:MM] Use KeZeroPages in zeroing thread
2021-08-04 17:48:39 +02:00
Jérôme Gardou
708dc6b7d6
[NTOS:MM] Do not zero-fill pages when not needed
2021-08-04 17:48:39 +02:00
Jérôme Gardou
34662e2f6f
[NTOS:MM] Copy the WorkingSet page when initializing "hand-built" process
...
CORE-17642
2021-08-04 11:49:38 +02:00
Jérôme Gardou
be6a6b806a
[NTOS:MM] Remove dead code
2021-08-03 10:57:12 +02:00
Jérôme Gardou
b0dfe20981
[NTOS:MM] Fix MiIsUserPte inline
2021-07-30 18:54:54 +02:00
Jérôme Gardou
ce65553eaa
[NTOS:MM] Annotate some functions with regards to MmPfnLock
...
Also fix MI_ASSERT_PFN_LOCK_HELD macro.
Now in debug builds, SpinLocks are always non-zero when held.
2021-07-27 15:36:55 +02:00
Jérôme Gardou
6150dc994a
[NTOS:MM] Always release PFN lock in MmDereferenceSegmentWithLock
...
All callers release it after calling it.
CORE-17698
2021-07-27 15:36:55 +02:00
Timo Kreuzer
47372e2ac9
[NTOS:MM] Fix MiSetSystemCodeProtection
...
CORE-16387 CORE-17638
Windows only makes the header RO for session space mapped drivers (win32k, dx and display drivers)
2021-07-11 21:43:07 +02:00
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