mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 08:03:03 +00:00
[NTOS:MM] Increment Prcb->MmDemandZeroCount while holding the Pfn lock
This commit is contained in:
parent
1240ed9e18
commit
2eff510074
1 changed files with 7 additions and 7 deletions
|
@ -669,6 +669,9 @@ MiResolveDemandZeroFault(IN PVOID Address,
|
||||||
/* Initialize it */
|
/* Initialize it */
|
||||||
MiInitializePfn(PageFrameNumber, PointerPte, TRUE);
|
MiInitializePfn(PageFrameNumber, PointerPte, TRUE);
|
||||||
|
|
||||||
|
/* Increment demand zero faults */
|
||||||
|
KeGetCurrentPrcb()->MmDemandZeroCount++;
|
||||||
|
|
||||||
/* Do we have the lock? */
|
/* Do we have the lock? */
|
||||||
if (HaveLock)
|
if (HaveLock)
|
||||||
{
|
{
|
||||||
|
@ -679,9 +682,6 @@ MiResolveDemandZeroFault(IN PVOID Address,
|
||||||
if (Process > HYDRA_PROCESS) Process->NumberOfPrivatePages++;
|
if (Process > HYDRA_PROCESS) Process->NumberOfPrivatePages++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Increment demand zero faults */
|
|
||||||
InterlockedIncrement(&KeGetCurrentPrcb()->MmDemandZeroCount);
|
|
||||||
|
|
||||||
/* Zero the page if need be */
|
/* Zero the page if need be */
|
||||||
if (NeedZero) MiZeroPfn(PageFrameNumber);
|
if (NeedZero) MiZeroPfn(PageFrameNumber);
|
||||||
|
|
||||||
|
@ -2297,14 +2297,14 @@ UserFault:
|
||||||
/* Initialize the PFN entry now */
|
/* Initialize the PFN entry now */
|
||||||
MiInitializePfn(PageFrameIndex, PointerPte, 1);
|
MiInitializePfn(PageFrameIndex, PointerPte, 1);
|
||||||
|
|
||||||
/* And we're done with the lock */
|
|
||||||
MiReleasePfnLock(OldIrql);
|
|
||||||
|
|
||||||
/* Increment the count of pages in the process */
|
/* Increment the count of pages in the process */
|
||||||
CurrentProcess->NumberOfPrivatePages++;
|
CurrentProcess->NumberOfPrivatePages++;
|
||||||
|
|
||||||
/* One more demand-zero fault */
|
/* One more demand-zero fault */
|
||||||
InterlockedIncrement(&KeGetCurrentPrcb()->MmDemandZeroCount);
|
KeGetCurrentPrcb()->MmDemandZeroCount++;
|
||||||
|
|
||||||
|
/* And we're done with the lock */
|
||||||
|
MiReleasePfnLock(OldIrql);
|
||||||
|
|
||||||
/* Fault on user PDE, or fault on user PTE? */
|
/* Fault on user PDE, or fault on user PTE? */
|
||||||
if (PointerPte <= MiHighestUserPte)
|
if (PointerPte <= MiHighestUserPte)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue