Processes: add support for Windows

This commit is contained in:
李通洲
2022-10-06 22:07:48 +08:00
parent ad03c42a28
commit 8849107260
6 changed files with 83 additions and 23 deletions
@@ -0,0 +1,30 @@
extern "C" {
#include "processes.h"
}
#include "util/windows/wmi.hpp"
uint32_t ffDetectProcesses(FFinstance* instance, FFstrbuf* error)
{
FF_UNUSED(instance);
IEnumWbemClassObject* pEnumerator = ffQueryWmi(L"SELECT NumberOfProcesses FROM Win32_OperatingSystem", error);
if(!pEnumerator)
return 0;
IWbemClassObject *pclsObj = NULL;
ULONG uReturn = 0;
if(FAILED(pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn)) || uReturn == 0)
{
ffStrbufAppendS(error, "No Wmi result returned");
pEnumerator->Release();
return 0;
}
int64_t result = 0;
ffGetWmiObjInteger(pclsObj, L"NumberOfProcesses", &result);
pclsObj->Release();
pEnumerator->Release();
return (uint32_t)result;
}