簡體   English   中英

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

[英]CreateRemoteThread returns ERROR_ACCESS_DENIED (5) on win7 64 bit

我該如何解決這個問題? 當我在32位計算機上對其進行測試時,代碼可以正常工作,但是我的64位計算機使用getlasterror()返回該錯誤;

我該怎么解決?

部分信息:

當我在Win2000上使用CreateRemoteThread時,除我在屬於不同終端服務器會話的進程中啟動遠程線程的情況外,其他一切工作正常。 在Win2003(及更高版本)上,所有系統進程都在TS會話0中工作,該會話不同於您當前登錄的交互式會話。那時,我還沒有解決TS會話邊界問題。 這是您可能需要首先檢查的內容。

這很有可能不是32/64位問題,而是某種需要特殊特權和/或權限的安全性問題。

我猜您的目標進程是托管可執行文件,為“任何CPU”編譯...

如果是這樣,當您在64位Windows上啟動該exe時,它將JIT編譯為64位代碼,從而成為64位進程。

然后,您將無法通過32位進程在其上調用CreateRemoteThread。

在32位Windows上啟動的同一Managed exe可以將JIT轉換為32位代碼,因此可以運行。

如果是這種情況,並且您是有問題的Managed exe的作者,請為x86重建它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM