MiWaitForPageWriteCompletion
VOID __fastcall MiWaitForPageWriteCompletion(
_MMPFN *Pfn1,
_CONTROL_AREA *ControlArea,
_MMPFN *ProtoPoolPfn,
UINT64 PageIrql){
char v5;
UINT64 v8;
__int64 v9[2];
__int64 PcValue;
__int64 v11[3];
v9[1] = 8i64;
v9[0] = 0i64;
PcValue = 393479i64;
v11[1] = (__int64)v11;
v5 = PageIrql;
v11[0] = (__int64)v11;
ExAcquireSpinLockExclusiveAtDpcLevel((INT64 *)ControlArea + 9);
v9[0] = *((_QWORD *)ControlArea + 10);
*((_QWORD *)ControlArea + 10) = v9;
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)ControlArea + 9);
_InterlockedAnd64((volatile signed __int64 *)Pfn1 + 3, 0x7FFFFFFFFFFFFFFFui64);
LOBYTE(v8) = v5;
MiUnlockProtoPoolPage(ProtoPoolPfn, v8);
KeWaitForGate(&PcValue, 18);
}Referenced by:
MiFlushSectionInternal
MmPurgeSection