WlxLoggedOutSAS 関数 (winwlx.h)

[WlxLoggedOutSAS 関数は、Windows Server 2008 および Windows Vista では使用できなくなりました。

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 の種類を指定します。 0 からWLX_SAS_TYPE_MAX_MSFT_VALUEまでの値は、標準の Microsoft SAS 型を定義するために予約されています。 GINA 開発者は、WLX_SAS_TYPE_MAX_MSFT_VALUEより大きい値を使用して、追加の SAS 型を定義できます。

次の SAS の種類が事前に定義されています。

説明
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 関数を使用して SID を取得し、LogonUser 関数によって返されるトークンのTOKEN_GROUPS構造を取得することもできます。 これを行うには、SE_GROUP_LOGON_ID属性を持つグループの TOKEN_GROUPS 構造体で返される配列を検索します。

[out] pdwOptions

ログオン オプションのセットを含む DWORD へのポインター。 次のオプションが定義されています。

説明
WLX_LOGON_OPT_NO_PROFILE
Winlogon がログオン ユーザーのプロファイルを読み込む必要がないことを示します。 このアクティビティは GINA DLL によって処理されるか、ユーザーにプロファイルは必要ありません。

[out] phToken

ハンドル変数へのポインター。 ログオン操作が成功したら、このハンドルをログオンユーザーを表すトークンに設定します。 LogonUser 関数を使用してこのトークンを取得し、ユーザーがログオフすると、Winlogon はこのハンドルを閉じ、WlxLogoff 関数を呼び出します。

WlxLogoff 関数を呼び出した後にこのハンドルが必要な場合は、Winlogon に返す前にハンドルの複製を作成します。

[out] pNprNotifyInfo

ユーザー のドメイン 、ユーザー名、パスワード情報を含むWLX_MPR_NOTIFY_INFO構造体へのポインター。 Winlogon は、この情報を使用して、識別情報と認証情報をネットワーク プロバイダーに提供します。

GINA は、パスワード情報を返す必要はありません。 構造体内のすべての NULL フィールドは、Winlogon によって無視されます。 LocalAlloc を使用して各文字列を割り当てます。Winlogon は不要になったときに解放されます。

GINA では、セッション ディレクトリの完全な機能を実現するために、ドメイン、ユーザー、およびパスワードの値を指定する必要があります。 パスワードが指定されていない場合、セッション ディレクトリでは、ユーザーがサーバーに接続する前に、ユーザーにパスワードを 2 回入力する必要があります。

パスワードの保護については、「パスワードの 処理」を参照してください。

[out] pProfile

認証が成功すると、 pProfile パラメーターは WLX_PROFILE_V1_0 または WLX_PROFILE_V2_0 構造体を指します。 構造体の最初の DWORD は、それがどの構造であるかを示します。 Winlogon では、この構造体を使用してログオン ユーザーのプロファイルを読み込み、不要になった構造体に関連付けられているメモリを解放します。

戻り値

関数が失敗した場合、関数は 0 を返します。

関数が成功すると、次のいずれかの値が返されます。

リターン コード 説明
WLX_SAS_ACTION_LOGON
ユーザーがログオンしたことを示します。
WLX_SAS_ACTION_NONE
ログに記録された試行が失敗または取り消されたことを示します。
WLX_SAS_ACTION_SHUTDOWN
システムのシャットダウンを要求したユーザーを示します。

解説

WlxLoggedOutSAS を呼び出す前に、Winlogon は、現在のデスクトップが Winlogon デスクトップになるようにデスクトップの状態を設定し、デスクトップがロックされるようにワークステーションの状態を設定します。

WlxLoggedOutSAS でユーザー シェル プログラムをアクティブ化しないでください。 ユーザー シェル プログラムは常に WlxActivateUserShell でアクティブ化する必要があります。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winwlx.h

関連項目

WlxActivateUserShell

WlxInitialize