WlxLoggedOutSAS 関数 (winwlx.h)
[WlxLoggedOutSAS 関数は、Windows Server 2008 および Windows Vista では使用できなくなりました。
WlxLoggedOutSAS 関数は、代替の GINA DLL によって実装される必要があります。 Winlogon は 、ユーザーがログオンしていない間に セキュリティで保護されたアテンション シーケンス (SAS) イベントを受信すると、この関数を呼び出します。
構文
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 の種類が事前に定義されています。
値 | 説明 |
---|---|
|
ユーザーが標準の Ctrl + Alt + DEL SAS を入力したことを示します。 |
|
スマート カードが互換性のあるデバイスに挿入されたことを示します。 |
|
スマート カードが互換性のあるデバイスから削除されたことを示します。 |
|
指定されたタイムアウト期間内にユーザー入力が受信されなかったことを示します。 |
[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 へのポインター。 次のオプションが定義されています。
値 | 説明 |
---|---|
|
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 を返します。
関数が成功すると、次のいずれかの値が返されます。
リターン コード | 説明 |
---|---|
|
ユーザーがログオンしたことを示します。 |
|
ログに記録された試行が失敗または取り消されたことを示します。 |
|
システムのシャットダウンを要求したユーザーを示します。 |
解説
WlxLoggedOutSAS を呼び出す前に、Winlogon は、現在のデスクトップが Winlogon デスクトップになるようにデスクトップの状態を設定し、デスクトップがロックされるようにワークステーションの状態を設定します。
WlxLoggedOutSAS でユーザー シェル プログラムをアクティブ化しないでください。 ユーザー シェル プログラムは常に WlxActivateUserShell でアクティブ化する必要があります。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winwlx.h |