Voltar à lista
Windows Win32Segurança & tokensadvapi32.dll

DuplicateTokenEx

Duplica um token de acesso, opcionalmente mudando seu tipo (primário ou de impersonation) e nível de impersonation.

Descrição

Passo comum ao implementar 'rodar como outro usuário': duplicar o token de um LogonUserW e usá-lo para CreateProcessAsUserW ou ImpersonateLoggedOnUser.

Header: securitybaseapi.hDLL: advapi32.dllNative API: NtDuplicateToken

Assinatura

BOOL DuplicateTokenEx(
    HANDLE hExistingToken,
    DWORD dwDesiredAccess,
    LPSECURITY_ATTRIBUTES lpTokenAttributes,
    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,
    TOKEN_TYPE TokenType,
    PHANDLE phNewToken
);

Parâmetros

ParâmetroTipoDescrição
hExistingTokenHANDLEToken de origem.
dwDesiredAccessDWORDDireitos de acesso do novo token.
lpTokenAttributesLPSECURITY_ATTRIBUTESAtributos de segurança, ou NULL.
ImpersonationLevelSECURITY_IMPERSONATION_LEVELSecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation.
TokenTypeTOKEN_TYPETokenPrimary ou TokenImpersonation.
phNewTokenPHANDLERecebe o handle do novo token.

Valor de retorno

Diferente de zero em sucesso; 0 em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_ACCESS_DENIED(5)
Acesso negado.
ERROR_INVALID_PARAMETER(87)
Parâmetro incorreto.

Relacionadas