Winlogon 与 GINA 之间的交互

WinlogonGINA 必须传达初始化信息,处理 安全关注序列 (SAS) 监视和通知,并允许注销和关闭活动。 Winlogon 的状态确定调用哪个 GINA 函数来处理任何给定的 SAS 事件。 通信按此处所示的顺序进行。

注意

在 Windows Vista 中忽略 GINA DLL。

 

事件 说明
工作站启动
  1. Winlogon 调用 GINA 的 WlxNegotiate 函数,以通知 GINA 正在使用的 Winlogon 版本。
  2. Winlogon 调用 GINA 的 WlxInitialize 函数,为 GINA 提供支持函数的地址、Winlogon 的句柄,并获取 GINA (的 上下文 信息,以便在将来调用 GINA) 时使用。
    Winlogon 处于注销状态。
没有人登录 (GINA 监视设备的 SAS 事件) 。
  1. 收到 SAS 事件时,GINA 调用 Winlogon 的 WlxSasNotify 函数。
  2. Winlogon 调用 GINA 的 WlxLoggedOutSAS 函数,使 GINA 能够处理用户的标识和身份验证信息。
    登录成功后,Winlogon 将处于登录状态。
用户已登录 (GINA 监视设备的 SAS 事件) 。
  1. 收到 SAS 事件时,GINA 调用 Winlogon 的 WlxSasNotify 函数。
  2. Winlogon 调用 GINA 的 WlxLoggedOnSAS 函数,使 GINA 能够向当前登录的用户提供选项。
用户已登录并想要锁定计算机 (GINA 监视设备的 SAS 事件) 。
  1. GINA 调用 WlxSasNotify 函数。
  2. Winlogon 调用 GINA 的 WlxLoggedOnSAS 函数。
  3. GINA 返回WLX_SAS_ACTION_LOCK_WKSTA。
    Winlogon 处于工作站锁定状态。
用户已登录,工作站已锁定,并且用户想要解锁计算机 (GINA 监视设备的 SAS 事件) 。
  1. GINA 调用 WlxSasNotify 函数。
  2. Winlogon 调用 GINA 的 WlxWkstaLockedSAS 函数。
  3. GINA 返回WLX_SAS_ACTION_UNLOCK_WKSTA。
用户已登录,程序调用 ExitWindowsEx 函数 Winlogon 调用 GINA 的 WlxLogoff 函数。
用户已登录,并希望使用 SAS 注销 (GINA 监视设备的 SAS 事件) 。
  1. GINA 调用 WlxSasNotify 函数。
  2. Winlogon 调用 GINA 的 WlxLoggedOnSAS 函数。
  3. GINA 返回WLX_SAS_ACTION_LOGOFF。
  4. Winlogon 调用 GINA 的 WlxLogoff 函数。
用户已登录,并希望使用 ExitWindowsEx 注销和关闭
  1. Winlogon 调用 GINA 的 WlxLogoff 函数。
  2. Winlogon 调用 GINA 的 WlxShutdown 函数。
用户已登录,想要使用 SAS 注销和关闭 (GINA 监视设备的 SAS 事件) 。
  1. GINA 调用 WlxSasNotify 函数。
  2. Winlogon 调用 GINA 的 WlxLoggedOnSAS 函数。
  3. GINA 返回WLX_SAS_ACTION_SHUTDOWN。
  4. Winlogon 调用 GINA 的 WlxLogoff 函数。
  5. Winlogon 调用 GINA 的 WlxShutdown 函数。