Win API Функция VirtualQueryEx,ERROR_BAD_LENGTH

Привет! Я пытаюсь вызвать функцию VirtualQueryEx, чтобы получить некоторую информацию о защите памяти, однако мой код выдает ошибку 0x18 (ERROR_BAD_LENGTH), и я не знаю, что не так с моим кодом;

фрагмент кода:

PMEMORY_BASIC_INFORMATION alte;

VirtualQueryEx (дескриптор процесса,(LPVOID) (адрес),alte,sizeof(PMEMORY_BASIC_INFORMATION));

Спасибо за вашу помощь

1 ответ

Решение

alte needes to by объявлен как MEMORY_BASIC_INFORMATION, а не указатель на него.

MEMORY_BASIC_INFORMATION alte;

VirtualQueryEx(processhandle,(LPVOID) (address),&alte,sizeof(MEMORY_BASIC_INFORMATION));

изменить: обратите внимание на его размер (MEMORY_BASIC_INFORMATION), а не размер (PMEMORY_BASIC_INFORMATION).

На самом деле, так или иначе лучше написать это

VirtualQueryEx(processhandle,(LPVOID) (address),&alte,sizeof(alte));
Другие вопросы по тегам