CreateEnvironmentBlock, fonction (userenv.h)
Récupère les variables d’environnement pour l’utilisateur spécifié. Ce bloc peut ensuite être passé à la fonction CreateProcessAsUser .
Syntaxe
BOOL CreateEnvironmentBlock(
[out] LPVOID *lpEnvironment,
[in, optional] HANDLE hToken,
[in] BOOL bInherit
);
Paramètres
[out] lpEnvironment
Type : LPVOID*
Lorsque cette fonction retourne, reçoit un pointeur vers le nouveau bloc d’environnement. Le bloc d’environnement est un tableau de chaînes Unicode terminées par null. La liste se termine par deux valeurs null (\0\0).
[in, optional] hToken
Type : HANDLE
Jeton pour l’utilisateur, retourné à partir de la fonction LogonUser . S’il s’agit d’un jeton principal, le jeton doit avoir un accès TOKEN_QUERY et TOKEN_DUPLICATE . Si le jeton est un jeton d’emprunt d’identité, il doit avoir un accès TOKEN_QUERY . Pour plus d’informations, consultez Droits d’accès pour les objets Access-Token.
Si ce paramètre a la valeur NULL, le bloc d’environnement retourné contient uniquement des variables système.
[in] bInherit
Type : BOOL
Spécifie s’il faut hériter de l’environnement du processus actuel. Si cette valeur est TRUE, le processus hérite de l’environnement du processus actuel. Si cette valeur est FALSE, le processus n’hérite pas de l’environnement du processus actuel.
Valeur retournée
Type : BOOL
TRUE en cas de réussite ; sinon, FALSE. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Pour libérer la mémoire tampon lorsque vous avez terminé le bloc d’environnement, appelez la fonction DestroyEnvironmentBlock .
Si le bloc d’environnement est passé à CreateProcessAsUser, vous devez également spécifier l’indicateur CREATE_UNICODE_ENVIRONMENT . Une fois CreateProcessAsUser retourné, le nouveau processus a une copie du bloc d’environnement et DestroyEnvironmentBlock peut être appelé en toute sécurité.
Les variables d’environnement spécifiques à l’utilisateur telles que %USERPROFILE% ne sont définies que lorsque le profil de l’utilisateur est chargé. Pour charger le profil d’un utilisateur, appelez la fonction LoadUserProfile .
Configuration requise
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | userenv.h |
Bibliothèque | Userenv.lib |
DLL | Userenv.dll |