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));