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