/// <summary>
        /// Initializes a new instance of <see cref="RemoteMemory"/> for a specified <see cref="Process"/>.
        /// </summary>
        /// <param name="proc"><see cref="Process"/> to open.</param>
        public RemoteMemory(Process proc)
        {
            if (!ProcessHelpers.ProcessExists(proc))
            {
                throw new ArgumentException("Process not valid");
            }

            NativeProcess = proc;
            ProcessHandle = ProcessHelpers.OpenProcess(ProcessAccessFlags.AllAccess, NativeProcess.Id);
            Is64          = ProcessHelpers.Is64Bit(NativeProcess);
            Both64        = Is64 && Self64;
        }