[return: MarshalAs(UnmanagedType.Bool)]
[DllImport(kernel32, CharSet = CharSet.Auto, SetLastError = true)]
static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX lpBuffer);
None.
Please add some!
private void DisplayMemory()
{
string[] Drives = System.IO.Directory.GetLogicalDrives();
long tm = System.GC.GetTotalMemory(true);
UInt64 UserAvailable=0,Capacity=0,Available=0;
if(Drives!=null)
{
int retval = GetDiskFreeSpaceExA(Drives[0],ref UserAvailable,ref Capacity,ref Available);
this.lblDiskFree.Text = Available.ToString();
this.lblDiskTotal.Text = Capacity.ToString();
}
MEMORYSTATUSEX msex=new MEMORYSTATUSEX();
int retval2 = GlobalMemoryStatusEx(msex);
this.lblMemoryFree.Text = msex.ullAvailPhys.ToString();
this.lblMemoryTotal.Text = msex.ullTotalPhys.ToString();
}
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
private 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(NativeMethods.MEMORYSTATUSEX));
}
}
[DllImport("kernel32.dll")]
private static extern int GetDiskFreeSpaceExA( string lpDirectoryName,
ref System.UInt64 lpFreeBytesAvailable,
ref System.UInt64 lpTotalNumberOfBytes,
ref System.UInt64 lpTotalNumberOfFreeBytes
);
[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport(kernel32, CharSet = CharSet.Auto, SetLastError = true)]
static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX lpBuffer);
Do you know one? Please contribute it!