Функция CreateEnvironmentBlock (userenv.h)

Извлекает переменные среды для указанного пользователя. Затем этот блок можно передать в функцию CreateProcessAsUser .

Синтаксис

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

Параметры

[out] lpEnvironment

Тип: LPVOID*

При возврате этой функции получает указатель на новый блок среды. Блок среды представляет собой массив строк Юникода, завершаемых null. Список заканчивается двумя значениями NULL (\0\0).

[in, optional] hToken

Тип: HANDLE

Маркер для пользователя, возвращенный функцией LogonUser . Если это основной маркер, он должен иметь TOKEN_QUERY и TOKEN_DUPLICATE доступ. Если маркер является маркером олицетворения, он должен иметь TOKEN_QUERY доступ. Дополнительные сведения см. в разделе Права доступа к объектам Access-Token.

Если этот параметр имеет значение NULL, возвращаемый блок среды содержит только системные переменные.

[in] bInherit

Тип: BOOL

Указывает, следует ли наследовать среду текущего процесса. Если это значение равно TRUE, процесс наследует среду текущего процесса. Если это значение равно FALSE, процесс не наследует среду текущего процесса.

Возвращаемое значение

Тип: BOOL

Значение TRUE в случае успешного выполнения; в противном случае — FALSE. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Чтобы освободить буфер после завершения работы с блоком среды, вызовите функцию DestroyEnvironmentBlock .

Если блок среды передается в CreateProcessAsUser, необходимо также указать флаг CREATE_UNICODE_ENVIRONMENT . После возврата CreateProcessAsUser новый процесс будет иметь копию блока среды, и DestroyEnvironmentBlock можно безопасно вызвать.

Переменные среды для конкретного пользователя, такие как %USERPROFILE%, задаются только при загрузке профиля пользователя. Чтобы загрузить профиль пользователя, вызовите функцию LoadUserProfile .

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header userenv.h
Библиотека Userenv.lib
DLL Userenv.dll

См. также раздел

CreateProcessAsUser

DestroyEnvironmentBlock

Logonuser

Обзор профилей пользователей

Справочник по профилям пользователей