GetPhysicallyInstalledSystemMemory 函式 (sysinfoapi.h)

擷取實際安裝在電腦上的 RAM 數量。

語法

BOOL GetPhysicallyInstalledSystemMemory(
  [out] PULONGLONG TotalMemoryInKilobytes
);

參數

[out] TotalMemoryInKilobytes

變數的指標,可接收實際安裝的 RAM 數量,以 KB 為單位。

傳回值

如果函式成功,它會傳回 TRUE ,並將 TotalMemoryInKilobytes 參數設定為非零值。

如果函式失敗,它會傳回 FALSE ,而且不會修改 TotalMemoryInKilobytes 參數。 若要取得擴充的錯誤資訊,請使用 GetLastError 函 式。 下表列出常見的錯誤。

傳回碼 Description
ERROR_INVALID_PARAMETER
TotalMemoryInKilobytes 參數為 NULL
ERROR_INVALID_DATA
系統管理 BIOS (SMBIOS) 數據格式不正確。

備註

GetPhysicallyInstalledSystemMemory 函式會從計算機的 SMBIOS 韌體數據表擷取實際安裝的 RAM 數量。 這與 GlobalMemoryStatusEx 函式所報告的數量不同,這會將 MEMORYSTATUSEX 結構的 ullTotalPhys 成員設定為可供操作系統使用的實體記憶體數量。 操作系統可用的記憶體數量可能小於實際安裝在計算機的記憶體數量,因為 BIOS 和某些驅動程式可能會保留記憶體做為記憶體對應裝置的 I/O 區域,讓操作系統和應用程式無法使用記憶體。

GetPhysicallyInstalledSystemMemory 函式所擷取的實體記憶體數量必須等於或大於 GlobalMemoryStatusEx 函式所報告的數量;如果比較少,SMBIOS 數據的格式不正確,且函式會因為ERROR_INVALID_DATA而失敗。 格式不正確的 SMBIOS 資料可能表示使用者的電腦發生問題。

規格需求

需求
最低支援的用戶端 Windows Vista SP1 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 sysinfoapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

EnumSystemFirmwareTables

GetSystemFirmwareTable

GlobalMemoryStatusEx