); //ref. vs. [In, Out], see: https://www.pinvoke.net/default.aspx/kernel32.globalmemorystatusex internal static (bool success, ulong total, ulong avail) GetTotalPhysAndAvailPhys() { var statEx = new MemoryStatusEx { dwLength = (uint)Marshal.SizeOf(typeof(MemoryStatusEx)) }; return(GlobalMemoryStatusEx(ref statEx) ? (true, statEx.ullTotalPhys, statEx.ullAvailPhys) : ((bool success, ulong total, ulong avail))(false, 0, 0)); }
private static extern bool GlobalMemoryStatusEx(ref MemoryStatusEx lpBuffer ); //ref. vs. [In, Out], see: https://www.pinvoke.net/default.aspx/kernel32.globalmemorystatusex