/[RomCheater]/trunk/RomCheater/Docking/FloatingMemorySearcher.cs
ViewVC logotype

Diff of /trunk/RomCheater/Docking/FloatingMemorySearcher.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 354 by william, Sat Jun 9 21:46:37 2012 UTC revision 355 by william, Sat Jun 9 21:52:44 2012 UTC
# Line 994  namespace RomCheater.Docking Line 994  namespace RomCheater.Docking
994              e.Result = st;              e.Result = st;
995              //List<ResultType<object>> tmp_Results = new List<ResultType<object>>();              //List<ResultType<object>> tmp_Results = new List<ResultType<object>>();
996              List<ResultType<object>> second_tmp_Results = new List<ResultType<object>>();              List<ResultType<object>> second_tmp_Results = new List<ResultType<object>>();
997              const double _UPDATE_DELAY = 1024.0;              //const double _UPDATE_DELAY = 1024.0;
998              int UPDATE_DELAY = (int)(_UPDATE_DELAY / 1000);              ////int UPDATE_DELAY = (int)(_UPDATE_DELAY / 1000);
999                //int UPDATE_DELAY = 1;
1000              //tmp_Results = SearchArgs.Results.GetRange(0,SearchArgs.Results.Count);              //tmp_Results = SearchArgs.Results.GetRange(0,SearchArgs.Results.Count);
1001              //SearchArgs.Results = null;              //SearchArgs.Results = null;
1002              //SearchArgs.Results.Clear();              //SearchArgs.Results.Clear();
# Line 1008  namespace RomCheater.Docking Line 1009  namespace RomCheater.Docking
1009              int bytes_read = 0;              int bytes_read = 0;
1010    
1011              byte[] buffered_mem = new byte[MemoryRangeSize]; // throws OutOfMemoryException if size is over 2G              byte[] buffered_mem = new byte[MemoryRangeSize]; // throws OutOfMemoryException if size is over 2G
1012                provider.ReadProcessMemoryAtOnce(MemoryRangeStart, MemoryRangeSize, out bytes_read, out buffered_mem);        
   
             provider.ReadProcessMemoryAtOnce(MemoryRangeStart, MemoryRangeSize, out bytes_read, out buffered_mem);  
             //uint buffer_size = 1024;  
             //List<byte> buffer_bytes = new List<byte>();  
             //for (uint i = (uint)MemoryRangeStart; i < MemoryRangeSize; )  
             //{  
             //    byte[] _buffer = new byte[buffer_size];  
             //    provider.ReadProcessMemory((int)i, buffer_size, out bytes_read, out _buffer);  
             //    foreach (byte b in _buffer)  
             //    {  
             //        buffer_bytes.Add(b);  
             //    }  
             //    i += buffer_size;  
             //}  
             //buffered_mem = buffer_bytes.ToArray();  
             
1013              provider.CloseProvider();              provider.CloseProvider();
1014                
1015              if (buffered_mem.Length == 0) { logger.Warn.WriteLine("Buffered Memory is Zero Length."); return; }              if (buffered_mem.Length == 0) { logger.Warn.WriteLine("Buffered Memory is Zero Length."); return; }
# Line 1061  namespace RomCheater.Docking Line 1046  namespace RomCheater.Docking
1046                      SearchArgs.Results.Add(_tmp_result);                      SearchArgs.Results.Add(_tmp_result);
1047                      double double_percent_done = 100.0 * (double)((double)i / (double)r_ms.BaseStream.Length);                      double double_percent_done = 100.0 * (double)((double)i / (double)r_ms.BaseStream.Length);
1048                      int int_percent_done = (int)double_percent_done;                      int int_percent_done = (int)double_percent_done;
1049                      if ((i / UPDATE_DELAY) == (int)(i / UPDATE_DELAY) && int_percent_done != Last_Whole_Percent_Done)                      //if ((i / UPDATE_DELAY) == (int)(i / UPDATE_DELAY) && int_percent_done != Last_Whole_Percent_Done)
1050                      {                      //{
1051                          resultsprogress.Value = int_percent_done;                      resultsprogress.Value = int_percent_done;
1052                          resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i);                      resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i);
1053                          Last_Whole_Percent_Done = int_percent_done;                      Last_Whole_Percent_Done = int_percent_done;
1054                          Application.DoEvents();                      Application.DoEvents();
1055                      }                      //}
1056    
1057                      if (SearchWorkerThread.CancellationPending == true)                      if (SearchWorkerThread.CancellationPending == true)
1058                      {                      {
# Line 1324  namespace RomCheater.Docking Line 1309  namespace RomCheater.Docking
1309    
1310                          double double_percent_done = 100.0 * (double)((double)i / (double)SearchArgs.Results.Count);                          double double_percent_done = 100.0 * (double)((double)i / (double)SearchArgs.Results.Count);
1311                          int int_percent_done = (int)double_percent_done;                          int int_percent_done = (int)double_percent_done;
1312                          if ((i / UPDATE_DELAY) == (int)(i / UPDATE_DELAY) && int_percent_done != Last_Whole_Percent_Done)                          //if ((i / UPDATE_DELAY) == (int)(i / UPDATE_DELAY) && int_percent_done != Last_Whole_Percent_Done)
1313                          {                          //{
1314                              resultsprogress.Value = int_percent_done;                          resultsprogress.Value = int_percent_done;
1315                              resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i);                          resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i);
1316                              Last_Whole_Percent_Done = int_percent_done;                          Last_Whole_Percent_Done = int_percent_done;
1317                              Application.DoEvents();                          Application.DoEvents();
1318                          }                          //}
1319    
1320                      }                      }
1321                      #endregion                      #endregion
# Line 1372  namespace RomCheater.Docking Line 1357  namespace RomCheater.Docking
1357                          }                          }
1358                          double double_percent_done = 100.0 * (double)((double)i / (double)SearchArgs.Results.Count);                          double double_percent_done = 100.0 * (double)((double)i / (double)SearchArgs.Results.Count);
1359                          int int_percent_done = (int)double_percent_done;                          int int_percent_done = (int)double_percent_done;
1360                          if ((i / UPDATE_DELAY) == (int)(i / UPDATE_DELAY) && int_percent_done != Last_Whole_Percent_Done)                          //if ((i / UPDATE_DELAY) == (int)(i / UPDATE_DELAY) && int_percent_done != Last_Whole_Percent_Done)
1361                          {                          //{
1362                              resultsprogress.Value = int_percent_done;                          resultsprogress.Value = int_percent_done;
1363                              resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i);                          resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i);
1364                              Last_Whole_Percent_Done = int_percent_done;                          Last_Whole_Percent_Done = int_percent_done;
1365                              Application.DoEvents();                          Application.DoEvents();
1366                          }                          //}
1367                      }                      }
1368                  }                  }
1369  #endif  #endif

Legend:
Removed from v.354  
changed lines
  Added in v.355

  ViewVC Help
Powered by ViewVC 1.1.22