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 |
헤더 | userenv.h |
라이브러리 | Userenv.lib |
DLL | Userenv.dll |