OpenThread() - Errorcode 5 (Invalid Access)



  • Hallo.

    Also, in meinem Code nutze die Toolhelp32-API um an die IDs aller Threads eines Zielprozesses zu kommen.
    Der Versuch OpenThread() auf diese IDs anzuwenden um an Threadhandles zu gelangen scheitert allerdings immer, GetLastError gibt den Code 5 (ERROR_ACCESS_DENIED) zurück.

    Das kann ich mir nicht erklären, Debugprivilegien habe ich logischerweise gesetzt (auf den Prozess kann ich problemlos operieren).

    Hier mal meine Funktion zu öffnen:

    void Thread::open(ThreadId id)
    {
    	if(!id)
    		return;
    
    	close();
    
    	//Windows Server 2008 and Windows Vista specific access rights are left
    	//out to stay compatible to older versions of Windows.
    	DWORD desiredAccess =	SYNCHRONIZE |
    									THREAD_DIRECT_IMPERSONATION |
    									THREAD_GET_CONTEXT |
    									THREAD_IMPERSONATE |
    									THREAD_QUERY_INFORMATION  |
    									THREAD_SET_CONTEXT |
    									THREAD_SET_INFORMATION |
    									THREAD_SET_THREAD_TOKEN |
    									THREAD_SUSPEND_RESUME |
    									THREAD_TERMINATE;
    
    	handle_ = OpenThread(desiredAccess, FALSE, id);
    	if(!handle_)
    	{
    		throw WinException(	"Thread::open()",
    									"OpenThread()",
    									GetLastError());
    	}
    }
    

    Danke schon mal!
    Grüße,
    Flo



  • Keiner eine Ahnung?
    Mir ist langweilig da mein Projekt brach liegt 🙂



  • Hi

    Hast du den Adminrechte ?

    lowbyte



  • lowbyte_ schrieb:

    Hi

    Hast du den Adminrechte ?

    lowbyte

    Hi!
    Natürlich, ich kann ja den Mutterprozess bearbeiten wie ich lustig bin 🙂


Anmelden zum Antworten