Функция Win API VirtualQueryEx, ERROR_BAD_LENGTH
-
21-09-2019 - |
Вопрос
Привет, я пытаюсь вызвать функцию VirtualQueryEx, чтобы получить некоторую информацию о защите памяти, однако мой код выдает ошибку 0x18 (ERROR_BAD_LENGTH), и я не знаю, что не так с моим кодом;
фрагмент кода:
PMEMORY_BASIC_INFORMATION альтернативный;
VirtualQueryEx(дескриптор процесса,(LPVOID) (адрес),alte,sizeof(PMEMORY_BASIC_INFORMATION));
Спасибо за вашу помощь
Решение
alte необходимо объявить как MEMORY_BASIC_INFORMATION, а не как указатель на него.
MEMORY_BASIC_INFORMATION alte;
VirtualQueryEx(processhandle,(LPVOID) (address),&alte,sizeof(MEMORY_BASIC_INFORMATION));
редактировать:Обратите внимание на его размер (MEMORY_BASIC_INFORMATION), а не sizeof (PMEMORY_BASIC_INFORMATION).
вообще-то лучше это написать
VirtualQueryEx(processhandle,(LPVOID) (address),&alte,sizeof(alte));
Не связан с StackOverflow