첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

■ GlobalMemoryStatusEx API 함수를 선언하는 방법을 보여준다.

 

▶ 예제 코드 (C#)

using System.Runtime.InteropServices;

#region 전역 메모리 상태 구하기 (확장) - GlobalMemoryStatusEx(memoryStatus)

/// <summary>
/// 전역 메모리 상태 구하기 (확장)
/// </summary>
/// <param name="memoryStatus">메모리 상태</param>
/// <returns>처리 결과</returns>
[DllImport("kernel32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX memoryStatus);

#endregion

/// <summary>
/// 메모리 상태 (확장)
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public class MEMORYSTATUSEX
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Field
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region Field

    /// <summary>
    /// 길이
    /// </summary>
    public uint Length;

    /// <summary>
    /// 로드 메모리
    /// </summary>
    public uint MemoryLoad;

    /// <summary>
    /// 전체 물리적 메모리 크기
    /// </summary>
    public ulong TotalPhysicalMemorySize;

    /// <summary>
    /// 이용 가능한 물리적 메모리 크기
    /// </summary>
    public ulong AvailablePhysicalMemorySize;

    /// <summary>
    /// 전체 페이지 파일 크기
    /// </summary>
    public ulong TotalPageFileSize;

    /// <summary>
    /// 이용 가능한 페이지 파일 크기
    /// </summary>
    public ulong AvailablePageFileSize;

    /// <summary>
    /// 전체 가상 메모리 크기
    /// </summary>
    public ulong TotalVirtualMemorySize;

    /// <summary>
    /// 이용 가능한 가상 메모리 크기
    /// </summary>
    public ulong AvailableVirtualMemorySize;

    /// <summary>
    /// 이용 가능한 확장된 가상 메모리 크기
    /// </summary>
    public ulong AvailableExtendedVirtualMemorySize;

    #endregion

    //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region 생성자 - MEMORYSTATUSEX()

    /// <summary>
    /// 생성자
    /// </summary>
    public MEMORYSTATUSEX()
    {
        Length = (uint)Marshal.SizeOf<MEMORYSTATUSEX>();
    }

    #endregion
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요