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 |