Так как мне было непонятно, прежде чем перепишу свой вопрос.
Мне нужно получить абсолютный базовый адрес раздела памяти, который был выделен с VirtualAllocEx()
,
Например, если я выделю 0x20000 байтов и получу адрес 0x5000000.
Мне нужен метод получения адреса 0x5000000 с использованием значения 0x5015000.
VirtualQuery () возвращает адрес страницы, в которой находится значение 0x5015000, а не базовый адрес выделенного раздела памяти.
Поэтому мне нужен другой метод, чтобы найти базовый адрес любого выделенного раздела памяти.
Отказ от ответственности: нет опыта WinAPI здесь вообще.
VirtualQuery () возвращает адрес страницы, в которой находится значение 0x5015000, а не базовый адрес выделенного раздела памяти.
Насколько я понял документы, VirtualQuery()
возвращает состав содержащий несколько частей информации, в том числе …
BaseAddress
Указатель на базовый адрес региона страниц.
AllocationBase
Указатель на базовый адрес диапазона страниц, выделенных
VirtualAlloc
функция. Страница, на которую указывает BaseAddress член содержится в этом диапазоне распределения.
Может быть, вы проверили только BaseAddress
и не AllocationBase
? Потому что последний звучит так же, как то, что вы ищете …