Função DuplicateToken (securitybaseapi.h)

A função DuplicateToken cria um novo token de acesso que duplica um já existente.

Sintaxe

BOOL DuplicateToken(
  [in]  HANDLE                       ExistingTokenHandle,
  [in]  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
  [out] PHANDLE                      DuplicateTokenHandle
);

Parâmetros

[in] ExistingTokenHandle

Um identificador para um token de acesso aberto com acesso TOKEN_DUPLICATE.

[in] ImpersonationLevel

Especifica um tipo enumerado SECURITY_IMPERSONATION_LEVEL que fornece o nível de representação do novo token.

[out] DuplicateTokenHandle

Um ponteiro para uma variável que recebe um identificador para o token duplicado. Esse identificador tem acesso TOKEN_IMPERSONATE e TOKEN_QUERY ao novo token.

Quando terminar de usar o novo token, chame a função CloseHandle para fechar o identificador de token.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

A função DuplicateToken cria um token de representação, que você pode usar em funções como SetThreadToken e ImpersonateLoggedOnUser. O token criado por DuplicateToken não pode ser usado na função CreateProcessAsUser , que requer um token primário. Para criar um token que você pode passar para CreateProcessAsUser, use a função DuplicateTokenEx .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho securitybaseapi.h (inclua Windows.h)
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

Visão geral do Controle de Acesso

Funções básicas de Controle de Acesso

Createprocessasuser

DuplicateTokenEx

Impersonateloggedonuser

SECURITY_IMPERSONATION_LEVEL

Setthreadtoken