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); }