DuplicateToken 関数 (securitybaseapi.h)
DuplicateToken 関数は、既に存在するアクセス トークンを複製する新しいアクセス トークンを作成します。
構文
BOOL DuplicateToken(
[in] HANDLE ExistingTokenHandle,
[in] SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
[out] PHANDLE DuplicateTokenHandle
);
パラメーター
[in] ExistingTokenHandle
TOKEN_DUPLICATE アクセスで開かれたアクセス トークンへのハンドル。
[in] ImpersonationLevel
新しいトークンの偽装レベルを指定する SECURITY_IMPERSONATION_LEVEL 列挙型を指定します。
[out] DuplicateTokenHandle
重複するトークンへのハンドルを受け取る変数へのポインター。 このハンドルには、新しいトークンへのTOKEN_IMPERSONATEとTOKEN_QUERYアクセス権があります。
新しいトークンの使用が完了したら、 CloseHandle 関数を呼び出してトークン ハンドルを閉じます。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
DuplicateToken 関数は偽装トークンを作成します。これは、SetThreadToken や ImpersonateLoggedOnUser などの関数で使用できます。 DuplicateToken によって作成されたトークンは、プライマリ トークンを必要とする CreateProcessAsUser 関数では使用できません。 CreateProcessAsUser に渡すことができるトークンを作成するには、DuplicateTokenEx 関数を使用します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | securitybaseapi.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |