Compartilhar via


Função LoadUserProfileA (userenv.h)

Carrega o perfil do usuário especificado. O perfil pode ser um perfil de usuário local ou um perfil de usuário móvel .

Sintaxe

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

Parâmetros

[in] hToken

Tipo: HANDLE

Token para o usuário, que é retornado pelo LogonUser, CreateRestrictedToken, DuplicateToken, OpenProcessToken ou função OpenThreadToken. O token deve ter acesso TOKEN_QUERY, TOKEN_IMPERSONATEe TOKEN_DUPLICATE. Para obter mais informações, consulte Access Rights for Access-Token Objects.

[in, out] lpProfileInfo

Tipo: LPPROFILEINFO

Ponteiro para uma estrutura de PROFILEINFO. loadUserProfile falhar e retornar ERROR_INVALID_PARAMETER se o membro dwSize da estrutura não estiver definido como ou se o membro lpUserName estiver NULL. Para obter mais informações, consulte Comentários.

Valor de retorno

Tipo: BOOL

verdadeiro se bem-sucedido; caso contrário, FALSE . Para obter informações de erro estendidas, chame GetLastError.

A função falhará e retornará ERROR_INVALID_PARAMETER se o dwSize membro da estrutura em lpProfileInfo não estiver definido como ou se o membro lpUserName estiver NULL.

Observações

Quando um usuário faz logon interativamente, o sistema carrega automaticamente o perfil do usuário. Se um serviço ou um aplicativo representar um usuário, o sistema não carregará o perfil do usuário. Portanto, o serviço ou aplicativo deve carregar o perfil do usuário com LoadUserProfile.

Serviços e aplicativos que chamam LoadUserProfile devem verificar se o usuário tem um perfil móvel. Se o usuário tiver um perfil móvel, especifique seu caminho como o lpProfilePath membro do PROFILEINFO. Para recuperar o caminho do perfil móvel do usuário, você pode chamar a função NetUserGetInfo, especificando o nível de informações 3 ou 4.

Após o retorno bem-sucedido, o hProfile membro do PROFILEINFO é um identificador de chave do Registro aberto na raiz do hive do usuário. Foi aberto com acesso total (KEY_ALL_ACCESS). Se um serviço que representa um usuário precisar ler ou gravar no arquivo do registro do usuário, use esse identificador em vez de HKEY_CURRENT_USER. Não feche o identificador de hProfile . Em vez disso, passe-a para a função UnloadUserProfile. Essa função fecha o identificador. Você deve garantir que todos os identificadores de chaves no hive do registro do usuário estejam fechados. Se você não fechar todos os identificadores abertos do Registro, o perfil do usuário não será descarregado. Para obter mais informações, consulte de Direitos de Acesso e Segurança de Chave do Registro e de Hives do Registro.

Observe que é sua responsabilidade carregar o hive do registro do usuário na chave do Registro HKEY_USERS com a função LoadUserProfile antes de chamar CreateProcessAsUser. Isso ocorre porque CreateProcessAsUser não carrega o perfil do usuário especificado em HKEY_USERS. Isso significa que o acesso às informações na chave do Registro HKEY_CURRENT_USER pode não produzir resultados consistentes com um logon interativo normal.

O processo de chamada deve ter os privilégios SE_RESTORE_NAME e SE_BACKUP_NAME. Para obter mais informações, consulte Em execução com privilégios especiais.

Começando com o Windows XP Service Pack 2 (SP2) e o Windows Server 2003, o chamador deve ser um administrador ou a conta LocalSystem. Não é suficiente para o chamador apenas representar o administrador ou a conta localsystem.

Nota

O cabeçalho userenv.h define LoadUserProfile como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho userenv.h
biblioteca Userenv.lib
de DLL Userenv.dll

Consulte também

PROFILEINFO

unloadUserProfile

Visão geral dos perfis de usuário

Referência de perfis de usuário