MiCanFlushMakeProgress

NTSTATUS __stdcall MiCanFlushMakeProgress(_MI_PARTITION *Partition, UINT64 PagefileOnly){
  volatile unsigned int NumberOfPagingFiles; 
  int v3; 
  __int64 i; 
  __int64 v5; 
  __int16 v6; 

  if( !(_DWORD)PagefileOnly && Partition->Vp.ModifiedPageListHead.Total != Partition->Vp.TotalPagesForPagingFile )
    return 1;
  NumberOfPagingFiles = Partition->Vp.NumberOfPagingFiles;
  if( NumberOfPagingFiles )
  {
    v3 = 0;
    for( i = 6944i64; ; i += 8i64 )
    {
      v5 = *(_QWORD *)((char *)&Partition->Core.PartitionId + i);
      if( *(_QWORD *)(v5 + 24) )
      {
        v6 = *(_WORD *)(v5 + 204);
        if( (v6 & 0x40) == 0 )
        {
          if( (v6 & 0x10) == 0 )
            break;
          Partition = *(_MI_PARTITION **)(v5 + 248);
          if( Partition->PageLists.ModifiedPageListByReservation[v6 & 0xF].Total )
            break;
        }
      }
      if( ++v3 >= NumberOfPagingFiles )
        return 0;
    }
    return 1;
  }
  return 0;
}

Referenced by:

MiFlushAllHintedStorePages
MiFlushAllPagesWorker