記憶體管理之一 (轉)

worldblog發表於2007-12-15
記憶體管理之一 (轉)[@more@]

Memory Management(管理)

 :namespace prefix = o ns = "urn:schemas--com::office" />

 

GlobalMemoryStatus

  此用於獲得當前實體記憶體和虛擬記憶體的使用情況。

  如果想要獲得擴充套件虛擬地址空間,或者是您的執行在一臺有超過4GB主記憶體的機器上,那麼請使用/editor/memman_77p4.htm">GlobalMemoryStatusEx 函式來達到類似的要求。

  函式宣告如下:

    VOID GlobalMemoryStatus(


      LPMEMORYSTATUS   //記憶體狀態結構


    );


 


  參數列:

    lpBuffer : 〔輸出〕 一個指向  結構的指標。函式將當前記憶體狀況儲存到該結構中。

  返回值:

  無返回值

說明:

  您可以使用該函式來判斷當前您可以在系統中分配到多少不會與其它程式相沖突的記憶體。

  這個函式的返回是不確定的,無法保證連續兩次該函式會得到相同的返回資訊。

  在一臺記憶體超過4GB的機器上,GlobalMemoryStatus 函式會返回錯誤值。2000或之後的版本會報告一個 -1 的值來表示資料。之前的版本如windosNT則報告一個對真實記憶體取4GB模的一個值。由於以上的原因,我們使用 取代該函式。

  在一臺擁有大於2GB而小於4GB記憶體的 x86機器上GlobalMemoryStatus 函式總是在結構MEMORYSTATUS 成員dwTotalPhys 中返回2GB。同樣的,如果總的可用記憶體在2 - 4GB之間,結構MEMORYSTATUS 的成員dwAvailPhys 最大可能值為2GB。如果可在連線時使用”/LARGEADDRESSWARE ”連線開關,那麼函式GlobalMemoryStatus 會在以上兩個成員中返回正確的值。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993810/,如需轉載,請註明出處,否則將追究法律責任。

相關文章