如何在Windows中从内核模式中查找进程使用的内存

时间:2016-09-20 13:17:53

标签: c windows winapi kernel

我试图在Windows的内核模式下获取进程使用的内存。

我尝试通过GetProcessMemoryInfo使用PSAPI.h API。但这是一个用户模式功能,而且它没有给我数据。

还有其他方法可以获取内存详细信息吗?

1 个答案:

答案 0 :(得分:1)

您需要使用ProcessVmCountersProcessIoCountersZwQueryInformationProcessNtQueryInformationProcess取决于之前的模式

ULONG rcb;
union {
    VM_COUNTERS vmc;
    VM_COUNTERS_EX vmcex;
};
IO_COUNTERS ioc;
ZwQueryInformationProcess(NtCurrentProcess(), ProcessVmCounters, &vmc, sizeof(vmc), &rcb);
ZwQueryInformationProcess(NtCurrentProcess(), ProcessVmCounters, &vmcex, sizeof(vmcex), &rcb);
ZwQueryInformationProcess(NtCurrentProcess(), ProcessIoCounters, &ioc, sizeof(ioc), &rcb);