Função SaferComputeTokenFromLevel (winsafer.h)

A função SaferComputeTokenFromLevel restringe um token usando restrições especificadas por um SAFER_LEVEL_HANDLE.

Sintaxe

BOOL SaferComputeTokenFromLevel(
  [in]                SAFER_LEVEL_HANDLE LevelHandle,
  [in, optional]      HANDLE             InAccessToken,
  [out]               PHANDLE            OutAccessToken,
  [in]                DWORD              dwFlags,
  [in, out, optional] LPVOID             lpReserved
);

Parâmetros

[in] LevelHandle

SAFER_LEVEL_HANDLE que contém as restrições a serem colocadas no token de entrada. Não passe identificadores com um LevelId de SAFER_LEVELID_FULLYTRUSTED ou SAFER_LEVELID_DISALLOWED para essa função. Isso ocorre porque SAFER_LEVELID_FULLYTRUSTED é irrestrito e SAFER_LEVELID_DISALLOWED não contém um token.

[in, optional] InAccessToken

Token a ser restrito. Se esse parâmetro for NULL, o token do thread atual será usado. Se o thread atual não contiver um token, o token do processo atual será usado.

[out] OutAccessToken

O token restrito resultante.

[in] dwFlags

Especifica o comportamento do método . O valor pode ser NULL ou um ou mais dos valores a seguir combinados usando uma operação OR bit a bit.

Valor Significado
SAFER_TOKEN_NULL_IF_EQUAL
1 (0x1)
Se o parâmetro OutAccessToken não for mais restritivo que o parâmetro InAccessToken , o parâmetro OutAccessToken retornará NULL.
SAFER_TOKEN_COMPARE_ONLY
2 (0x2)
O token especificado pelo parâmetro InAccessToken é comparado com o token que seria criado se as restrições especificadas pelo parâmetro LevelHandle fossem aplicadas. O token restrito não é realmente criado.

Na saída, o valor do parâmetro lpReserved especifica o resultado da comparação.

SAFER_TOKEN_MAKE_INERT
4 (0x4)
Se esse sinalizador estiver definido, o sistema não marcar regras do AppLocker nem aplicará políticas de restrição de software. Para o AppLocker, esse sinalizador desabilita as verificações de todas as quatro coleções de regras: Executável, Windows Installer, Script e DLL.

Defina esse sinalizador ao criar um programa de instalação que deve executar DLLs extraídas durante a instalação.

Um token pode ser consultado quanto à existência desse sinalizador usando GetTokenInformation.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para AppLocker.

SAFER_TOKEN_WANT_FLAGS
8 (0x8)
Na saída, o valor do parâmetro lpReserved especifica o conjunto de sinalizadores usados para criar o token restrito.

[in, out, optional] lpReserved

Se o sinalizador SAFER_TOKEN_COMPARE_ONLY estiver definido, esse parâmetro, na saída, especificará o resultado da comparação de tokens. O valor de saída é um LPDWORD. Um valor de –1 indica que o token resultante seria menos privilegiado do que o token especificado pelo parâmetro InAccessToken .

Se o sinalizador SAFER_TOKEN_WANT_FLAGS estiver definido e o sinalizador SAFER_TOKEN_COMPARE_ONLY não estiver definido, esse parâmetro será um valor LPDWORD que especifica os sinalizadores usados para criar o token restrito.

Retornar valor

TRUE se a função for bem-sucedida; caso contrário, FALSE. Para obter informações estendidas, chame GetLastError.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winsafer.h
Biblioteca Advapi32.lib
DLL Advapi32.dll
Conjunto de APIs ext-ms-win-advapi32-safer-l1-1-0 (introduzido no Windows 8)