Функция 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 |