Freigeben über


LoadUserProfileA-Funktion (userenv.h)

Lädt das Profil des angegebenen Benutzers. Das Profil kann ein lokales Benutzerprofil oder ein Roamingbenutzerprofilsein.

Syntax

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

Parameter

[in] hToken

Typ: HANDLE

Token für den Benutzer, der von der LogonUser, CreateRestrictedToken, DuplicateToken, OpenProcessTokenoder OpenThreadToken Funktion zurückgegeben wird. Das Token muss über TOKEN_QUERY, TOKEN_IMPERSONATEund TOKEN_DUPLICATE Zugriff verfügen. Weitere Informationen finden Sie unter Access Rights for Access-Token Objects.

[in, out] lpProfileInfo

Typ: LPPROFILEINFO

Zeigen Sie auf eine PROFILEINFO- Struktur. LoadUserProfile schlägt fehl und gibt ERROR_INVALID_PARAMETER zurück, wenn das dwSize Member der Struktur nicht auf sizeof(PROFILEINFO) festgelegt ist oder wenn das lpUserName Member NULL-ist. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Typ: BOOL-

TRUE bei erfolgreicher Ausführung; andernfalls FALSE. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Die Funktion schlägt fehl und gibt ERROR_INVALID_PARAMETER zurück, wenn das dwSize Element der Struktur bei lpProfileInfo- nicht auf sizeof(PROFILEINFO) festgelegt ist oder wenn das lpUserName Member NULL-ist.

Bemerkungen

Wenn sich ein Benutzer interaktiv anmeldet, lädt das System automatisch das Profil des Benutzers. Wenn ein Dienst oder eine Anwendung einen Benutzer imitiert, wird das Profil des Benutzers vom System nicht geladen. Daher sollte der Dienst oder die Anwendung das Profil des Benutzers mit LoadUserProfile-laden.

Dienste und Anwendungen, die LoadUserProfile- aufrufen, sollten überprüfen, ob der Benutzer über ein Roamingprofil verfügt. Wenn der Benutzer über ein Roamingprofil verfügt, geben Sie seinen Pfad als lpProfilePath- Mitglied von PROFILEINFOan. Um den Roamingprofilpfad des Benutzers abzurufen, können Sie die NetUserGetInfo--Funktion aufrufen und die Informationsebene 3 oder 4 angeben.

Bei erfolgreicher Rückgabe ist das hProfile Mitglied von PROFILEINFO ein Registrierungsschlüsselhandle, das im Stammverzeichnis der Struktur des Benutzers geöffnet wird. Sie wurde mit vollzugriff (KEY_ALL_ACCESS) geöffnet. Wenn ein Dienst, der die Identität eines Benutzers angibt, die Registrierungsdatei des Benutzers lesen oder schreiben muss, verwenden Sie dieses Handle anstelle von HKEY_CURRENT_USER. Schließen Sie das hProfile- Handle nicht. Übergeben Sie sie stattdessen an die UnloadUserProfile--Funktion. Diese Funktion schließt das Handle. Sie sollten sicherstellen, dass alle Handles für Schlüssel in der Registrierungsstruktur des Benutzers geschlossen sind. Wenn Sie nicht alle geöffneten Registrierungshandles schließen, kann das Profil des Benutzers nicht entladen werden. Weitere Informationen finden Sie unter Registrierungsschlüsselsicherheit und Zugriffsberechtigungen und Registrierungsstruktur.

Beachten Sie, dass es Ihre Verantwortung ist, die Registrierungsstruktur des Benutzers in den HKEY_USERS Registrierungsschlüssel mit der LoadUserProfile--Funktion zu laden, bevor Sie CreateProcessAsUser-aufrufen. Dies liegt daran, dass CreateProcessAsUser- das Profil des angegebenen Benutzers nicht in HKEY_USERSlädt. Dies bedeutet, dass der Zugriff auf Informationen im HKEY_CURRENT_USER Registrierungsschlüssel möglicherweise keine Ergebnisse erzeugt, die mit einer normalen interaktiven Anmeldung übereinstimmen.

Der Aufrufvorgang muss über die SE_RESTORE_NAME und SE_BACKUP_NAME Berechtigungen verfügen. Weitere Informationen finden Sie unter Ausführen mit speziellen Rechten.

Ab Windows XP Service Pack 2 (SP2) und Windows Server 2003 muss der Aufrufer ein Administrator oder das LocalSystem-Konto sein. Es reicht nicht aus, dass der Aufrufer lediglich die Identität des Administrator- oder LocalSystem-Kontos annehmen kann.

Anmerkung

Der Header "userenv.h" definiert LoadUserProfile als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- userenv.h
Library Userenv.lib
DLL- Userenv.dll

Siehe auch

PROFILEINFO-

UnloadUserProfile-

übersicht über Benutzerprofile

Referenz zu Benutzerprofilen