private void ListHandles(int processId) { try { this.listView1.BeginUpdate(); this.listView1.Items.Clear(); using (WindowsHandleInfo whi = new WindowsHandleInfo()) { for (int i = 0; i < whi.HandleCount; i++) { _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX she = whi[i]; if (she.OwnerPid != processId) { continue; } string objName = she.GetName(out string handleTypeName); if (string.IsNullOrEmpty(handleTypeName) == true) { continue; } if (string.IsNullOrEmpty(objName) == true) { continue; } ListViewItem lvItem = this.listView1.Items.Add(handleTypeName); lvItem.SubItems.Add(objName); /* * if (File.Exists(objName)) * { * ListViewItem lvItem = this.listView1.Items.Add("File"); * lvItem.SubItems.Add(objName); * } * else if (Directory.Exists(objName)) * { * ListViewItem lvItem = this.listView1.Items.Add("Directory"); * lvItem.SubItems.Add(objName); * } */ } } } catch (Exception e) { Trace.WriteLine(e.ToString()); } this.listView1.EndUpdate(); this.Text = $"# of file handles: {this.listView1.Items.Count}"; }
public override bool Equals(object obj) { _SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX target = (_SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX)obj; if (target.ObjectPointer == this.ObjectPointer) { return(true); } return(false); }