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. GINA 會在收到 SAS 事件時呼叫 Winlogon 的 WlxSasNotify 函式
  2. Winlogon 會呼叫 GINA 的 WlxLoggedOutSAS 函式,讓 GINA 處理使用者的識別和驗證資訊。
    登入成功時,Winlogon 處於登入狀態。
使用者已登入 (GINA 會監視裝置是否有 SAS 事件) 。
  1. GINA 會在收到 SAS 事件時呼叫 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 函式。