Problem mit OpenProcessToken und CloseHandle



  • Hi Leute,

    ich schreib mir zur Zeit einen Service, der mir Infos ueber ein AccesToken ausgibt (user + die groups die dabei sind). Dazu benutz ich folgenden Code:

    HANDLE hProc;
    	HANDLE hToken;
    
    	hProc = OpenProcess(PROCESS_QUERY_INFORMATION , FALSE, PID);
    
    	if(hProc != NULL)
    	{
    		if( OpenProcessToken(hProc,TOKEN_QUERY, &hToken) )
    		{
    			DebugOutputF("Get info for token: 0x%x\n", hToken);
    			FillUser(hToken, pTokenInfo);
    			FillGroups(hToken, pTokenInfo);
    
    			DebugOutputF("Close info token: 0x%x\n", hToken);
    			if(CloseHandle(hProc) == 0)
    				DebugOutputF("Error CloseHandle:%u\n", GetLastError());
    
    		}
    		CloseHandle(hProc);
    	}
    

    Wie man ja sieht schließ ich die Token alle wieder ordnungsgemaess. Jetzt ist aber das Problem, dass im ProcessExplorer unter Handles die ganzen Token als geoeffnet dargestellt werden.

    Hat vielleicht wer eine Ahnung warum das so ist!?

    Greetz



  • Ich meine mal gelesen zu haben, dass ein CloseHandle() dafür nicht reicht..
    Die Funktion die du suchst müsste TerminateProcess() oder ExitProcess() sein.

    Unter google müsstest du mehr dazu finden.



  • NEO.PIXEL schrieb:

    Ich meine mal gelesen zu haben, dass ein CloseHandle() dafür nicht reicht..
    Die Funktion die du suchst müsste TerminateProcess() oder ExitProcess() sein.

    Unter google müsstest du mehr dazu finden.

    Lol troll Versuch?

    MSDN schrieb:

    Close the access token handle returned through the TokenHandle parameter by calling CloseHandle.



  • Ok sorry.. Wenn Microsoft das so sagt, dann wird das wohl stimmen :p


Anmelden zum Antworten