createEnvironmentBlock 函式 (userenv.h)

擷取指定使用者的環境變數。 此區塊接著可以傳遞至 CreateProcessAsUser 函 式。

語法

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

參數

[out] lpEnvironment

類型: LPVOID*

當此函式傳回時,會收到新環境區塊的指標。 環境區塊是 Null 終止 Unicode 字串的陣列。 清單結尾為兩個 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

使用者設定檔概觀

使用者設定檔參考