MiWaitForAvailablePages

NTSTATUS __fastcall MiWaitForAvailablePages(__int64 a1, _LARGE_INTEGER *a2, INT64 a3){
  NTSTATUS result; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)(a1 + 4928), &LockHandle);
  if( *(_QWORD *)(a1 + 7104) < 0x420ui64 )
  {
    KeResetEvent((_KEVENT *)(a1 + 5000));
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    __writecr8(LockHandle.OldIrql);
    return KeWaitForSingleObject(a1 + 5000, 8, 0, 0, (INT64)a2);
  }
  else
  {
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    result = KiIrqlFlags;
    __writecr8(LockHandle.OldIrql);
  }
  return result;
}

Referenced by:

MiDelayFaultingThread