internal static unsafe MappedPortSafeHandle MapPortsSafe(out List <MappedPort> ports)
        {
            MappedPortSafeHandle portsHandle = new MappedPortSafeHandle();

            ports = new List <MappedPort>();
            if (MapPorts(out IntPtr handle, out MappedPort * items, out uint count))
            {
                for (int i = 0; i < count; i++)
                {
                    ports.Add(*(items + i));
                }

                portsHandle.SetHandle(handle);
                return(portsHandle);
            }

            portsHandle.SetHandleAsInvalid();
            return(portsHandle);
        }