<Return[G]><Top>

GlobalMemoryStatus

Declare Sub Api_GlobalMemoryStatus Lib "Kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS)

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

物理メモリと仮想メモリの両方に関するシステムの現在の使用状況の情報を取得する。
仮想アドレス空間の拡張部分に関する情報を取得する場合や、4GB を超えるメインメモリを実装したコンピュータでアプリケーションを実行する可能性がある場合は、GlobalMemoryStatusEx 関数を使うこと。

パラメータ
lpBuffer
    [出力]1 つの MEMORYSTATUS 構造体へのポインタを指定する。

    この構造体に、現在利用可能なメモリに関する情報が格納される。
 

戻り値
    戻り値はなし。

解説
    GlobalMemoryStatus 関数を使うと、現在のアプリケーションが他のアプリケーションへ深刻な影響を及ぼすことなく、どれだけのメモリを割り

    当てることができるのか決定できる。
    GlobalMemoryStatus 関数が返す情報は時間とともに変化する。

    この関数を、2 回続けて呼び出した場合、1 回目の結果と 2 回目の結果が同じになるとは限らない。
    4GB を超えるメインメモリを実装したコンピュータでは、GlobalMemoryStatus 関数は誤った情報を返す可能性がある。

    Windows 2000 は、-1 という値を使ってオーバーフローを表す。Windows NT の従来のバージョンは、実際のメモリに対する 4GB の剰余

   (たとえば 5GB の場合、剰余は 1GB)を返す。この理由により、Windows 2000 では代わりに GlobalMemoryStatusEx 関数を使う。