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

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

 

▶ 예제 코드 (C#)

using System;
using System.Runtime.InteropServices;

#region 시스템 정보 구하기 - GetSystemInfo(systemInformation)

/// <summary>
/// 시스템 정보 구하기
/// </summary>
/// <param name="systemInformation">시스템 정보</param>
[DllImport("kernel32")]
private static extern void GetSystemInfo(ref SYSTEM_INFORMATION systemInformation);

#endregion

/// <summary>
/// 프로세서 아키텍처
/// </summary>
public enum ProcessorArchitecture : ushort
{
    /// <summary>
    /// Intel
    /// </summary>
    Intel = 0,

    /// <summary>
    /// IA64
    /// </summary>
    IA64 = 6,

    /// <summary>
    /// AMD64
    /// </summary>
    AMD64 = 9,

    /// <summary>
    /// Unknown
    /// </summary>
    Unknown = 0xffff
}

/// <summary>
/// 시스템 정보
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEM_INFORMATION
{
    //////////////////////////////////////////////////////////////////////////////////////////////////// Field
    ////////////////////////////////////////////////////////////////////////////////////////// Public

    #region Field

    /// <summary>
    /// 프로세서 아키텍처
    /// </summary>
    public ProcessorArchitecture ProcessorArchitecture;

    /// <summary>
    /// 예약
    /// </summary>
    public ushort Reserved;

    /// <summary>
    /// 페이지 크기
    /// </summary>
    public uint PageSize;

    /// <summary>
    /// 최소 애플리케이션 주소
    /// </summary>
    public IntPtr MinimumApplicationAddress;

    /// <summary>
    /// 최대 애플리케이션 주소
    /// </summary>
    public IntPtr MaximumApplicationAddress;

    /// <summary>
    /// 활성 프로세서 마스크
    /// </summary>
    public UIntPtr ActiveProcessorMask;

    /// <summary>
    /// 프로세서 카운트
    /// </summary>
    public uint ProcessorCount;

    /// <summary>
    /// 프로세서 타입
    /// </summary>
    public uint ProcessorType;

    /// <summary>
    /// 할당 입도
    /// </summary>
    public uint AllocationGranularity;

    /// <summary>
    /// 프로세서 레벨
    /// </summary>
    public ushort ProcessorLevel;

    /// <summary>
    /// 프로세서 수정
    /// </summary>
    public ushort ProcessorRevision;

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

댓글을 달아 주세요