Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Win32Memory
- {
- [return: MarshalAs(UnmanagedType.Bool)]
- [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX lpBuffer);
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
- class MEMORYSTATUSEX
- {
- public uint dwLength;
- public uint dwMemoryLoad;
- public ulong ullTotalPhys;
- public ulong ullAvailPhys;
- public ulong ullTotalPageFile;
- public ulong ullAvailPageFile;
- public ulong ullTotalVirtual;
- public ulong ullAvailVirtual;
- public ulong ullAvailExtendedVirtual;
- public MEMORYSTATUSEX()
- {
- this.dwLength = (uint)Marshal.SizeOf(typeof(MEMORYSTATUSEX));
- }
- }
- public static Win32MemoryInfo GetTotalMemory()
- {
- MEMORYSTATUSEX memStatus = new MEMORYSTATUSEX();
- if (GlobalMemoryStatusEx(memStatus))
- {
- Win32MemoryInfo minfo = new Win32MemoryInfo();
- minfo.TotalPhys = (long)memStatus.ullTotalPhys;
- minfo.AvailPhys = (long)memStatus.ullAvailPhys;
- minfo.TotalPageFile = (long)memStatus.ullTotalPageFile;
- minfo.AvailPageFile = (long)memStatus.ullAvailPageFile;
- minfo.TotalVirtual = (long)memStatus.ullTotalVirtual;
- minfo.AvailVirtual = (long)memStatus.ullAvailVirtual;
- minfo.AvailExtendedVirtual = (long)memStatus.ullAvailExtendedVirtual;
- return minfo;
- }
- return null;
- }
- public class Win32MemoryInfo
- {
- public long TotalPhys { get; set; }
- public long AvailPhys { get; set; }
- public long TotalPageFile { get; set; }
- public long AvailPageFile { get; set; }
- public long TotalVirtual { get; set; }
- public long AvailVirtual { get; set; }
- public long AvailExtendedVirtual { get; set; }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment