Windows Win32Segurança & tokensadvapi32.dll
GetTokenInformation
Consulta informações de um token de acesso: usuário, grupos, privilégios, nível de integridade, e mais.
Descrição
Ponto de entrada multiplexado (via TOKEN_INFORMATION_CLASS) análogo em espírito a `getresuid`/`capget`/`getgroups` combinados do Linux.
Header:
securitybaseapi.hDLL: advapi32.dllNative API: NtQueryInformationTokenAssinatura
BOOL GetTokenInformation(
HANDLE TokenHandle,
TOKEN_INFORMATION_CLASS TokenInformationClass,
LPVOID TokenInformation,
DWORD TokenInformationLength,
PDWORD ReturnLength
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| TokenHandle | HANDLE | Handle do token, aberto com TOKEN_QUERY. |
| TokenInformationClass | TOKEN_INFORMATION_CLASS | Tipo de informação: TokenUser, TokenGroups, TokenPrivileges, TokenIntegrityLevel, etc. |
| TokenInformation | LPVOID | Buffer de destino. |
| TokenInformationLength | DWORD | Tamanho de `TokenInformation`. |
| ReturnLength | PDWORD | Recebe o tamanho real necessário/usado. |
Valor de retorno
Diferente de zero em sucesso; 0 em erro (consulte GetLastError).
Códigos de erro (GetLastError)
- ERROR_INSUFFICIENT_BUFFER(122)
- O buffer de dados é pequeno demais.
- ERROR_INVALID_HANDLE(6)
- O identificador (handle) informado é inválido.
Relacionadas
Equivalente em Linux x86_64
Linuxgetuid— O Windows não tem um UID numérico único — a identidade do processo é o SID do usuário no token de acesso, consultável via GetTokenInformation(TokenUser).Linuxcapget— Capabilities do Linux ~ privilégios do token de acesso (TokenPrivileges), embora os conjuntos e a granularidade não coincidam diretamente.