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_QUERYTOKEN_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

추가 정보

CreateProcessAsUser

DestroyEnvironmentBlock

LogonUser

사용자 프로필 개요

사용자 프로필 참조