0

下面的代码返回一个ERROR_INSUFFICIENT_BUFFER错误:

DWORD dwReturnedDataSize;
if (!GetTokenInformation(hToken,TokenPrivileges,NULL,0,&dwReturnedDataSize))
{
    CloseHandle(hToken);
    return false; 
}

我不知道为什么。

4

1 回答 1

5

这是因为您在模式中调用了该函数,它告诉您需要多少字节来检索此句柄的基础令牌信息数据。您现在需要使用返回的数据长度和至少该大小的缓冲区进行第二次调用。

文档很有帮助。

ReturnLength [出]

指向变量的指针,该变量接收 TokenInformation 参数指向的缓冲区所需的字节数。如果此值大于 TokenInformationLength 参数中指定的值,则函数将失败并且缓冲区中不存储任何数据。

于 2013-02-25T18:17:43.517 回答