MiIncreaseCommitLimits

NTSTATUS __stdcall MiIncreaseCommitLimits(
        _MI_PARTITION *Partition,
        UINT64 InitialIncrement,
        UINT64 MaximumIncrement,
        UINT64 ConsumeInitialIncrement,
        VOID *NewPageFile){
  int v7; 
  NTSTATUS v8; 
  __int64 NumberOfPagingFiles; 
  __int64 v12; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  v7 = ConsumeInitialIncrement;
  v8 = 1;
  KeAcquireInStackQueuedSpinLock(&Partition->Commit.EventLock, &LockHandle);
  if( Partition->Commit.TotalCommitLimitMaximum + MaximumIncrement < Partition->Commit.TotalCommitLimitMaximum )
  {
    v8 = 0;
  }
  else
  {
    if( InitialIncrement )
    {
      if( v7 )
      {
        _InterlockedExchangeAdd64((volatile signed __int64 *)&Partition->Vp.TotalCommittedPages, InitialIncrement);
      }
      else if( Partition->Commit.OverCommit )
      {
        LODWORD(v12) = MiRestockOverCommit((INT64)Partition, InitialIncrement);
        if( InitialIncrement != v12 )
          _InterlockedExchangeAdd64(
            (volatile signed __int64 *)&Partition->Vp.TotalCommittedPages,
            InitialIncrement - v12);
      }
      Partition->Vp.TotalCommitLimit += InitialIncrement;
    }
    if( MaximumIncrement )
      Partition->Commit.TotalCommitLimitMaximum += MaximumIncrement;
    MiComputeCommitThresholds(Partition);
    if( NewPageFile )
    {
      MiUpdatePageFileList((_MMPAGING_FILE *)NewPageFile, 1ui64);
      _InterlockedExchangeAdd64((volatile signed __int64 *)&Partition->Vp.TotalCommittedPages, 2ui64);
      NumberOfPagingFiles = Partition->Vp.NumberOfPagingFiles;
      Partition->Vp.PagingFile[NumberOfPagingFiles] = (_MMPAGING_FILE *)NewPageFile;
      Partition->Vp.NumberOfPagingFiles = NumberOfPagingFiles + 1;
    }
  }
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
  return v8;
}

Referenced by:

MiCreatePagingFile
MiExtendPagingFiles
MiFreePartitionPhysicalPages
MiInitializeCommitment
MiInsertPageFileInList
MiInsertPartitionPages
MiMapNewPfns