Обнаружение общего изменения оперативной памяти в Windows - PullRequest
1 голос
/ 11 ноября 2010

Есть ли в Windows обратный вызов, который уведомит мое приложение об изменении общего объема системной памяти?

1 Ответ

3 голосов
/ 11 ноября 2010

Вы можете сделать это через WMI, если сможете выбрать _InstanceCreationEvent и _InstanceDeletionEvent для класса Win32_PhysicalMemory .

Здесь приведен пример кода (WMI удобен для использования в C или C ++, извините - C # будет проще). Просто сделайте запрос, который вы слушаете, используя Win32_PhysicalMemory вместо Win32_Process здесь:

hres = pSvc->ExecNotificationQueryAsync(
    _bstr_t("WQL"), 
    _bstr_t("SELECT * " 
        "FROM __InstanceCreationEvent WITHIN 1 "
        "WHERE TargetInstance ISA 'Win32_Process'"), 
    WBEM_FLAG_SEND_STATUS, 
    NULL, 
    pStubSink);

Вам также потребуется второй звонок, подобный этому, для обнаружения __InstanceDeletionEvent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...