MiWaitForPageWriteCompletion

VOID __stdcall MiWaitForPageWriteCompletion(
        _MMPFN *Pfn1,
        _CONTROL_AREA *ControlArea,
        ULONG_PTR ProtoPoolPfn,
        UINT8 PageIrql){
  CHAR v8; 
  __int64 v9[2]; 
  __int64 v10; 
  __int64 v11[3]; 

  v9[1] = 8i64;
  v9[0] = 0i64;
  v10 = 393479i64;
  v11[1] = (__int64)v11;
  v11[0] = (__int64)v11;
  ExAcquireSpinLockExclusiveAtDpcLevel((INT64 *)&ControlArea->ControlAreaLock);
  v9[0] = (__int64)ControlArea->WaitList;
  ControlArea->WaitList = (_MI_CONTROL_AREA_WAIT_BLOCK *)v9;
  ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&ControlArea->ControlAreaLock);
  _InterlockedAnd64(&Pfn1->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
  MiUnlockProtoPoolPage(ProtoPoolPfn, PageIrql);
  KeWaitForGate((_KGATE *)&v10, WrVirtualMemory, v8);
}

Referenced by:

MiFlushSectionInternal
MmPurgeSection