private void RegisterProcess(ClientContext clientContext) { // Starting offset in 'data' int offset = sizeof(UInt32); // Remote processes are not supported by the memory watcher, // they can use the logging system however if (clientContext.IsRemote) { // Silent return, it's not an error return; } // All registering needs is a process Id UInt64 processId = BitConverter.ToUInt64(clientContext.Data, offset); ProcessData newProcessData = ProcessReader.OpenProcess((int)processId); if (newProcessData == null) { clientContext.Disconnect(); return; } clientContext.ProcessData = newProcessData; lock (attachedProcesses) attachedProcesses.Add(newProcessData); if (ProcessConnect != null) { ProcessConnect(newProcessData); } }