PF_NPLogonNotify
コールバックシグネチャ
DWORD PF_NPLogonNotify(
LUID* lpLogonId,
LPWSTR lpAuthentInfoType,
void* lpAuthentInfo,
LPWSTR lpPreviousAuthentInfoType,
void* lpPreviousAuthentInfo,
LPWSTR lpStationName,
void* StationHandle,
LPWSTR* lpLogonScript
);パラメーター
| フィールド | 型 | 説明 | ||||||
|---|---|---|---|---|---|---|---|---|
| lpLogonId | LUID* | ログオンしたばかりの セッション の識別子へのポインターです。 | ||||||
| lpAuthentInfoType | LPWSTR | lpAuthentInfo が指す構造体の型を識別する文字列へのポインターです。 Microsoft がプライマリ認証機関である場合、対話型ログオンおよびサービスコントローラーによるログオンでは、次のいずれかの文字列が指定されます。 | ||||||
| lpAuthentInfo | void* | プライマリ認証機関を通じてユーザーのログオンに成功したときに使用された資格情報を格納する構造体へのポインターです。 Microsoft がプライマリ認証機関である場合(つまり lpAuthentifoType が "MSV1_0:Interactive" または "Kerberos:Interactive" の場合)、使用される構造体は MSV1_0_INTERACTIVE_LOGON または KERB_INTERACTIVE_LOGON です。 | ||||||
| lpPreviousAuthentInfoType | LPWSTR | lpPreviousAuthentInfo が指す構造体の型を識別する文字列へのポインターです。このポインターが NULL の場合、以前の情報はありません。ここで想定される値は lpAuthentInfoType と同じです。 Microsoft がプライマリ認証機関である場合、対話型ログオンおよびサービスコントローラーによるログオンでは、次の文字列が指定されます。 | ||||||
| lpPreviousAuthentInfo | void* | 認証情報が変更される前に使用されていた資格情報を格納する構造体へのポインターです。ユーザーがログオン前にパスワード(またはその他の認証情報)の変更を強制された場合に、変更前の情報が提供されます。ユーザーが認証情報の変更を強制されなかった場合、このポインターは NULL です。ここで想定される値は lpAuthentInfo と同じです。 Microsoft がプライマリ認証機関である場合、使用される構造体は MSV1_0_INTERACTIVE_LOGON または KERB_INTERACTIVE_LOGON です。 | ||||||
| lpStationName | LPWSTR | ユーザーがログオンしたステーションの名前を指定する文字列へのポインターです。ステーション名は、追加の(プロバイダー固有の)情報を取得できるかどうかを判断するために使用できます。 Microsoft がプライマリ認証機関である場合、次のいずれかの文字列が指定されます。
| ||||||
| StationHandle | void* | lpStationName で指定されたステーションの名前(したがってその種類)によって意味が決まる 32 ビット値です。
| ||||||
| lpLogonScript | LPWSTR* | null で終わる文字列へのポインターを返すことができる場所へのポインターです。 関数の完了後、この値は、実行するプログラムの名前とそのプログラムが必要とするパラメーターを格納した null で終わる文字列を指すことがあります。返される文字列のメモリの割り当てには LocalAlloc を使用してください。このメモリは、不要になった時点で MPR によって解放されます。 |
公式ドキュメント
この API は非推奨であり、将来のリリースで削除される予定です。
MPR は、ログオンイベントが発生したことを資格情報マネージャーに通知するためにこの関数を呼び出します。これにより、資格情報マネージャーはログオンスクリプトを返すことができます。NPLogonNotify 関数は、資格情報マネージャー DLL によって実装されます(「解説」を参照してください)。
戻り値
関数が成功した場合は WN_SUCCESS を返します。
関数が失敗した場合はエラーコードを返します。エラーコードは次のいずれかです。
| 戻り値 | 説明 |
|---|---|
|
NPLogonNotify が資格情報マネージャーでサポートされていません。 |
|
ネットワークが存在しません。 |
|
資格情報マネージャーはまだ初期化中であり、呼び出せる状態ではありません。 |
解説(Remarks)
NPLogonNotify 関数は、認証情報が変更されたときに通知を受け取るために、資格情報マネージャーによって実装されます。
各資格情報マネージャーは、ログオンスクリプトの実行に使用できるコマンドライン文字列を 1 つだけ返すことができます(実装から LogonUser を直接呼び出したり、ユーザープロファイルを直接読み込んだりしないでください)。この文字列のバッファーは資格情報マネージャーが割り当てます。これを解放する責任は MPR にあります。lpLogonScript に返される文字列には、 CreateProcess に渡すコマンドラインとしてスクリプトを実行するために必要な情報がすべて含まれている必要があります。
コマンドやバッチファイルの場合のように、文字列の処理にコマンドプロセッサが必要な場合は、文字列の先頭に cmd /C を付けてください。
ログオンスクリプトは、ユーザープロファイルが利用可能になった時点でユーザーコンテキストで実行されます。ただし、設定された環境変数はグローバルにはならず、最初のシェル(プログラムマネージャーなど)や、ユーザーの代わりに実行される他のプログラムからは利用できません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)