Использование VirtualQuery, чтобы выяснить, какой «файл» использует определенную страницу в памяти - PullRequest
2 голосов
/ 16 февраля 2011

Я использую VirtualQuery для обхода виртуального пространства моего приложения. Но я хотел бы идентифицировать все, что выделено приложением, а не только мой exe - что-то вроде приложения SysInternals VMmap - и мне нужно знать, какие страницы принадлежат какому файлу (мне нужно идентифицировать страницы, выделенные для моего приложения и dll). Как этого добиться?

1 Ответ

2 голосов
/ 26 февраля 2011

Вы можете использовать CreateToolhelp32Snapshot с TH32CS_SNAPMODULE для получения базовых адресов и размеров модулей.Для кучи вы используете GetProcessHeaps () и HeapWalk (), чтобы получить разные области кучи (как зафиксированные, так и зарезервированные).

Другие вещи (стеки потоков, отображенная память), кажется, труднее найти.

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