CONTEXT结构不包含Eip?C++

J. *_*Doe -2 c++ winapi struct

我正在尝试修改线程,而CONTEXT结构不包含Eip.

HANDLE hThread;
CONTEXT ctx;
ctx.ContextFlags = CONTEXT_ALL;

DWORD processId = GetCurrentProcessId();
DWORD mainThreadId = GetMainThreadId(processId);

hThread = OpenThread((THREAD_GET_CONTEXT | THREAD_SET_CONTEXT | THREAD_SUSPEND_RESUME), FALSE, mainThreadId);
if (hThread)
{
    if (GetThreadContext(hThread, &ctx))
    {
        ???ctx.Eip??
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么,尽管它应该.谢谢!

IIn*_*ble 5

该CONTEXT结构是处理器体系结构专用.它在编译x86目标(预定义符号定义)时包含一个Eip成员_M_IX86.对于x64目标(_M_AMD64定义了预处理程序符号),指令指针存储在Rip成员中.

所有支持的处理器体系结构的结构定义都在Windows SDK 的WinNT.h头文件中定义.