gpt4 book ai didi

c++ - GetTokenInformation 在 Windows Server 2003 上失败(错误 998)但在 2008 上有效

转载 作者:行者123 更新时间:2023-11-28 07:35:10 25 4
gpt4 key购买 nike

我在调用 GetTokenInformation 时遇到问题,由于某种原因,它在 Windows Server 2003 32 位上失败但在服务器 2008 64 位上成功。

    PTOKEN_USER pSIDTokenUser = NULL;
DWORD dwReturnLength;

if (!GetTokenInformation(hToken, TokenUser, NULL, 0, &dwReturnLength) && GetLastError() != ERROR_INSUFFICIENT_BUFFER)
{
//handle error
}

pSIDTokenUser = (PTOKEN_USER)new BYTE[dwReturnLength];
memset(pSIDTokenUser, 0, dwReturnLength);


if (!pSIDTokenUser)
//handle error

if (!GetTokenInformation(hToken, TokenUser, pSIDTokenUser, dwReturnLength, NULL))
//handle error

在 Windows 2003 上对 GetTokenInformation 的第二次调用总是返回 0 并出现错误 998(“对内存位置的无效访问”)。我认为它与 pSITDTokenUser 大小/对齐方式(我使用默认值)等有关,但找不到原因。

谢谢。

最佳答案

根据函数注释,最后一个参数 ReturnLength 不是可选的。不要在第二次调用中传递 NULL。您似乎在 Windows 2008 上摆脱了它。

关于c++ - GetTokenInformation 在 Windows Server 2003 上失败(错误 998)但在 2008 上有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16886041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com