共用方式為


WlxActivateUserShell 函式 (winwlx.h)

[WlxActivateUserShell 函式已不再可供 Windows Server 2008 和 Windows Vista 使用。]

啟動使用者殼層程式。

WlxActivateUserShell函式必須由取代GINA DLL 實作。 Winlogon 會在成功登入之後呼叫此函式,以要求 GINA 啟動使用者的殼層程式。

注意 Windows Vista 中會忽略 GINA DLL。
 

語法

BOOL WlxActivateUserShell(
  [in] PVOID pWlxContext,
  [in] PWSTR pszDesktopName,
  [in] PWSTR pszMprLogonScript,
  [in] PVOID pEnvironment
);

參數

[in] pWlxContext

與此視窗月臺相關聯的 GINA 內容指標。 這是當 Winlogon 為此月臺呼叫 WlxInitialize 時,GINA 傳回的內容值。

[in] pszDesktopName

Null 終止寬字元字串的指標,指定殼層將啟動的桌面名稱。 透過STARTUPINFO結構的lpDesktop成員,將此字串傳遞至CreateProcess 或 CreateProcessAsUser函式。

[in] pszMprLogonScript

Null 終止寬字元字串的指標,指定從網路提供者 DLL 傳回的任何腳本名稱。 網路提供者 DLL 可以傳回在登入期間執行的腳本;不過,GINA 可能會忽略它們。

[in] pEnvironment

指定進程的初始環境變數。 Winlogon 會建立環境的複本,並將它交給 GINA。 GINA 可以先修改此環境,再使用它來初始化使用者的殼層。 GINA 應該呼叫 VirtualFree 函式,以釋放配置給 pEnvironment 的記憶體。

傳回值

如果函式成功啟動殼層進程,函式會傳回 TRUE

如果函式失敗,則會傳回 FALSE。 傳回 FALSE 時,Winlogon 會取消登入程式。

備註

在呼叫 WlxActivateUserShell之前,Winlogon 會設定桌面狀態,讓目前的桌面是 Winlogon 桌面,並設定工作站狀態,讓桌面鎖定。

一律在 WlxActivateUserShell 中 啟用使用者殼層程式,而不是 WlxLoggedOutSAS。 這可讓 Winlogon 有機會更新其狀態,包括設定工作站和桌面保護,再允許執行任何登入的使用者進程。

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winwlx.h

另請參閱

WlxInitialize

WlxLoggedOutSAS

WlxLogoff