Я хочу вызвать функцию с чистым стеком, который может отрезать стек вызовов.
==================== начало псевдокода =========================== =====
stackBaseAddress = найти базовый адрес стека с помощью NtCurrentTeb
stackCurrentSize = stackBaseAddress — esp
резервный стек
memset (esp, 0, stackCurrentSize)
MessageBoxA (0, «1», 0, 0) <== здесь проблема, MessageBoxA завершается ошибкой, а GetLastError == 0
восстановить стек
============================= конец псевдокода =================== ==================
если нет memset (esp, 0, stackCurrentSize), все идет хорошо.
так что я думаю, что в стеке должно быть что-то, что нельзя стереть, но что?
Задача ещё не решена.
Других решений пока нет …