我想讓我的服務以用戶的身份創建一個進程,但我必須先獲取該令牌。由於某種原因,我的函數不斷返回錯誤87,這是ERROR_INVALID_PARAMETER。有人知道爲什麼它一直在困擾我幾個小時,參數從我看到的是正確的。謝謝。C++ WTSQueryUserToken函數錯誤
這裏是我的代碼:
PHANDLE currentToken = 0;
ULONG id = WTSGetActiveConsoleSessionId();
printf("ULONG = %d", id);
// Get token of the logged in user by the active session ID
BOOL bRet = WTSQueryUserToken(id, currentToken);
if (bRet == false)
{
printf("ERROR: %d", GetLastError());
}
請參閱我試過這個,但Enumeratesesions只是給我一個錯誤,它不能建立一個RFC服務器。開始認爲它可能不可能在Win7上,因爲:http://msdn.microsoft.com/en-us/windows7trainingcourse_sessionisolation_unit.aspx – JimmySmithJR
聽起來像一個權限問題,因爲有幾個RDS權限,你需要枚舉會話, [請參閱此文檔鏈接](http://msdn.microsoft.com/en-us/library/windows/desktop/aa383488(v = vs.85).aspx)以獲取更多信息。 – 2013-06-30 17:54:06
我也處於相同的位置 - 使用enurmate會話產生正確的會話ID(1 - 通過在命令提示符下使用tasklist進行驗證,我可以看到我的會話ID與正在運行的應用程序的會話ID)但是,使用與上面相同的代碼,給我錯誤87回來。 – Tommy