所以我遇到了GetThreadContext的问题。我能够创建暂停的进程,但在尝试GetThreadContext时失败。它在调用GetLastError时返回错误代码“998”。它只在X64上失败,而不在X86上失败。
行:
IntPtr[] pInfo = new IntPtr[4];
uint[] ctxt = new uint[0xb3];
ctxt[0] = 0x10002;
if (GetThreadContext(pInfo[1], ctxt))
{
//Other stuff done here
}
答案 0 :(得分:1)
您创建的进程是否为32位进程?如果在64位Windows上,您需要调用Wow64GetThreadContext来获取它的上下文。
来自GetThreadContext文档:
64位应用程序可以使用检索WOW64线程的上下文 Wow64GetThreadContext函数。
您还可以将.NET应用程序标记为x86,以便它在64位Windows上以32位进程运行。