/// <summary> /// Creates a new GPU memory manager. /// </summary> /// <param name="pid">ID of the process that owns the memory manager</param> /// <returns>The memory manager</returns> /// <exception cref="ArgumentException">Thrown when <paramref name="pid"/> is invalid</exception> public MemoryManager CreateMemoryManager(long pid) { if (!PhysicalMemoryRegistry.TryGetValue(pid, out var physicalMemory)) { throw new ArgumentException("The PID is invalid or the process was not registered", nameof(pid)); } return(new MemoryManager(physicalMemory)); }