WlxActivateUserShell 函数 (winwlx.h)

[自 Windows Server 2008 和 Windows Vista 起,WlxActivateUserShell 函数不再可供使用。]

激活用户 shell 程序。

WlxActivateUserShell 函数必须由替换 GINA DLL 实现。 Winlogon 在成功登录后调用此函数,以请求 GINA 激活用户的 shell 程序。

注意 在 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 结尾的宽字符串的指针,该字符串指定要在其中启动 shell 的桌面的名称。 通过 STARTUPINFO 结构的 lpDesktop 成员将此字符串传递到 CreateProcessCreateProcessAsUser 函数。

[in] pszMprLogonScript

指向以 null 结尾的宽字符串的指针,该字符串指定从网络提供程序 DLL 返回的任何脚本名称。 网络提供程序 DLL 可以返回要在登录期间执行的脚本;但是,GINA 可能会忽略它们。

[in] pEnvironment

指定进程的初始环境变量。 Winlogon 创建环境的副本并将其交给 GINA。 GINA 可以先修改此环境,然后再使用它初始化用户的 shell。 GINA 应调用 VirtualFree 函数来释放为 pEnvironment 分配的内存。

返回值

如果函数成功启动 shell 进程,则函数返回 TRUE

如果函数失败,则返回 FALSE。 返回 FALSE 时,Winlogon 将取消进程中的登录。

注解

在调用 WlxActivateUserShell 之前,Winlogon 会设置桌面状态,使当前桌面是 Winlogon 桌面,并设置工作站状态,使桌面处于锁定状态。

始终在 WlxActivateUserShell 中激活用户 shell 程序,而不是 WlxLoggedOutSAS。 这让 Winlogon 有机会在允许运行任何登录的用户进程之前更新其状态,包括设置工作站和桌面保护。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winwlx.h

另请参阅

WlxInitialize

WlxLoggedOutSAS

WlxLogoff