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

Voir aussi

CreateProcessAsUser

DestroyEnvironmentBlock

LogonUser

Vue d’ensemble des profils utilisateur

Informations de référence sur les profils utilisateur