MiIncreaseCommitLimits

UINT64 __stdcall MiIncreaseCommitLimits(
        _MI_PARTITION *Partition,
        UINT64 InitialIncrement,
        UINT64 MaximumIncrement,
        UINT64 ConsumeInitialIncrement,
        PVOID NewPageFile){
  int v7; 
  unsigned int v8; 
  __int64 v10; 
  UINT64 v12; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  memset(&LockHandle, 0, sizeof(LockHandle));
  v7 = ConsumeInitialIncrement;
  v8 = 1;
  KeAcquireInStackQueuedSpinLock((UINT64 *)Partition + 781, &LockHandle);
  if( *((_QWORD *)Partition + 777) + MaximumIncrement < *((_QWORD *)Partition + 777) )
  {
    v8 = 0;
  }
  else
  {
    if( InitialIncrement )
    {
      if( v7 )
      {
        _InterlockedExchangeAdd64((volatile signed __int64 *)Partition + 933, InitialIncrement);
      }
      else if( *((_QWORD *)Partition + 783) )
      {
        v12 = MiRestockOverCommit((INT64)Partition, InitialIncrement);
        if( InitialIncrement != v12 )
          _InterlockedExchangeAdd64((volatile signed __int64 *)Partition + 933, InitialIncrement - v12);
      }
      *((_QWORD *)Partition + 949) += InitialIncrement;
    }
    if( MaximumIncrement )
      *((_QWORD *)Partition + 777) += MaximumIncrement;
    MiComputeCommitThresholds(Partition);
    if( NewPageFile )
    {
      MiUpdatePageFileList((__int64)NewPageFile, 1);
      _InterlockedExchangeAdd64((volatile signed __int64 *)Partition + 933, 2ui64);
      v10 = *((unsigned int *)Partition + 1734);
      *((_QWORD *)Partition + v10 + 868) = NewPageFile;
      *((_DWORD *)Partition + 1734) = v10 + 1;
    }
  }
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
  return v8;
}

Referenced by:

MiCreatePagingFile
MiExtendPagingFiles
MiFreePartitionPhysicalPages
MiInitializeCommitment
MiInsertPageFileInList
MiInsertPartitionPages
MiMapNewPfns