Securitybaseapi.h (DuplicateToken 函式)

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 函式會建立模擬令牌,您可以在 SetThreadTokenImpersonateLoggedOnUser 等函式中使用。 DuplicateToken 所建立的令牌不能用在 CreateProcessAsUser 函式中,這需要主要令牌。 若要建立您可以傳遞至 CreateProcessAsUser 的令牌,請使用 DuplicateTokenEx 函 式。

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 securitybaseapi.h (包含 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

存取控制 概觀

基本 存取控制 函式

CreateProcessAsUser

DuplicateTokenEx

ImpersonateLoggedOnUser

SECURITY_IMPERSONATION_LEVEL

SetThreadToken