GetPhysicallyInstalledSystemMemory 函数 (sysinfoapi.h)

检索实际安装在计算机上的 RAM 量。

语法

BOOL GetPhysicallyInstalledSystemMemory(
  [out] PULONGLONG TotalMemoryInKilobytes
);

参数

[out] TotalMemoryInKilobytes

指向变量的指针,该变量接收物理安装的 RAM 量(以 KB 为单位)。

返回值

如果函数成功,则返回 TRUE 并将 TotalMemoryInKilobytes 参数设置为非零值。

如果函数失败,它将返回 FALSE ,并且不会修改 TotalMemoryInKilobytes 参数。 若要获取扩展错误信息,请使用 GetLastError 函数。 下表列出了常见错误。

返回代码 说明
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)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

EnumSystemFirmwareTables

GetSystemFirmwareTable

GlobalMemoryStatusEx