轉載:
GlobalMemoryStatus,Win32 API函數。
此函數用來獲得當前可用的物理和虛擬記憶體資訊,函數定義為:
VOID GlobalMemoryStatus
(
LPMEMORYSTATUS lpBuffer
);
此函數無傳回值,參數是一個指向名為MEMORYSTATUS的結構的指標。函數的返回資訊會被儲存在MEMORYSTATUS結構中。
此函數用來替代用來支援16位應用程式的GetFreeSpace函數。
應用程式應該在申請記憶體前調用此函數以防止影響到其他程式運行。
這個函數的傳回值是動態,並且可能返回相同的值。
關於MEMORYSTATUS結構:
機構定義:
typedef struct _MEMORYSTATUS
{ // mst
DWORD dwLength; // sizeof(MEMORYSTATUS)
DWORD dwMemoryLoad; // percent of memory in use
DWORD dwTotalPhys; // bytes of physical memory
DWORD dwAvailPhys; // free physical memory bytes
DWORD dwTotalPageFile; // bytes of paging file
DWORD dwAvailPageFile; // free bytes of paging file
DWORD dwTotalVirtual; // user bytes of address space
DWORD dwAvailVirtual; // free user bytes
} MEMORYSTATUS, *LPMEMORYSTATUS;
結構成員的含義:
dwLength MEMORYSTATUS結構的大小,在調GlobalMemoryStatus函數前用sizeof()函數求得,
用來供函數檢測結構的版本。
dwMemoryLoad 返回一個介於0~100之間的值,用來指示當前系統記憶體的使用率。
dwTotalPhys 返回總的實體記憶體大小,以位元組(byte)為單位。
dwAvailPhys 返回可用的實體記憶體大小,以位元組(byte)為單位。
dwTotalPageFile 顯示可以存在分頁檔中的位元組數。注意這個數值並不表示在分頁檔在磁碟上的真實物理大小。
dwAvailPageFile 返回可用的分頁檔大小,以位元組(byte)為單位。
dwTotalVirtual 返回調用進程的使用者模式部分的全部可用虛擬位址空間,以位元組(byte)為單位。
dwAvailVirtual 返回調用進程的使用者模式部分的實際自由可用的虛擬位址空間,以位元組(byte)為單位。
MEMORYSTATUS結構,
結構的定義如下:
MEMORYSTATUS STRUCT
dwLength DWORD ;本結構的長度
dwMemoryLoad DWORD ;已用記憶體的百分比
dwTotalPhys DWORD ;實體記憶體總量
dwAvailPhys DWORD ;可用實體記憶體
dwTotalPageFile DWORD ;分頁檔總的大小
dwAvailPageFile DWORD ;分頁檔中空閑部分大小
dwTotalVirtual DWORD ;使用者可用的地址空間
dwAvailVirtual DWORD ;當前閒置地址空間
MEMORYSTATUS ENDS
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/sunky/archive/2008/07/15/2654254.aspx