освобождаться память? Через дебагер проверяю что код доходит до момента освобождения памяти, но сама память по итогу не освобождается
GetLastError ?
А как проверяется факт освобождения памяти?)
Сега при чтении оттуда))))
Я чет не подумал) Выдает ошибку 5, т.е. нехватка прав, только от чего это может быть я немного не понимаю
через процессхакер смотрю сколько памяти выделено по адресу
Не твоя память мб?
Вы проверяете if(VirtualFree()==TRUE) или if(VirtualFree()!=FALSE)?
Не тот процесс
вывожу в консоль возвращаемое значение.
у майков в документации написано: Return value If the function succeeds, the return value is nonzero. If the function fails, the return value is 0 (zero). To get extended error information, call GetLastError. nonzero это не 1. это может быть и 100, и 193443 TRUE это 1 вы видите разницу между if(234423==1) и if(234423!=0)?
== true изначально уже мем
Выделение памяти по адресу: LPVOID buffer; buffer = VirtualAlloc(NULL, handleInfoSize, MEM_COMMIT, PAGE_READWRITE); Освобождение: VirtualFree(buffer, 0, MEM_RELEASE); В память записывается итог выполнения NtQuerySystemInformation
подробнее можете почитать тут.
Ток что проверил эта ошибка не имеет отношения к вызову VirtualFree
Обсуждают сегодня