Función SaferComputeTokenFromLevel (winsafer.h)

La función SaferComputeTokenFromLevel restringe un token mediante restricciones especificadas por un SAFER_LEVEL_HANDLE.

Sintaxis

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 contiene las restricciones que se van a colocar en el token de entrada. No pase identificadores con un LevelId de SAFER_LEVELID_FULLYTRUSTED o SAFER_LEVELID_DISALLOWED a esta función. Esto se debe a que SAFER_LEVELID_FULLYTRUSTED no está restringido y SAFER_LEVELID_DISALLOWED no contiene un token.

[in, optional] InAccessToken

Token que se va a restringir. Si este parámetro es NULL, se usará el token del subproceso actual. Si el subproceso actual no contiene un token, se usa el token del proceso actual.

[out] OutAccessToken

Token restringido resultante.

[in] dwFlags

Especifica el comportamiento del método . El valor puede ser NULL o uno o varios de los valores siguientes combinados mediante una operación OR bit a bit.

Valor Significado
SAFER_TOKEN_NULL_IF_EQUAL
1 (0x1)
Si el parámetro OutAccessToken no es más restrictivo que el parámetro InAccessToken , el parámetro OutAccessToken devuelve NULL.
SAFER_TOKEN_COMPARE_ONLY
2 (0x2)
El token especificado por el parámetro InAccessToken se compara con el token que se crearía si se aplicaran las restricciones especificadas por el parámetro LevelHandle . El token restringido no se crea realmente.

En la salida, el valor del parámetro lpReserved especifica el resultado de la comparación.

SAFER_TOKEN_MAKE_INERT
4 (0x4)
Si se establece esta marca, el sistema no comprueba las reglas de AppLocker ni aplica directivas de restricción de software. Para AppLocker, esta marca deshabilita las comprobaciones de las cuatro colecciones de reglas: Ejecutable, Windows Installer, Script y DLL.

Establezca esta marca al crear un programa de instalación que deba ejecutar archivos DLL extraídos durante la instalación.

Se puede consultar un token para que exista esta marca mediante GetTokenInformation.

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: No se admite AppLocker.

SAFER_TOKEN_WANT_FLAGS
8 (0x8)
En la salida, el valor del parámetro lpReserved especifica el conjunto de marcas usadas para crear el token restringido.

[in, out, optional] lpReserved

Si se establece la marca SAFER_TOKEN_COMPARE_ONLY , este parámetro, en la salida, especifica el resultado de la comparación de tokens. El valor de salida es un LPDWORD. Un valor de –1 indica que el token resultante tendría menos privilegios que el token especificado por el parámetro InAccessToken .

Si se establece la marca de SAFER_TOKEN_WANT_FLAGS y no se establece la marca de SAFER_TOKEN_COMPARE_ONLY , este parámetro es un valor LPDWORD que especifica las marcas usadas para crear el token restringido.

Valor devuelto

TRUE si la función se realiza correctamente; de lo contrario, FALSE. Para obtener información extendida, llame a GetLastError.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winsafer.h
Library Advapi32.lib
Archivo DLL Advapi32.dll
Conjunto de API ext-ms-win-advapi32-safer-l1-1-0 (introducido en Windows 8)