private void LoadProfileModules() { int[] counters = _profileHandle.Collect(); Dictionary <IntPtr, int> modules = new Dictionary <IntPtr, int>(); for (int i = 0; i < counters.Length; i++) { if (counters[i] != 0) { IntPtr realAddress = this.GetAddress(i); IntPtr baseAddress; _kernelSymbols.GetModuleFromAddress(realAddress, out baseAddress); if (!modules.ContainsKey(baseAddress)) { modules.Add(baseAddress, 0); } modules[baseAddress]++; } } listModules.Items.Clear(); foreach (var moduleBase in modules.Keys) { listModules.Items.Add(new ListViewItem( new string[] { _kernelModules[moduleBase].BaseName, modules[moduleBase].ToString("N0"), _kernelModules[moduleBase].FileName }) { Tag = moduleBase } ); } }