CreateRemoteThread在win7 64位上返回ERROR_ACCESS_DENIED(5)

时间:2012-09-04 05:03:28

标签: c++ xcode windows-7 64-bit 32-bit

我该如何解决这个问题?代码工作正常,因为我在32位计算机上测试它,但我的64位计算机返回错误与getlasterror();

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:0)

部分信息:

当我在Win2000上使用CreateRemoteThread时,一切正常,除了我在属于不同终端服务器会话的进程中启动远程线程的情况。在Win2003(及以上)上,所有系统进程都在TS会话0中工作,这与您当前登录的交互式会话不同。那时我还没有设法解决TS会话边界问题。这是您可能需要先检查的内容。

这可能不是32/64位问题,而是某种需要特殊权限和/或权限的安全问题。

答案 1 :(得分:0)

我猜你的目标进程是一个托管可执行文件,编译为“任何CPU”......

如果是这样,当您在64位Windows上启动该exe时,它将JIT编译为64位代码,从而成为64位进程。

然后,您不能从32位进程调用CreateRemoteThread。

在32位Windows上启动的相同Managed exe将JIT转换为32位代码,因此可以正常工作。

如果是这种情况,并且您是相关Managed exe的作者,请将其重建为x86。