Condividi tramite


Funzione CreateEnvironmentBlock (userenv.h)

Recupera le variabili di ambiente per l'utente specificato. Questo blocco può quindi essere passato alla funzione CreateProcessAsUser .

Sintassi

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

Parametri

[out] lpEnvironment

Tipo: LPVOID*

Quando questa funzione restituisce, riceve un puntatore al nuovo blocco di ambiente. Il blocco di ambiente è una matrice di stringhe Unicode con terminazione null. L'elenco termina con due valori Null (\0\0).

[in, optional] hToken

Tipo: HANDLE

Token per l'utente, restituito dalla funzione LogonUser . Se si tratta di un token primario, il token deve avere TOKEN_QUERY e TOKEN_DUPLICATE accesso. Se il token è un token di rappresentazione, deve avere accesso TOKEN_QUERY . Per altre informazioni, vedere Diritti di accesso per gli oggetti Access-Token.

Se questo parametro è NULL, il blocco di ambiente restituito contiene solo variabili di sistema.

[in] bInherit

Tipo: BOOL

Specifica se ereditare dall'ambiente del processo corrente. Se questo valore è TRUE, il processo eredita l'ambiente del processo corrente. Se questo valore è FALSE, il processo non eredita l'ambiente del processo corrente.

Valore restituito

Tipo: BOOL

TRUE se ha esito positivo; in caso contrario, FALSE. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Per liberare il buffer al termine del blocco di ambiente, chiamare la funzione DestroyEnvironmentBlock .

Se il blocco di ambiente viene passato a CreateProcessAsUser, è necessario specificare anche il flag di CREATE_UNICODE_ENVIRONMENT . Dopo aver restituito CreateProcessAsUser , il nuovo processo ha una copia del blocco di ambiente e DestroyEnvironmentBlock può essere chiamato in modo sicuro.

Le variabili di ambiente specifiche dell'utente, ad esempio %USERPROFILE% vengono impostate solo quando il profilo dell'utente viene caricato. Per caricare il profilo di un utente, chiamare la funzione LoadUserProfile .

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione userenv.h
Libreria Userenv.lib
DLL Userenv.dll

Vedi anche

Createprocessasuser

DestroyEnvironmentBlock

Logonuser

Panoramica dei profili utente

Informazioni di riferimento per i profili utente