Freigeben über


CreateEnvironmentBlock-Funktion (userenv.h)

Ruft die Umgebungsvariablen für den angegebenen Benutzer ab. Dieser Block kann dann an die CreateProcessAsUser-Funktion übergeben werden.

Syntax

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

Parameter

[out] lpEnvironment

Typ: LPVOID*

Wenn diese Funktion zurückgibt, empfängt einen Zeiger auf den neuen Umgebungsblock. Der Umgebungsblock ist ein Array von Unicode-Zeichenfolgen, die null enden. Die Liste endet mit zwei NULL-Werten (\0\0).

[in, optional] hToken

Typ: HANDLE

Token für den Benutzer, das von der LogonUser-Funktion zurückgegeben wird. Wenn es sich um ein primäres Token handelt, muss das Token über TOKEN_QUERY und TOKEN_DUPLICATE Zugriff verfügen. Wenn das Token ein Identitätswechseltoken ist, muss es über TOKEN_QUERY Zugriff verfügen. Weitere Informationen finden Sie unter Zugriffsrechte für Access-Token-Objekte.

Wenn dieser Parameter NULL ist, enthält der zurückgegebene Umgebungsblock nur Systemvariablen.

[in] bInherit

Typ: BOOL

Gibt an, ob von der Umgebung des aktuellen Prozesses geerbt werden soll. Wenn dieser Wert TRUE ist, erbt der Prozess die Umgebung des aktuellen Prozesses. Wenn dieser Wert FALSE ist, erbt der Prozess nicht die Umgebung des aktuellen Prozesses.

Rückgabewert

Typ: BOOL

TRUE , wenn erfolgreich; andernfalls FALSE. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Um den Puffer frei zu geben, wenn Sie mit dem Umgebungsblock fertig sind, rufen Sie die DestroyEnvironmentBlock-Funktion auf.

Wenn der Umgebungsblock an CreateProcessAsUser übergeben wird, müssen Sie auch das flag CREATE_UNICODE_ENVIRONMENT angeben. Nachdem CreateProcessAsUser zurückgegeben wurde, verfügt der neue Prozess über eine Kopie des Umgebungsblocks, und DestroyEnvironmentBlock kann sicher aufgerufen werden.

Benutzerspezifische Umgebungsvariablen wie %USERPROFILE% werden nur festgelegt, wenn das Profil des Benutzers geladen wird. Um das Profil eines Benutzers zu laden, rufen Sie die LoadUserProfile-Funktion auf.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile userenv.h
Bibliothek Userenv.lib
DLL Userenv.dll

Weitere Informationen

CreateProcessAsUser

DestroyEnvironmentBlock

LogonUser

Übersicht über Benutzerprofile

Referenz zu Benutzerprofilen