winapi — C ++ получить базовый адрес выделенного раздела

Так как мне было непонятно, прежде чем перепишу свой вопрос.

Мне нужно получить абсолютный базовый адрес раздела памяти, который был выделен с VirtualAllocEx(),

Например, если я выделю 0x20000 байтов и получу адрес 0x5000000.

Мне нужен метод получения адреса 0x5000000 с использованием значения 0x5015000.

VirtualQuery () возвращает адрес страницы, в которой находится значение 0x5015000, а не базовый адрес выделенного раздела памяти.

Поэтому мне нужен другой метод, чтобы найти базовый адрес любого выделенного раздела памяти.

2

Решение

Отказ от ответственности: нет опыта WinAPI здесь вообще.

VirtualQuery () возвращает адрес страницы, в которой находится значение 0x5015000, а не базовый адрес выделенного раздела памяти.

Насколько я понял документы, VirtualQuery() возвращает состав содержащий несколько частей информации, в том числе …

BaseAddress

Указатель на базовый адрес региона страниц.

AllocationBase

Указатель на базовый адрес диапазона страниц, выделенных VirtualAlloc функция. Страница, на которую указывает BaseAddress член содержится в этом диапазоне распределения.

Может быть, вы проверили только BaseAddress и не AllocationBase? Потому что последний звучит так же, как то, что вы ищете …

3

Другие решения


По вопросам рекламы [email protected]