summaryrefslogtreecommitdiffstats
path: root/src/detection/memory/memory_windows.c
blob: 779425d559d463d8d158f8cd2d9e0b5971883d55 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "memory.h"

#include <windows.h>

const char* ffDetectMemory(FFMemoryResult* ram) {
    MEMORYSTATUSEX statex = {
        .dwLength = sizeof(statex),
    };
    // GlobalMemoryStatusEx() internally uses
    // NtQuerySystemInformation(SystemBasicPerformanceInformation) in Win 7, and
    // NtQuerySystemInformation(SystemMemoryUsageInformation) in Win 10
    if (!GlobalMemoryStatusEx(&statex)) {
        return "GlobalMemoryStatusEx() failed";
    }

    ram->bytesTotal = statex.ullTotalPhys;
    ram->bytesUsed = statex.ullTotalPhys - statex.ullAvailPhys;
    return NULL;
}