Using system; using system.runtime.interopservices;
/ * Typedef struct _MEMORYSTATUS {DWORD dwLength; DWORD dwMemoryLoad; DWORD dwTotalPhys; DWORD dwAvailPhys; DWORD dwTotalPageFile; DWORD dwAvailPageFile; DWORD dwTotalVirtual; DWORD dwAvailVirtual;} MEMORYSTATUS; * /
[StructLayout (LayoutKind.Sequential)] public class MemoryStatus {public int Length; public int MemoryLoad; public int TotalPhys; public int AvailPhys; public int TotalPageFile; public int AvailPageFile; public int TotalVirtual; public int AvailVirtual;}
Public class libwrap {[DLLIMPORT ("kernel32", entrypoint = "globalmemorystatus")] public static extern void getMemoryStatus ([in, out] memorystatus omemorystatus);}
Public class app {public static void main () {membratestatus omemorystatus = new memorystatus ();
Libwrap.getMemoryStatus (OMORYSTATUS);
Console.Writeline ("Length: {0}", OMORYSTATUS.LENGTH); Console.Writeline ("MemoryLoad: {0}", OMORYSTATUS.MEMORYLOAD; console.writeline ("Totalphys: {0}", OMORYSTATUS.TOTALPHYS) ; Console.WriteLine ( "AvailPhys: {0}", oMemoryStatus.AvailPhys); Console.WriteLine ( "TotalPageFile: {0}", oMemoryStatus.TotalPageFile); Console.WriteLine ( "AvailPageFile: {0}", oMemoryStatus.AvailPageFile Console.writeline ("Totalvirtual: {0}", OMEMORYSTATUS.TOTALTUAL); Console.Writeline ("Availvirtual: {0}", OMORYSTATUS.AVAILVIRTUAL);}}