memorySTATUS 结构 (winbase.h)

包含有关物理内存和虚拟内存的当前状态的信息。 GlobalMemoryStatus 函数将信息存储在 MEMORYSTATUS 结构中。

语法

typedef struct _MEMORYSTATUS {
  DWORD  dwLength;
  DWORD  dwMemoryLoad;
  SIZE_T dwTotalPhys;
  SIZE_T dwAvailPhys;
  SIZE_T dwTotalPageFile;
  SIZE_T dwAvailPageFile;
  SIZE_T dwTotalVirtual;
  SIZE_T dwAvailVirtual;
} MEMORYSTATUS, *LPMEMORYSTATUS;

成员

dwLength

MEMORYSTATUS 数据结构的大小(以字节为单位)。 在调用 GlobalMemoryStatus 函数之前,无需设置此成员;函数设置它。

dwMemoryLoad

一个介于 0 和 100 之间的数字,指定正在使用的物理内存的近似百分比 (0 表示不使用内存,100 表示) 已满内存使用。

dwTotalPhys

实际物理内存量(以字节为单位)。

dwAvailPhys

当前可用的物理内存量(以字节为单位)。 这是可以立即重复使用的物理内存量,而无需先将其内容写入磁盘。 它是备用列表、可用列表和零列表的大小之和。

dwTotalPageFile

已提交的内存限制的当前大小(以字节为单位)。 这是物理内存加上页面文件的大小,减去少量开销。

dwAvailPageFile

当前进程可以提交的最大内存量(以字节为单位)。 此值应小于系统范围的可用提交。 若要计算此值,请调用 GetPerformanceInfo 并从 CommitLimit 中减去 CommitTotal 的值。

dwTotalVirtual

调用进程的虚拟地址空间的用户模式部分的大小(以字节为单位)。 此值取决于进程类型、处理器类型和操作系统的配置。 例如,对于 x86 处理器上的大多数 32 位进程,此值约为 2 GB,对于在启用了 4 GT RAM 优化的系统上运行的可识别大型地址的 32 位进程,此值约为 3 GB。

dwAvailVirtual

当前位于调用进程的虚拟地址空间的用户模式部分中的未保留和未提交的内存量(以字节为单位)。

注解

MEMORYSTATUS 反映调用时内存的状态。 它还反映当时分页文件的大小。 操作系统可以将分页文件放大到管理员设置的最大大小。

在内存超过 4 GB 的计算机上, MEMORYSTATUS 结构可能会返回错误的信息,报告值 –1 以指示溢出。 如果应用程序存在此行为的风险,请使用 GlobalMemoryStatusEx 函数而不是 GlobalMemoryStatus 函数。

示例

有关示例,请参阅 GlobalMemoryStatus 函数。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winbase.h (包括 Windows.h)

另请参阅

GlobalMemoryStatus

GlobalMemoryStatusEx

内存性能信息