Memory / Swap (Windows): simplify implementation

This commit is contained in:
李通洲
2023-08-05 00:29:04 +08:00
parent 819c78e74c
commit 0c2edd4064
2 changed files with 15 additions and 24 deletions
+10 -7
View File
@@ -1,16 +1,19 @@
#include "memory.h"
#include <winternl.h>
#include <ntstatus.h>
#include <windows.h>
const char* ffDetectMemory(FFMemoryResult* ram)
{
MEMORYSTATUSEX statex = {
.dwLength = sizeof(statex),
};
if (!GlobalMemoryStatusEx(&statex))
return "GlobalMemoryStatusEx() failed";
SYSTEM_INFO sysInfo;
GetNativeSystemInfo(&sysInfo);
SYSTEM_PERFORMANCE_INFORMATION info;
if (!NT_SUCCESS(NtQuerySystemInformation(SystemPerformanceInformation, &info, sizeof(info), NULL)))
return "NtQuerySystemInformation(SystemPerformanceInformation) failed";
ram->bytesUsed = (uint64_t)(info.TotalCommitLimit - info.AvailablePages) * sysInfo.dwPageSize;
ram->bytesTotal = (uint64_t)info.TotalCommitLimit * sysInfo.dwPageSize;
ram->bytesTotal = statex.ullTotalPhys;
ram->bytesUsed = statex.ullTotalPhys - statex.ullAvailPhys;
return NULL;
}