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 函数以关闭令牌句柄。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 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 |