0

呼び出し中に非常に一般的なバグがありますWTSQueryUserToken()。false を返し、GetLastError()show meを返しますERROR_PRIVILEGE_NOT_HELD。権限を設定しようとしましたが (OK を返します)、WTSQueryUserToken の呼び出しで同じ問題が発生しました。

LUID luid;
    bRet = LookupPrivilegeValue(NULL, SE_TCB_NAME, &luid);
    if (!bRet) {
        hr = GetLastError();
        return hr;
    }

    TOKEN_PRIVILEGES adjTokenPrivileges;// = { 0 };
    adjTokenPrivileges.PrivilegeCount = 1;
    adjTokenPrivileges.Privileges[0].Luid = luid;
    adjTokenPrivileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

    //CSampleCredential::Log("AdjustTokenPrivileges...");
    DWORD dwOldTPLen;
    bRet = AdjustTokenPrivileges(processToken, FALSE, &adjTokenPrivileges, sizeof(TOKEN_PRIVILEGES), &oldTokenPrivileges, &dwOldTPLen);
    if (bRet) {
        hr = GetLastError();
        if (hr == ERROR_SUCCESS);
        else if (hr == ERROR_NOT_ALL_ASSIGNED) {
            // Enabled by default
        }
    }
    else {
        hr = GetLastError();
        return hr;
    }
    //CSampleCredential::Log("WTSGetActiveConsoleSessionId...");
    DWORD conSessId = WTSGetActiveConsoleSessionId();
    if (conSessId == 0xFFFFFFFF) {
        // There is no session attached to the console
        return ERROR_SUCCESS;
    }

    //impersonationToken = GetCurrentUserToken();
    //CSampleCredential::Log("WTSQueryUserToken...");
    bRet = WTSQueryUserToken(conSessId, &impersonationToken);
    if (!bRet) {
        hr = GetLastError();    
        return hr;
    }

サービスの特典もOK

Twitpic を使用して Twitter で写真を共有する

OS: Windows7 64

4

0 に答える 0