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