TA的每日心情 | 怒 2017-11-24 01:58 |
---|
签到天数: 3 天 [LV.2]偶尔看看I
|
- //https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getphysicallyinstalledsystemmemory
- ENVI$ &NL=0d 0a
- ENVI$# &&pTotalMemoryInKilobytes=*8 0
- //这个API只在Vista SP1及以后在系统支持
- //该GetPhysicallyInstalledSystemMemory功能从计算机的SMBIOS固件表中检索物理安装的RAM量。这可能与GlobalMemoryStatusEx函数报告的数量不同,后者将MEMORYSTATUSEX结构的ullTotalPhys成员设置为可供操作系统使用的物理内存量。操作系统可用的内存量可能小于计算机中物理安装的内存量,因为 BIOS 和某些驱动程序可能会将内存保留为内存映射设备的 I/O 区域,从而使操作系统无法使用这些内存和应用。GetPhysicallyInstalledSystemMemory函数检索的物理内存量必须等于或大于GlobalMemoryStatusEx函数报告的量;如果小于,则 SMBIOS 数据格式错误并且函数失败并显示ERROR_INVALID_DATA。格式错误的 SMBIOS 数据可能表明用户的计算机存在问题。
- CALL $--qd --bool --ret:&&GetPhysicallyInstalledSystemMemoryRet Kernel32.dll,GetPhysicallyInstalledSystemMemory,*&&pTotalMemoryInKilobytes
- ENVI?longlong &&pTotalMemoryInKilobytes=&&TotalMemoryInKilobytes
- MESS. %&&GetPhysicallyInstalledSystemMemoryRet%《%&TotalMemoryInKilobytes%》
- ENVI &&dwLength=64
- ENVI$# &&lpBuffer=*%&&dwLength% 0
- ENVI-long &&lpBuffer.dwLength=%&&dwLength%
- ENVI-copy &&lpBuffer=&&lpBuffer.dwLength;0;4;0
- CALL $--qd --bool --ret:&&GlobalMemoryStatusExRet Kernel32.dll,GlobalMemoryStatusEx,*&&lpBuffer
- ENVI?long &&lpBuffer=&&dwMemoryLoad:4
- ENVI?longlong &&lpBuffer=&&ullTotalPhys:(4 + 4)
- ENVI?longlong &&lpBuffer=&&ullAvailPhys:(4 + 4 + 8)
- ENVI?longlong &&lpBuffer=&&ullTotalPageFile:(4 + 4 + 8 + 8)
- ENVI?longlong &&lpBuffer=&&ullAvailPageFile:(4 + 4 + 8 + 8 + 8)
- ENVI?longlong &&lpBuffer=&&ullTotalVirtual:(4 + 4 + 8 + 8 + 8 + 8)
- ENVI?longlong &&lpBuffer=&&ullAvailVirtual:(4 + 4 + 8 + 8 + 8 + 8 + 8)
- MESS. %&&GlobalMemoryStatusExRet%
- \%&NL%%&dwMemoryLoad%
- \%&NL%%&ullTotalPhys%
- \%&NL%%&ullAvailPhys%
- \%&NL%%&ullTotalPageFile%
- \%&NL%%&ullAvailPageFile%
- \%&NL%%&ullTotalVirtual%
- \%&NL%%&ullAvailVirtual%
- EXIT FILE
- typedef struct _MEMORYSTATUSEX
- {
- DWORD dwLength; // 结构的长度,在使用函数前必须初始化此值
- DWORD dwMemoryLoad; // 物理内存的使用率(0~100的整数)
- DWORDLONG ullTotalPhys; // 物理内存的总量,以字节为单位(以下均相同)
- DWORDLONG ullAvailPhys; // 物理内存的剩余量
- DWORDLONG ullTotalPageFile; // 系统页面文件大小
- DWORDLONG ullAvailPageFile; // 系统可用页面文件大小
- DWORDLONG ullTotalVirtual; // 虚拟内存的总量
- DWORDLONG ullAvailVirtual; // 虚拟内存的剩余量
- DWORDLONG ullAvailExtendedVirtual; // 保留,值为0
- } MEMORYSTATUSEX,*LPMEMORYSTATUSEX;
-
复制代码
|
评分
-
查看全部评分
上一篇: 升级怎么扩大引导分区下一篇: 自动打开sgi
|