WlxLoggedOutSAS 函数 (winwlx.h)
[自 Windows Server 2008 和 Windows Vista 起,WlxLoggedOutSAS 函数不再可用。]
WlxLoggedOutSAS 函数必须由替换 GINA DLL 实现。 Winlogon 在没有用户登录的情况下收到 安全关注序列 (SAS) 事件时调用此函数。
语法
int WlxLoggedOutSAS(
[in] PVOID pWlxContext,
[in] DWORD dwSasType,
[out] PLUID pAuthenticationId,
[in, out] PSID pLogonSid,
[out] PDWORD pdwOptions,
[out] PHANDLE phToken,
[out] PWLX_MPR_NOTIFY_INFO pNprNotifyInfo,
[out] PVOID *pProfile
);
参数
[in] pWlxContext
指向与此窗口工作站关联的 GINA 上下文的指针。 当 Winlogon 为此工作站调用 WlxInitialize 时,GINA 将返回此上下文值。
[in] dwSasType
指定发生的 SAS 的类型。 保留从零到WLX_SAS_TYPE_MAX_MSFT_VALUE的值以定义标准 Microsoft SAS 类型。 GINA 开发人员可以使用大于 WLX_SAS_TYPE_MAX_MSFT_VALUE 的值定义其他 SAS 类型。
预定义了以下 SAS 类型。
Value | 含义 |
---|---|
|
指示用户已键入标准 CTRL+ALT+DEL SAS。 |
|
指示智能卡已插入兼容设备。 |
|
指示已从兼容设备中删除智能卡。 |
|
指示在指定的超时期限内未收到任何用户输入。 |
[out] pAuthenticationId
指定与当前 登录会话关联的身份验证标识符。 可以通过调用 GetTokenInformation 获取 LogonUser 函数返回的令牌的TOKEN_STATISTICS结构来获取此值。
[in, out] pLogonSid
输入时,此参数指向当前登录会话唯一 的安全标识符 (SID) 。 Winlogon 使用此 SID 更改窗口工作站和应用程序桌面上的保护,以便新的登录用户可以访问它们。
输出时,Winlogon 提供 SID。 还可以通过使用 GetTokenInformation 函数检索 LogonUser 函数返回的令牌的TOKEN_GROUPS结构来获取 SID。 为此,请使用 SE_GROUP_LOGON_ID 属性搜索 TOKEN_GROUPS 结构中返回的组的数组。
[out] pdwOptions
指向包含登录选项集的 DWORD 的指针。 定义了以下选项。
Value | 含义 |
---|---|
|
指示 Winlogon 不得加载已登录用户的配置文件。 GINA DLL 将处理此活动,或者用户不需要配置文件。 |
[out] phToken
指向句柄变量的指针。 登录操作成功后,将此句柄设置为表示已登录用户的令牌。 使用 LogonUser 函数获取此令牌,然后当用户注销时,Winlogon 会关闭此句柄并调用 WlxLogoff 函数。
如果在调用 WlxLogoff 函数后需要此句柄,请在将其返回到 Winlogon 之前复制该句柄。
[out] pNprNotifyInfo
指向 WLX_MPR_NOTIFY_INFO 结构的指针,该结构包含用户的域、用户名和密码信息。 Winlogon 将使用此信息向网络提供商提供标识和身份验证信息。
GINA 不需要返回密码信息。 Winlogon 将忽略 结构中的任何 NULL 字段。 使用 LocalAlloc 分配每个字符串;当不再需要它们时,Winlogon 将释放它们。
GINA 应为完整的会话目录功能提供域、用户和密码值。 如果未提供密码,会话目录将要求用户在连接到服务器之前输入密码两次。
有关保护密码的信息,请参阅 处理密码。
[out] pProfile
从成功的身份验证返回后, pProfile 参数指向 WLX_PROFILE_V1_0 或 WLX_PROFILE_V2_0 结构。 结构中的第一个 DWORD 指示它是哪个结构。 Winlogon 使用此结构加载已登录用户的配置文件,并在不再需要该结构时释放与该结构关联的内存。
返回值
如果函数失败,该函数将返回零。
如果函数成功,则返回以下值之一。
返回代码 | 说明 |
---|---|
|
指示用户已登录。 |
|
指示记录的尝试失败或已取消。 |
|
指示用户请求关闭系统。 |
注解
在调用 WlxLoggedOutSAS 之前,Winlogon 设置桌面状态,使当前桌面为 Winlogon 桌面,并设置工作站状态,使桌面处于锁定状态。
请勿在 WlxLoggedOutSAS 中激活用户 shell 程序。 用户 shell 程序应始终在 WlxActivateUserShell 中激活。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winwlx.h |