Condividi tramite


Funzione LoadUserProfileW (userenv.h)

Carica il profilo dell'utente specificato. Il profilo può essere un profilo utente locale o un profilo utente mobile .

Sintassi

USERENVAPI BOOL LoadUserProfileW(
  [in]      HANDLE         hToken,
  [in, out] LPPROFILEINFOW lpProfileInfo
);

Parametri

[in] hToken

Tipo: HANDLE

Token per l'utente, restituito dal LogonUser, CreateRestrictedToken, DuplicateToken, OpenProcessTokeno funzione OpenThreadToken. Il token deve avere accesso TOKEN_QUERY, TOKEN_IMPERSONATEe TOKEN_DUPLICATE. Per altre informazioni, vedere Access Rights for Access-Token Objects.

[in, out] lpProfileInfo

Tipo: LPPROFILEINFO

Puntatore a una struttura PROFILEINFO. LoadUserProfile ha esito negativo e restituisce ERROR_INVALID_PARAMETER se il membro dwSize della struttura non è impostato su o se il membro lpUserName è NULL. Per altre informazioni, vedere Osservazioni.

Valore restituito

Tipo: bool

true se ha esito positivo; in caso contrario, FALSE. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

La funzione ha esito negativo e restituisce ERROR_INVALID_PARAMETER se il membro dwSize della struttura in lpProfileInfo non è impostato su o se il membro lpUserName è NULL.

Osservazioni

Quando un utente accede in modo interattivo, il sistema carica automaticamente il profilo dell'utente. Se un servizio o un'applicazione rappresenta un utente, il sistema non carica il profilo dell'utente. Di conseguenza, il servizio o l'applicazione deve caricare il profilo dell'utente con LoadUserProfile.

I servizi e le applicazioni che chiamano LoadUserProfile devono verificare se l'utente ha un profilo mobile. Se l'utente dispone di un profilo mobile, specificarne il percorso come membro lpProfilePath di PROFILEINFO. Per recuperare il percorso del profilo mobile dell'utente, è possibile chiamare la funzione NetUserGetInfo, specificando il livello di informazioni 3 o 4.

Al termine della restituzione, il hProfile membro di PROFILEINFO è un handle di chiave del Registro di sistema aperto alla radice dell'hive dell'utente. È stato aperto con accesso completo (KEY_ALL_ACCESS). Se un servizio che rappresenta un utente deve leggere o scrivere nel file del Registro di sistema dell'utente, usare questo handle anziché HKEY_CURRENT_USER. Non chiudere l'handle hProfile. Passarlo invece alla funzione unloadUserProfile . Questa funzione chiude l'handle. È necessario assicurarsi che tutti gli handle delle chiavi nell'hive del Registro di sistema dell'utente siano chiusi. Se non si chiudono tutti gli handle aperti del Registro di sistema, il profilo dell'utente non viene scaricato. Per altre informazioni, vedere dei diritti di accesso e sicurezza delle chiavi del Registro di sistema e hives del Registro di sistema .

Si noti che è responsabilità dell'utente caricare l'hive del Registro di sistema dell'utente nella chiave del Registro di sistema di HKEY_USERS con la funzione LoadUserProfile prima di chiamare CreateProcessAsUser. Questo perché CreateProcessAsUser non carica il profilo dell'utente specificato in HKEY_USERS. Ciò significa che l'accesso alle informazioni nella chiave del Registro di sistema HKEY_CURRENT_USER potrebbe non produrre risultati coerenti con un normale accesso interattivo.

Il processo chiamante deve disporre dei privilegi di SE_RESTORE_NAME e SE_BACKUP_NAME. Per altre informazioni, vedere esecuzione con privilegi speciali.

A partire da Windows XP Service Pack 2 (SP2) e Windows Server 2003, il chiamante deve essere un amministratore o l'account LocalSystem. Non è sufficiente per il chiamante semplicemente rappresentare l'account amministratore o LocalSystem.

Nota

L'intestazione userenv.h definisce LoadUserProfile come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione userenv.h
libreria Userenv.lib
dll Userenv.dll

Vedere anche

PROFILEINFO

unloadUserProfile

Panoramica dei profili utente

riferimento ai profili utente