Проблема на самом деле довольно проста: мне нужно знать текущее потребление ресурсов ЦП и памяти всей системы из драйвера режима ядра под Windows.
Конечно, я смотрел связанный вопрос и попробовал этот код. Результаты не очень хорошие: среда разработки Visual Studio 2013 для драйверов не знает заголовков из упомянутых примеров. Например.:
#include "windows.h"
MEMORYSTATUSEX memInfo;
memInfo.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&memInfo);
DWORDLONG totalVirtualMem = memInfo.ullTotalPageFile;
Код выше не компилируется.
Я тщательно изучил почти все «Справочник по драйверам режима ядра» в MSDN, ища похожие функции, и мне это не удалось.
Итак, кто-нибудь знает, как получить ту же информацию из драйвера режима ядра под Windows?
Или это невозможно? (Это довольно странно, если это правда.)
Эти API не доступны для драйверов, поэтому неудивительно, что ваша попытка не сработала.
Управление памятью в драйверах режима ядра намного сложнее, чем в приложениях пользовательского режима. Вы должны расследовать отслеживание пула чтобы увидеть, есть ли способ использовать это, чтобы дать вам информацию, которую вы хотите.