/[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 462 by william, Mon Jun 3 03:34:46 2013 UTC revision 463 by william, Mon Jun 3 04:34:39 2013 UTC
# Line 1376  namespace RomCheater.Docking Line 1376  namespace RomCheater.Docking
1376                              {                              {
1377                                  if (int_percent_done <= 100)                                  if (int_percent_done <= 100)
1378                                  {                                  {
1379                                      resultsprogress.Value = int_percent_done;                                      new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Reading Address: 0x{0:x8}", (CurrentIndex + MemoryRangeStart)));
                                     resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", (CurrentIndex + MemoryRangeStart));  
1380                                      Last_Whole_Percent_Done = int_percent_done;                                      Last_Whole_Percent_Done = int_percent_done;
1381                                  }                                  }
1382                                  if (SearchWorkerThread.CancellationPending) { e.Canceled = true; return; }                                  if (SearchWorkerThread.CancellationPending) { e.Canceled = true; return; }
# Line 1426  namespace RomCheater.Docking Line 1425  namespace RomCheater.Docking
1425                  SearchDataTypes sdt = SearchArgs.DataType;                  SearchDataTypes sdt = SearchArgs.DataType;
1426                  //byte[] buffered_mem = new byte[(MemoryRangeSize - MemoryRangeStart)]; // throws OutOfMemoryException if size is over 2G                  //byte[] buffered_mem = new byte[(MemoryRangeSize - MemoryRangeStart)]; // throws OutOfMemoryException if size is over 2G
1427                  logger.Debug.WriteLine(string.Format("Buffered Memory Size -> 0x{0:x8}", MemoryRangeSize - MemoryRangeStart));                  logger.Debug.WriteLine(string.Format("Buffered Memory Size -> 0x{0:x8}", MemoryRangeSize - MemoryRangeStart));
1428                  resultsprogress.Value = 0;                  new Action<int, string>(UpdateProgress).Invoke(0, string.Format("Search is Warming Up...Please Wait..."));
                 resultsprogress.Message = string.Format("Search is Warming Up...Please Wait...");  
   
1429                  Stopwatch provider_st = new Stopwatch();                  Stopwatch provider_st = new Stopwatch();
1430                  provider_st.Start();                  provider_st.Start();
1431                  using (GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))                  using (GenericMemoryProvider provider = new GenericMemoryProvider((IAcceptsProcessAndConfig)this))
# Line 1465  namespace RomCheater.Docking Line 1462  namespace RomCheater.Docking
1462                              guid[guid.Length-1]++; // increment the search guid by 1                              guid[guid.Length-1]++; // increment the search guid by 1
1463                              Guid new_SearchGuid = new Guid(guid);                              Guid new_SearchGuid = new Guid(guid);
1464                              provider.OpenProvider();                              provider.OpenProvider();
1465                              provider.OnBytesRead += new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);                              //provider.OnBytesRead += new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead);
1466                              foreach (var item in reader.GetResults(SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress)))                              foreach (var item in reader.GetResults(SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress)))
1467                              {                              {
1468                                  using (SearchResultWriter writer = new SearchResultWriter((int)(reader.ResultCount), new_SearchGuid))                                  using (SearchResultWriter writer = new SearchResultWriter((int)(reader.ResultCount), new_SearchGuid))
1469                                  {                                  {
1470                                      provider.ReadProcessMemoryAtOnce(item.Address, STEP_SIZE, writer);                                      //provider.ReadProcessMemoryAtOnce(item.Address, STEP_SIZE, writer);
1471                                        int bytesRead =0;
1472                                        byte[] data = new byte[STEP_SIZE];
1473                                        provider.ReadProcessMemory(item.Address, STEP_SIZE, out bytesRead, out data);                                    
1474                                        new BaseEventHandler<OnBytesReadEventArgs>(search_provider_OnBytesRead).Invoke(new OnBytesReadEventArgs(this, writer, data, item.Address, (uint)reader.ResultCount));
1475    
1476                                  }                                  }
1477                              }                              }
1478                              provider.CloseProvider();                              provider.CloseProvider();
# Line 1914  namespace RomCheater.Docking Line 1916  namespace RomCheater.Docking
1916                                                  //if (int_percent_done != Last_Whole_Percent_Done && i % 100000 == 0)                                                  //if (int_percent_done != Last_Whole_Percent_Done && i % 100000 == 0)
1917                                                  //{                                                  //{
1918                                                  if (int_percent_done <= 100)                                                  if (int_percent_done <= 100)
1919                                                  {                                                  {                                                    
                                                     resultsprogress.Value = int_percent_done;  
                                                     resultsprogress.Message = string.Format(" -> Reading Address: 0x{0:x8}", i + MemoryRangeStart);  
1920                                                      //Last_Whole_Percent_Done = int_percent_done;                                                      //Last_Whole_Percent_Done = int_percent_done;
1921                                                        new Action<int, string>(UpdateProgress).Invoke(int_percent_done, string.Format(" -> Reading Address: 0x{0:x8}", i + MemoryRangeStart));
1922                                                  }                                                  }
1923                                                  //}                                                  //}
1924                                                  //this.Refresh();                                                  //this.Refresh();
# Line 2070  namespace RomCheater.Docking Line 2071  namespace RomCheater.Docking
2071    
2072          private void SearchWorkerThread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)          private void SearchWorkerThread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
2073          {          {
2074              try { if ((bool)e.Result) { logger.Warn.WriteLine("Search operation was cancelled."); resultsprogress.Value = 0; resultsprogress.Message = ""; return; } }              try { if ((bool)e.Result) { logger.Warn.WriteLine("Search operation was cancelled.");
2075                    new Action<int, string>(UpdateProgress).Invoke(0, string.Empty);
2076                    return; }
2077                }
2078              catch (InvalidCastException) { }              catch (InvalidCastException) { }
2079              try              try
2080              {              {
# Line 2081  namespace RomCheater.Docking Line 2085  namespace RomCheater.Docking
2085              catch (InvalidCastException) { }              catch (InvalidCastException) { }
2086              catch (Exception ex) { throw ex; }              catch (Exception ex) { throw ex; }
2087    
2088              resultsprogress.Value = 100;              new Action<int, string>(UpdateProgress).Invoke(100, string.Empty);
2089              bool unsigned = SearchArgs.IsUnsignedDataType;              bool unsigned = SearchArgs.IsUnsignedDataType;
2090              using (SearchResultReader reader = new SearchResultReader(SearchGuid))              using (SearchResultReader reader = new SearchResultReader(SearchGuid))
2091              {              {
# Line 2141  namespace RomCheater.Docking Line 2145  namespace RomCheater.Docking
2145              btnSearch.Enabled = true;              btnSearch.Enabled = true;
2146              grpCompareType.Enabled = true;              grpCompareType.Enabled = true;
2147              grpCompareValue.Enabled = true;              grpCompareValue.Enabled = true;
2148              resultsprogress.Value = 0;              new Action<int, string>(UpdateProgress).Invoke(0, string.Empty);
             resultsprogress.Message = "";  
2149              grpDataType.Enabled = false;              grpDataType.Enabled = false;
2150              // resume process on reset, incase it was suspended              // resume process on reset, incase it was suspended
2151              ThreadControl.ResumeProcess(this.AcceptedProcess.Id);              ThreadControl.ResumeProcess(this.AcceptedProcess.Id);
# Line 2193  namespace RomCheater.Docking Line 2196  namespace RomCheater.Docking
2196              lstResults.Items.Clear();              lstResults.Items.Clear();
2197    
2198              if (lstResults.Items.Count > 0) { timer_update_results.Enabled = true; }              if (lstResults.Items.Count > 0) { timer_update_results.Enabled = true; }
2199              else { timer_update_results.Enabled = false; }              else { timer_update_results.Enabled = false; }            
2200                new Action<int, string>(UpdateProgress).Invoke(0, string.Empty);
   
             resultsprogress.Value = 0;  
2201              bool _is_unsigned = chkUnsigned.Checked;              bool _is_unsigned = chkUnsigned.Checked;
2202              SearchType search_type = new SearchType();              SearchType search_type = new SearchType();
2203              SearchDataTypes _data_type = new SearchDataTypes();              SearchDataTypes _data_type = new SearchDataTypes();

Legend:
Removed from v.462  
changed lines
  Added in v.463

  ViewVC Help
Powered by ViewVC 1.1.22