プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

仮想メモリ容量の取得(2)

2007年09月14日 18時42分01秒 | メモリ関連
4Gバイト以上の仮想メモリ容量を取得するにはGlobalMemoryStatusEx()関数を使います。
搭載容量と空き容量が取得できます。使用容量は引き算して求めます。

// プロトタイプ宣言
BOOL GlobalMemoryStatusEx(
  LPMEMORYSTATUSEX lpBuffer  // メモリステータスの構造体
);

// 構造体
typedef struct _MEMORYSTATUSEX {
  DWORD dwLength;                     // 構造体のサイズ
  DWORD dwMemoryLoad;                 // メモリの使用率(%)
  DWORDLONG ullTotalPhys;             // 物理メモリの搭載容量
  DWORDLONG ullAvailPhys;             // 物理メモリの空き容量
  DWORDLONG ullTotalPageFile;         // ページングの搭載容量
  DWORDLONG ullAvailPageFile;         // ページングの空き容量
  DWORDLONG ullTotalVirtual;          // 仮想メモリの搭載容量
  DWORDLONG ullAvailVirtual;          // 仮想メモリの空き容量
  DWORDLONG ullAvailExtendedVirtual;  // 仮想メモリの拡張空き容量
} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;

// 情報収集
MEMORYSTATUSEX msex = { sizeof(MEMORYSTATUSEX) };
GlobalMemoryStatusEx( &msex );

// 仮想メモリの使用容量
DWORDLONG ullUsed = (msex.ullTotalVirtual - msex.ullAvailVirtual);
// 仮想メモリの空き容量
DWORDLONG ullFree = (msex.ullAvailVirtual);
// 仮想メモリの搭載容量
DWORDLONG ullSize = (msex.ullTotalVirtual);

注意事項:
(1)この関数は Windows 95/98/Me/CE の環境では使えません。
(2)この関数は Windows NT/2000/XP/Vista の環境で利用できます。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 物理メモリ容量の取得(2) | トップ | ページング・ファイル容量の... »
最新の画像もっと見る

コメントを投稿

メモリ関連」カテゴリの最新記事