Msv1_0SubAuthenticationRoutine関数 (subauth.h)
Msv1_0SubAuthenticationRoutine関数は、クライアント/サーバー固有の認証を実行します。
セキュリティ アカウント マネージャー (SAM) データベースからのセキュリティ プリンシパルの資格情報と情報は、認証のためにこの関数に渡されます。
この関数は、MSV1_0認証パッケージで使用するカスタムサブ認証パッケージ DLL によって実装されます。
Msv1_0SubAuthenticationRoutine関数は、非対話型認証の場合にのみ呼び出され、アカウントが存在する認証サーバー上でのみ呼び出され、レジストリ内の正しいキーの下にサブ認証 DLL が登録されている場合にのみ呼び出されます。
構文
NTSTATUS Msv1_0SubAuthenticationRoutine(
[in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
[in] PVOID LogonInformation,
[in] ULONG Flags,
[in] PUSER_ALL_INFORMATION UserAll,
[out] PULONG WhichFields,
[out] PULONG UserFlags,
[out] PBOOLEAN Authoritative,
[out] PLARGE_INTEGER LogoffTime,
[out] PLARGE_INTEGER KickoffTime
);
パラメーター
[in] LogonLevel
LogonInformation パラメーターで指定された情報のレベルを指定します。 通常、このパラメーターは NetlogonInteractiveInformation に設定されます。
[in] LogonInformation
NETLOGON_LOGON_IDENTITY_INFO構造体へのポインター。 この構造体のメンバーには、ログオンしているユーザーに関する情報が含まれています。 この構造体の LogonDomainName メンバーは無視されます。
[in] Flags
省略可能。 ログオンの状況を説明するフラグが含まれています。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
パススルー認証。 ユーザーがこのマシンに接続していません。 |
|
これは、GUEST ユーザー アカウントを使用したログオンの再試行です。 |
[in] UserAll
SAM データベースから返されたユーザーの説明を含む USER_ALL_INFORMATION 構造体へのポインター。
[out] WhichFields
SAM データベースに書き戻す必要がある USER_ALL_INFORMATION 構造体のメンバーを返します。 これらのメンバーは、 Msv1_0SubAuthenticationRoutine が呼び出し元に成功を返す場合にのみ書き込まれます。 次の値のみが有効です。
値 | 意味 |
---|---|
|
UserAll 構造体の Parameters メンバーに含まれるデータを SAM データベースに書き戻します。
Parameters メンバーのUNICODE_STRING バッファーのサイズが変更された場合、Msv1_0SubAuthenticationRoutine MIDL_user_free関数を使用してバッファーを削除し、MIDL_user_allocate関数を使用して再割り当てを行う必要があります。 |
[out] UserFlags
LsaLogonUser 関数の ProfileBuffer パラメーターにMSV1_0_LM20_LOGON_PROFILE構造体が含まれている場合に返される値。 現在、構造体の UserFlags メンバーに対して、次の値が定義されています。
値 | 意味 |
---|---|
|
これはゲスト ログオンです。 |
|
呼び出し元が暗号化された資格情報を指定しませんでした。 |
[out] Authoritative
返される状態が元の呼び出し元に返される権限のある状態であるかどうかを示すブール値へのポインター。 戻り値が FALSE の場合は、別のドメイン コントローラーでログオン要求を再試行できます。 このパラメーターは、関数呼び出しの戻り値に関係なく、有効な情報を返す必要があります。
[out] LogoffTime
ユーザーがシステムからログオフする時刻を受け取る値へのポインター。 この時間は、ログオンの有効期間を制御するために使用され、GMT 相対システム時刻として指定されます。
[out] KickoffTime
ユーザーがシステムからログオフする時刻を受け取る値へのポインター。 この時間は、ログオンの有効期間を制御するために使用され、GMT 相対システム時刻として指定されます。 ユーザーがログオフしない場合は、次のような大きな正の値を指定します。
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
戻り値
この関数は、次のいずれかの値を返す必要があります。
リターン コード | 説明 |
---|---|
|
エラーはありませんでした。 |
|
アカウントが無効である。 |
|
アカウントの有効期限が切れています。 |
|
アカウントはロックアウトされています。 |
|
LogonLevel が無効です。 |
|
現時点では、ユーザーはログオンを許可されていません。 |
|
ユーザーは、指定されたワークステーションにログオンする権限がありません。 |
|
指定したユーザーにアカウントがありません。 |
|
パスワードの有効期限が切れています。 |
|
アカウントは、次回ログオン時にパスワードを変更する必要があることを示すマークが付けられます。 |
|
パスワードが無効です。 |
注釈
AuthenticationInformation パラメーターの一部がサブ認証を実行することを示し、Msv1_0SubAuthenticationRoutine関数をエクスポートするサブ認証 DLL がワークステーションに正しく登録されている場合、この関数はMSV1_0認証パッケージによって呼び出されます。
MSV1_0認証パッケージは、 MSV1_0_INTERACTIVE_LOGON 構造を必要とする対話型ログオンのサブ認証をサポートしていません。 MSV1_0_LM20_LOGON構造を必要とするネットワーク ログオンでは、サブ認証を使用できます。
Msv1_0SubAuthenticationRoutine関数は、正しいドメイン コントローラーが見つから、認証されるセキュリティ プリンシパルに関するすべての情報が SAM データベースから取得された後に呼び出されます。 サブ認証を使用する場合、認証はサブ認証 DLL の役割であり、その DLL によってエクスポートされた Msv1_0SubAuthenticationRoutine 関数によって実行される必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | subauth.h |