private static bool TryGetDelphiProcessName(AtomTableEntry atomTableEntry, string prefix, IDictionary <int, string> processNamesbyId, out string processName) { processName = null; if (atomTableEntry.Name.StartsWith(prefix)) { string processIdString = atomTableEntry.Name.Substring(atomTableEntry.Name.Length - IdLength, IdLength); int processId; if (int.TryParse(processIdString, NumberStyles.HexNumber, NumberFormatInfo.InvariantInfo, out processId)) { processNamesbyId.TryGetValue(processId, out processName); } } return(processName != null); }
private void GetAtomTableEntries(IList <AtomTableEntry> atomTableEntries, Func <int, StringBuilder, int, int> getAtomTableEntry) { atomTableEntries.Clear(); var buffer = new StringBuilder(1024); for (int index = 0xC000; index <= 0xFFFF; index++) { int bufferLength = getAtomTableEntry(index, buffer, buffer.Capacity); if (bufferLength > 0) { var atomTableEntry = new AtomTableEntry { Index = index.ToString("x").ToUpper(), Name = buffer.ToString(0, bufferLength) }; atomTableEntries.Add(atomTableEntry); } } }