MiDeleteExtentPfns

VOID __stdcall MiDeleteExtentPfns(VOID *Context){
  INT64 v1; 
  UINT8 *v2; 
  _BYTE *v4; 
  __int64 v5; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  if( Context )
  {
    v4 = KeAbPreAcquire(&qword_140C4C850, 0i64, 0i64);
    if( v4 )
      v4[26] |= 1u;
  }
  while( 1 )
  {
    MiPurgeBadFileOnlyPages((INT64)Context, v1, v2);
    while( qword_140C4C828 )
      MiRemovePhysicalMemory(0i64, 0i64, 0x32ui64);
    KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C50B28 + 503, &LockHandle);
    v5 = qword_140C4C828;
    if( !Context )
    {
      if( qword_140C4C828 || byte_140C4C871 == 1 )
      {
        MiWaitForExtentDeletions(&LockHandle);
        return;
      }
      goto LABEL_12;
    }
    if( !qword_140C4C828 )
      break;
LABEL_12:
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    __writecr8(LockHandle.OldIrql);
    if( !v5 )
      goto LABEL_15;
  }
  MiWakeExtentDeletionWaiters(&LockHandle);
LABEL_15:
  if( Context )
    KeAbPostRelease(&qword_140C4C850);
}

Referenced by:

MiAddPhysicalMemory