[英]How to identify more than 4 gb ram on 32-bit machine
我知道32位操作系統看不到超過4 GB的RAM。
因此,如果我要在運行32位操作系統的計算機上安裝6 GB的RAM,有什么方法可以識別它嗎?
我知道一種獲取已安裝RAM的方法是通過WMI類:win32_physicalmemory.Capacity
但我不知道它是否會顯示正確安裝的柱塞尺寸而不是支持。
我沒有設置測試這種情況,但如果有人已經知道這一點,請確認。
否則,請告訴我是否有其他方法可以做同樣的事情。 我問這個任何Windows 32位操作系統。
提前致謝。
薩姆拉特帕蒂爾。
32位操作系統可以通過支持PAE的 CPU看到超過4GB的內存。 只是32位地址空間限制為4GB。 但是由於應用程序只能訪問自己的虛擬地址空間,因此無法判斷它分配的內存是存儲在第1或第5 GB的內存中。
在Windows上,您可以使用GetPhysicallyInstalledSystemMemory函數:
函數從計算機的SMBIOS固件表中檢索物理安裝的RAM量。 這可能與GlobalMemoryStatusEx函數報告的數量不同,后者將MEMORYSTATUSEX結構的ullTotalPhys成員設置為可供操作系統使用的物理內存量。
閱讀更多: http : //www.geoffchappell.com/viewer.htm?doc = notes / windows / license / memory.htm
WMI將所有內存大小報告為uint64
如Win32_OperatingSystem文檔中所示 。
有很好的功能GlobalMemoryStatusEx可以解決你的問題。 它回饋
typedef struct _MEMORYSTATUSEX {
DWORD dwLength;
DWORD dwMemoryLoad;
DWORDLONG ullTotalPhys;
DWORDLONG ullAvailPhys;
DWORDLONG ullTotalPageFile;
DWORDLONG ullAvailPageFile;
DWORDLONG ullTotalVirtual;
DWORDLONG ullAvailVirtual;
DWORDLONG ullAvailExtendedVirtual;
}MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
我想你正在尋找ullTotalPhys
。 所有值都以字節為單位。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.