以下のコードはERROR_INSUFFICIENT_BUFFER
エラーを返します:
DWORD dwReturnedDataSize;
if (!GetTokenInformation(hToken,TokenPrivileges,NULL,0,&dwReturnedDataSize))
{
CloseHandle(hToken);
return false;
}
理由がわかりません。
これは、このハンドルの基礎となるトークン情報データを取得するために必要なバイト数を示すモードで関数を呼び出したためです。返されたデータ長と少なくともそのサイズのバッファを使用して、2 番目の呼び出しを行う必要があります。
ドキュメントは役に立ちます。
ReturnLength [アウト]
TokenInformation パラメーターが指すバッファーに必要なバイト数を受け取る変数へのポインター。この値が TokenInformationLength パラメーターで指定された値より大きい場合、関数は失敗し、バッファーにデータを格納しません。