0

以下のコードはERROR_INSUFFICIENT_BUFFERエラーを返します:

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

理由がわかりません。

4

1 に答える 1

5

これは、このハンドルの基礎となるトークン情報データを取得するために必要なバイト数を示すモードで関数を呼び出したためです。返されたデータ長と少なくともそのサイズのバッファを使用して、2 番目の呼び出しを行う必要があります。

ドキュメントは役に立ちます。

ReturnLength [アウト]

TokenInformation パラメーターが指すバッファーに必要なバイト数を受け取る変数へのポインター。この値が TokenInformationLength パラメーターで指定された値より大きい場合、関数は失敗し、バッファーにデータを格納しません。

于 2013-02-25T18:17:43.517 に答える