Compartir a través de


Función CreateEnvironmentBlock (userenv.h)

Recupera las variables de entorno para el usuario especificado. A continuación, este bloque se puede pasar a la función CreateProcessAsUser .

Sintaxis

BOOL CreateEnvironmentBlock(
  [out]          LPVOID *lpEnvironment,
  [in, optional] HANDLE hToken,
  [in]           BOOL   bInherit
);

Parámetros

[out] lpEnvironment

Tipo: LPVOID*

Cuando se devuelve esta función, recibe un puntero al nuevo bloque de entorno. El bloque de entorno es una matriz de cadenas Unicode terminadas en NULL. La lista termina con dos valores NULL (\0\0).

[in, optional] hToken

Tipo: HANDLE

Token para el usuario, devuelto por la función LogonUser . Si se trata de un token principal, el token debe tener TOKEN_QUERY y TOKEN_DUPLICATE acceso. Si el token es un token de suplantación, debe tener TOKEN_QUERY acceso. Para obtener más información, vea Derechos de acceso para objetos Access-Token.

Si este parámetro es NULL, el bloque de entorno devuelto contiene solo variables del sistema.

[in] bInherit

Tipo: BOOL

Especifica si se hereda del entorno del proceso actual. Si este valor es TRUE, el proceso hereda el entorno del proceso actual. Si este valor es FALSE, el proceso no hereda el entorno del proceso actual.

Valor devuelto

Tipo: BOOL

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

Comentarios

Para liberar el búfer cuando haya terminado con el bloque de entorno, llame a la función DestroyEnvironmentBlock .

Si el bloque de entorno se pasa a CreateProcessAsUser, también debe especificar la marca CREATE_UNICODE_ENVIRONMENT . Una vez devuelto CreateProcessAsUser , el nuevo proceso tiene una copia del bloque de entorno y se puede llamar a DestroyEnvironmentBlock de forma segura.

Las variables de entorno específicas del usuario como %USERPROFILE% solo se establecen cuando se carga el perfil del usuario. Para cargar el perfil de un usuario, llame a la función LoadUserProfile .

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado userenv.h
Library Userenv.lib
Archivo DLL Userenv.dll

Consulte también

CreateProcessAsUser

DestroyEnvironmentBlock

LogonUser

Introducción a los perfiles de usuario

Referencia de perfiles de usuario