GetTokenInformation

https://msdn.microsoft.com/ja-jp/library/aa379572.aspx https://msdn.microsoft.com/ja-jp/library/aa379623.aspx https://msdn.microsoft.com/ja-jp/library/aa379624.aspx https://msdn.microsoft.com/ja-jp/library/aa379626.aspx https://msdn.microsoft.com/ja-jp/library/aa379628.aspx https://msdn.microsoft.com/ja-jp/library/aa379629.aspx https://msdn.microsoft.com/ja-jp/library/aa379630.aspx https://msdn.microsoft.com/ja-jp/library/aa379631.aspx https://msdn.microsoft.com/ja-jp/library/aa379632.aspx https://msdn.microsoft.com/ja-jp/library/aa379633.aspx https://msdn.microsoft.com/ja-jp/library/aa379634.aspx

アクセストークンに関する情報を取得します。呼び出し側のプロセスは、情報を取得するための適切なアクセス権利を備えていなければなりません。

BOOL GetTokenInformation(
  HANDLE TokenHandle,       // アクセストークンのハンドル
  TOKEN_INFORMATION_CLASS TokenInformationClass,
 // 取得したい情報のタイプ
  LPVOID TokenInformation,  // 取得したい情報のアドレス
  DWORD TokenInformationLength,
 // 情報バッファのサイズ
  PDWORD ReturnLength       // 必要なバッファサイズを保持するアドレス
);

パラメータ

TokenHandle
情報を取得したいアクセストークンを識別します。TokenInformationClass で TokenSource を指定する場合、ハンドルは TOKEN_QUERY_SOURCE アクセス権を備えていなければなりません。TokenInformationClass でほかのいずれかの値を指定する場合、ハンドルは TOKEN_QUERY アクセス権が必要です。
TokenInformationClass
関数が取得する情報のタイプを示すために、TOKEN_INFORMATION_CLASS 列挙型のいずれかの値を指定します。
TokenInformation
要求された情報を受け取るバッファへのポインタを指定します。次のリストで示す通り、TokenInformationClass パラメータで指定された情報タイプによって、このバッファに書き込まれる構造体が異なります。
TokenInformationClass 返される構造体
TokenUser バッファは、トークンのユーザーアカウントを保持する TOKEN_USER 構造体を受け取ります。
TokenGroups バッファは、トークンに関連付けられているグループアカウントを保持する TOKEN_GROUPS 構造体を受け取ります。
TokenPrivileges バッファは、トークンの特権を保持する TOKEN_PRIVILEGES 構造体を受け取ります。
TokenOwner バッファは、新しく作成されるオブジェクトの既定の所有者 SID を保持する TOKEN_OWNER 構造体を受け取ります。
TokenPrimaryGroup バッファは、新しく作成されるオブジェクトの既定のプライマリグループ SID を保持する TOKEN_PRIMARY_GROUP 構造体を受け取ります。
TokenDefaultDacl バッファは、新しく作成されるオブジェクトの既定の DACL を保持する TOKEN_DEFAULT_DACL 構造体を受け取ります。
TokenSource バッファは、トークンのソース(作成者)を保持する1つの TOKEN_SOURCE 構造体を受け取ります。この情報を取得するには、TOKEN_QUERY_SOURCE アクセス権が必要です。
TokenType バッファは、トークンがプライマリトークンか偽装トークンかを示す TOKEN_TYPE 値を受け取ります。
TokenImpersonationLevel バッファは、トークンの偽装レベルを示す SECURITY_IMPERSONATION_LEVEL 値を受け取ります。アクセストークンが偽装トークンではない場合、関数は失敗します。
TokenStatistics バッファは、トークンの統計情報を保持する TOKEN_STATISTICS 構造体を受け取ります。
TokenRestrictedSids バッファは、制限付きトークン内の制限 SID のリストを保持する TOKEN_GROUPS 構造体を受け取ります。
TokenSessionId バッファは、このトークンに関連付けられている Terminal Services セッション識別子を示す DWORD 値を受け取ります。トークンが Terminal Server コンソールセッションに関連付けられている場合、セッション識別子は 0 です。0 以外のセッション識別子は、Terminal Services クライアントセッションを意味します。Terminal Services 以外の環境では、セッション識別子は 0 です。

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

TokenInformationClass パラメータの値が TokenDefaultDacl であり、トークンに既定の DACL が割り当てられていない場合、この関数は ReturnLength が指す変数を sizeof(TOKEN_DEFAULT_DACL) に、TOKEN_DEFAULT_DACL 構造体の DefaultDacl メンバを NULL に設定します。

戻り値

関数が成功すると、0 以外の値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、GetLastError 関数を使います。

対応情報

  Windows NT/2000:Windows NT 3.1 以降
  Windows 95/98:対応していません
  ヘッダー:winbase.h 内で宣言
  インポートライブラリ:advapi32.lib を使用

参照

AdjustTokenGroupsAdjustTokenPrivilegesOpenProcessTokenOpenThreadTokenSetTokenInformation、、、、、、、、、、、

表示: