How to: Get Device Memory

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

To get the available memory for a device, use platform invoke to call the native GlobalMemoryStatus and GetSystemMemoryDivision functions.

This code example defines the following:

  • Platform invoke declarations for the native methods in Windows Embedded CE.

  • A structure to pass to and receive from the native methods.

  • A managed method named ShowMemory, which displays the available memory.

Public Structure MEMORYSTATUS
    Public dwLength As UInt32
    Public dwMemoryLoad As UInt32
    Public dwTotalPhys As UInt32
    Public dwAvailPhys As UInt32
    Public dwTotalPageFile As UInt32
    Public dwAvailPageFile As UInt32
    Public dwTotalVirtual As UInt32
    Public dwAvailVirtual As UInt32
End Structure 

Public Declare Function GlobalMemoryStatus Lib "CoreDll.Dll" _
    (ByRef ms As MEMORYSTATUS) As Integer

Public Declare Function GetSystemMemoryDivision Lib "CoreDll.Dll" _
    (ByRef lpdwStorePages As UInt32, _
    ByRef ldpwRamPages As UInt32, _
    ByRef ldpwPageSize As UInt32) As Integer

Public Shared Sub ShowMemory()
    Dim storePages As UInt32
    Dim ramPages As UInt32
    Dim pageSize As UInt32
    Dim res As Integer = _
        GetSystemMemoryDivision(storePages, ramPages, pageSize)

    ' Call the native GlobalMemoryStatus method
    ' with the defined structure.
    Dim memStatus As New MEMORYSTATUS

  ' Use a StringBuilder for the message box string.
    Dim MemoryInfo As New StringBuilder
    MemoryInfo.Append("Memory Load: " _
        & memStatus.dwMemoryLoad.ToString() & vbCrLf)
    MemoryInfo.Append("Total Physical: " _
        & memStatus.dwTotalPhys.ToString() & vbCrLf)
    MemoryInfo.Append("Avail Physical: " _
        & memStatus.dwAvailPhys.ToString() & vbCrLf)
    MemoryInfo.Append("Total Page File: " _
        & memStatus.dwTotalPageFile.ToString() & vbCrLf)
    MemoryInfo.Append("Avail Page File: " _
        & memStatus.dwAvailPageFile.ToString() & vbCrLf)
    MemoryInfo.Append("Total Virtual: " _
        & memStatus.dwTotalVirtual.ToString() & vbCrLf)
    MemoryInfo.Append("Avail Virtual: " _
        & memStatus.dwAvailVirtual.ToString() & vbCrLf)

    ' Show the available memory.

End Sub 

This example requires references to the following namespaces: