클리엘
CLIEL LAB
클리엘
전체 방문자
오늘
어제
  • 분류 전체보기 (513)
    • Mobile (47)
      • Kotlin (47)
    • Web (84)
      • NestJS (9)
      • HTML5 & CSS3 (38)
      • Javascript (20)
      • TypeScript (6)
      • JQuery (11)
    • .NET (300)
      • C# (83)
      • ASP.NET (67)
      • Windows API for .NET (128)
    • Server (53)
      • SQL Server (10)
      • MariaDB (18)
      • Windows Server (6)
      • node.js (19)
    • System (12)
      • 작업LOG (12)
    • Review (11)
    • ETC (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 정리

인기 글

태그

  • android
  • MariaDB
  • c#
  • HTML5
  • LINQ
  • .NET
  • asp.net core
  • ASP.NET
  • Entity Framework
  • NestJS
  • JavaScript
  • CSS3
  • Windows API
  • jQuery
  • node.js
  • exception
  • android studio
  • asp.net core web api
  • 변수
  • Kotlin

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
클리엘

CLIEL LAB

.NET/Windows API for .NET

GlobalMemoryStatus - 현재 Memory상태 구하기

2019. 8. 5. 17:07
728x90

GlobalMemoryStatus는 현재 Memory상태에 관한 정보를 반환하는 함수입니다.

Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (ByRef lpBuffer As MEMORYSTATUS)>

- VB.NET 선언

Structure MEMORYSTATUS
        Public ilength As Integer
        Public iusepsent As Integer
        Public iphymem As Integer
        Public iphymem_avail As Integer
        Public ipage As Integer
        Public ipage_avail As Integer
        Public ivirmem As Integer
        Public ivirmem_avail As Integer
End Structure

Dim st_Mem As MEMORYSTATUS
GlobalMemoryStatus(st_Mem)

st_Mem.iusepsent
st_Mem.iphymem
st_Mem.iphymem_avail
st_Mem.ipage
st_Mem.ipage_avail
st_Mem.ivirmem
st_Mem.ivirmem_avail

- VB.NET 호출

[System.Runtime.InteropServices.DllImport("kernel32.dll")]
private static extern void GlobalMemoryStatus(ref MEMORYSTATUS lpBuffer);

- C# 선언

struct MEMORYSTATUS{
            public int ilength;
            public int iusepsent;
            public int iphymem;
            public int iphymem_avail;
            public int ipage;
            public int ipage_avail;
            public int ivirmem;
            public int ivirmem_avail;
}

MEMORYSTATUS st_Mem = default(MEMORYSTATUS);
GlobalMemoryStatus(ref st_Mem);

st_Mem.iusepsent
st_Mem.iphymem
st_Mem.iphymem_avail
st_Mem.ipage
st_Mem.ipage_avail
st_Mem.ivirmem
st_Mem.ivirmem_avail

- C# 호출

 

C# 호출 위에서 각 구조체의 Member에 들어가는 값은 다음과 같습니다.

 member  값
 iusepsent  현재 Memory사용율
 iphymem  물리적 Memory용량
 iphymem_avail  물리적 Memory용량(남은 용량)
 ipage  Page Memory용량
 ipage_avail  Page Memory용량(남은 용량)
 ivirmem  가상 Memory용량
 ivirmem_avail  가상 Memory용량(남은 용량)
 ilength  구조체 길이(관련없음)

iusepsent를 제외한 다른 용량값은 Byte단위입니다.

 

728x90
저작자표시 비영리 변경금지

'.NET > Windows API for .NET' 카테고리의 다른 글

SHGetSpecialFolderPath - Windows System관련 Folder 가져오기  (0) 2019.08.05
GetClassName - Window의 Class이름 구하기  (0) 2019.08.05
GetSystemTime - 현재 System의 날짜및 시간구하기  (0) 2019.08.05
CreateDirectory - Directory의 생성  (0) 2019.08.05
GetDriveType - Disk Drive 유형 판단  (0) 2019.08.05
    '.NET/Windows API for .NET' 카테고리의 다른 글
    • SHGetSpecialFolderPath - Windows System관련 Folder 가져오기
    • GetClassName - Window의 Class이름 구하기
    • GetSystemTime - 현재 System의 날짜및 시간구하기
    • CreateDirectory - Directory의 생성
    클리엘
    클리엘
    누구냐 넌?

    티스토리툴바