Compartir a través de


Función LoadUserProfileA (userenv.h)

Carga el perfil del usuario especificado. El perfil puede ser un perfil de usuario local o un perfil de usuario móvil .

Sintaxis

USERENVAPI BOOL LoadUserProfileA(
  [in]      HANDLE         hToken,
  [in, out] LPPROFILEINFOA lpProfileInfo
);

Parámetros

[in] hToken

Tipo: HANDLE de

Token para el usuario, que devuelve el LogonUser, CreateRestrictedToken, DuplicateToken, OpenProcessTokeno función openThreadToken. El token debe tener acceso TOKEN_QUERY, TOKEN_IMPERSONATEy TOKEN_DUPLICATE. Para obtener más información, vea Derechos de acceso para Access-Token Objetos.

[in, out] lpProfileInfo

Tipo: LPPROFILEINFO

Puntero a una estructura PROFILEINFO. error LoadUserProfile y devuelve ERROR_INVALID_PARAMETER si el miembro dwSize de la estructura no está establecido en o si el miembro lpUserName es NULL. Para obtener más información, vea Comentarios.

Valor devuelto

Tipo: BOOL de

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

La función produce un error y devuelve ERROR_INVALID_PARAMETER si el miembro dwSize de la estructura en lpProfileInfo no está establecido en o si el miembro lpUserName es null.

Observaciones

Cuando un usuario inicia sesión de forma interactiva, el sistema carga automáticamente el perfil del usuario. Si un servicio o una aplicación suplanta a un usuario, el sistema no carga el perfil del usuario. Por lo tanto, el servicio o la aplicación deben cargar el perfil del usuario con LoadUserProfile.

Los servicios y las aplicaciones que llaman a LoadUserProfile deben comprobar si el usuario tiene un perfil móvil. Si el usuario tiene un perfil móvil, especifique su ruta de acceso como el lpProfilePath miembro de PROFILEINFO. Para recuperar la ruta de acceso de perfil móvil del usuario, puede llamar a la función NetUserGetInfo, especificando el nivel de información 3 o 4.

Tras la devolución correcta, el hProfile miembro de PROFILEINFO es un identificador de clave del Registro abierto a la raíz del subárbol del usuario. Se ha abierto con acceso completo (KEY_ALL_ACCESS). Si un servicio que suplanta a un usuario debe leer o escribir en el archivo del registro del usuario, use este identificador en lugar de HKEY_CURRENT_USER. No cierre el identificador de hProfile. En su lugar, páselo a la función UnloadUserProfile . Esta función cierra el identificador. Debe asegurarse de que todos los identificadores de las claves del subárbol del registro del usuario estén cerrados. Si no cierra todos los identificadores del registro abiertos, el perfil del usuario no se puede descargar. Para obtener más información, consulte derechos de acceso y seguridad de claves del Registro y hives del Registro de .

Tenga en cuenta que es su responsabilidad cargar el subárbol del Registro del usuario en la clave del Registro de HKEY_USERS con la función LoadUserProfile antes de llamar a CreateProcessAsUser. Esto se debe a que createProcessAsUser no carga el perfil del usuario especificado en HKEY_USERS. Esto significa que el acceso a la información de la clave del Registro de HKEY_CURRENT_USER puede no generar resultados coherentes con un inicio de sesión interactivo normal.

El proceso de llamada debe tener los privilegios SE_RESTORE_NAME y SE_BACKUP_NAME. Para obtener más información, vea En ejecución con privilegios especiales.

A partir de Windows XP Service Pack 2 (SP2) y Windows Server 2003, el autor de la llamada debe ser administrador o la cuenta localSystem. No es suficiente que el autor de la llamada simplemente suplanta al administrador o a la cuenta localSystem.

Nota

El encabezado userenv.h define LoadUserProfile como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de userenv.h
biblioteca de Userenv.lib
DLL de Userenv.dll

Consulte también

PROFILEINFO

UnloadUserProfile

Información general de perfiles de usuario de

de referencia de perfiles de usuario de