WlxLoggedOutSAS 函数 (winwlx.h)

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

WlxLoggedOutSAS 函数必须由替换 GINA DLL 实现。 Winlogon 在没有用户登录的情况下收到 安全关注序列 (SAS) 事件时调用此函数。

注意 在 Windows Vista 中忽略 GINA DLL。
 

语法

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 含义
WLX_SAS_TYPE_CTRL_ALT_DEL
指示用户已键入标准 CTRL+ALT+DEL SAS。
WLX_SAS_TYPE_SC_INSERT
指示智能卡已插入兼容设备。
WLX_SAS_TYPE_SC_REMOVE
指示已从兼容设备中删除智能卡。
WLX_SAS_TYPE_TIMEOUT
指示在指定的超时期限内未收到任何用户输入。

[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 含义
WLX_LOGON_OPT_NO_PROFILE
指示 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_0WLX_PROFILE_V2_0 结构。 结构中的第一个 DWORD 指示它是哪个结构。 Winlogon 使用此结构加载已登录用户的配置文件,并在不再需要该结构时释放与该结构关联的内存。

返回值

如果函数失败,该函数将返回零。

如果函数成功,则返回以下值之一。

返回代码 说明
WLX_SAS_ACTION_LOGON
指示用户已登录。
WLX_SAS_ACTION_NONE
指示记录的尝试失败或已取消。
WLX_SAS_ACTION_SHUTDOWN
指示用户请求关闭系统。

注解

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

请勿在 WlxLoggedOutSAS 中激活用户 shell 程序。 用户 shell 程序应始终在 WlxActivateUserShell 中激活。

要求

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

另请参阅

WlxActivateUserShell

WlxInitialize