Вопрос

Привет, я пытаюсь вызвать функцию 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));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top