Share via


サポートされているダイアログ ボックス サービスのタイムアウト操作

Winlogon には、セキュリティで保護されたダイアログ ボックス用とスクリーン セーバーのアクティブ化と終了用の 2 つのタイムアウト操作が実装されています。

ログオンやワークステーションのロック解除などのセキュリティで保護されたダイアログ ボックスを表示すると、Winlogon はダイアログ ボックスをタイムアウトさせ、適切な結果コードをダイアログ ボックス プロシージャに返すことができます。 Winlogon には、 GINA のダイアログ ボックスサポート機能のセットが用意されています。 GINA と Winlogon がダイアログ ボックスを適切に制御できるように、GINA は Windows に対応する関数の代わりにこれらの関数を使用する必要があります。 これらの関数の Winlogon バージョンを使用しないと、承認されていないユーザーがシステムにアクセスする可能性があります。

Winlogon ダイアログ ボックス サービスは、次のサポート機能によって提供されます。

サポート関数 説明
WlxMessageBox Windows MessageBox 関数と同様です。
WlxDialogBox Windows DialogBox 関数と同様です。
WlxDialogBoxIndirect Windows DialogBoxIndirect 関数と同様です。
WlxDialogBoxParam Windows DialogBoxParam 関数と同様です。
WlxDialogBoxIndirectParam Windows DialogBoxIndirectParam 関数と同様です。

 

GINA DLL は、Winlogon からWLX_WM_SASメッセージを受信することもできます。 これらのメッセージは、 セキュア アテンション シーケンス (SAS) を受信した場合にアクティブなダイアログ ボックスに送信されます。 これは、GINA がスマート カードの一致する PIN を要求する処理中で、スマート カードリーダーからカードが削除されている場合に便利です。 Winlogon では、ダイアログ ボックス操作中に SAS イベントが発生したときに、WLX_DLG_SASを EndDialog 結果コードとして使用します。

タイムアウトもこの方法で配信されます。 WLX_WM_SAS メッセージは、WLX_SAS_TYPE_SCRNSVR_TIMEOUTまたはWLX_SAS_TYPE_TIMEOUTと共に送信されます。 ダイアログ ボックスは、GINA 開発者がタイムアウト通知をフックできるようにするための適切な終了コードで終了します。

GINA ダイアログ ボックスは、コード WLX_DLG_USER_LOGOFFを使用して Winlogon によって終了できます。 これは、ユーザーがダイアログ ボックスの実行中にログオフしたことを示します (たとえば、別のスレッドから ExitWindowsEx 関数を呼び出す)。

Winlogon の初期化

Winlogon の状態

GINA へのメッセージの送信

Winlogon サポート関数