NPLogonNotify 関数 (npapi.h)

注意

この API は非推奨となり、今後のリリースで削除される予定です。

MPR は、この関数を呼び出して、ログオン イベントが発生したことを資格情報マネージャーに通知し、資格情報マネージャーがログオン スクリプトを返せるようにします。 NPLogonNotify 関数は、資格情報マネージャー DLL によって実装されます (「解説」を参照)。

構文

DWORD NPLogonNotify(
  [in]  PLUID   lpLogonId,
  [in]  LPCWSTR lpAuthentInfoType,
  [in]  LPVOID  lpAuthentInfo,
  [in]  LPCWSTR lpPreviousAuthentInfoType,
  [in]  LPVOID  lpPreviousAuthentInfo,
  [in]  LPWSTR  lpStationName,
  [in]  LPVOID  StationHandle,
  [out] LPWSTR  *lpLogonScript
);

パラメーター

[in] lpLogonId

ログオンしたばかりの セッション の識別子へのポインター。

[in] lpAuthentInfoType

lpAuthentInfo によって指される構造体の型を識別する文字列へのポインター。

Microsoft がプライマリ認証システムの場合、対話型およびサービス コントローラーのログオンに対して次のいずれかの文字列が指定されます。

MSV1_0:Interactive
Kerberos:Interactive

[in] lpAuthentInfo

プライマリ認証システムを介してユーザーを正常にログオンさせるために使用される資格情報を含む構造体へのポインター。

Microsoft がプライマリ認証システムである場合 (つまり、 lpAuthentifoType が "MSV1_0:Interactive" または "Kerberos:Interactive" の場合)、使用される構造体は MSV1_0_INTERACTIVE_LOGON または KERB_INTERACTIVE_LOGON

[in] lpPreviousAuthentInfoType

lpPreviousAuthentInfo が指す構造体の種類を識別する文字列へのポインター。 ポインターが NULL の場合、以前の情報はありませんでした。 ここで指定する値は、 lpAuthentInfoType の値と同じです。

Microsoft がプライマリ認証システムの場合は、対話型ログオンとサービス コントローラー ログオンに次の文字列が指定されます。

MSV1_0:Interactive

[in] lpPreviousAuthentInfo

認証情報が変更される前に使用される資格情報を含む構造体へのポインター。 ユーザーがログオンする前にパスワード (またはその他の認証情報) の変更を強制された場合は、以前の情報が提供されます。 ユーザーが認証情報の変更を強制されなかった場合、このポインターは NULL です。 ここで想定される値は、 lpAuthentInfo の値と同じです。

Microsoft がプライマリ認証システムの場合、使用される構造体は MSV1_0_INTERACTIVE_LOGON または KERB_INTERACTIVE_LOGON

[in] lpStationName

ユーザーがログオンしているステーションの名前を指定する文字列へのポインター。 ステーション名を使用して、追加の (プロバイダー固有の) 情報を取得できるかどうかを判断できます。

Microsoft がプライマリ認証システムである場合は、次のいずれかの文字列が指定されます。

説明
WinSta_0
これは、ウィンドウ ステーションを介した対話型ログオンであることを示します。 この場合、 StationHandle は親ダイアログ ボックスの HWND です。
SvcCtl
これは、サービス コントローラーによって開始されたログオンであることを示します。 この場合、StationHandle は使用されません。

[in] StationHandle

lpStationName で指定されたステーションの名前 (およびその結果、型) に依存する意味を持つ 32 ビット値。

説明
WinSta_0
現在画面に表示されている所有者ダイアログ ボックス (hwndOwner) のハンドル。
SvcCtl
ランダム なデータ。 使用しないでください。

[out] lpLogonScript

null で終わる文字列へのポインターが返される可能性がある場所へのポインター。

関数が完了すると、この値は、実行するプログラムの名前とプログラムに必要なパラメーターを含む null で終わる文字列を指す場合があります。 返される文字列のメモリを割り当てるには、LocalAlloc を使用する必要があります。 このメモリは、不要になったときに MPR によって解放されます。

戻り値

関数が成功した場合、関数は WN_SUCCESSを返します。

関数が失敗した場合は、次のいずれかのエラー コードを返します。

リターン コード 説明
WN_NOT_SUPPORTED

NPLogonNotify は、資格情報マネージャーではサポートされていません。

WN_NO_NETWORK
ネットワークが存在しません。
WN_FUNCTION_BUSY
資格情報マネージャーはまだ初期化中であり、呼び出す準備ができていません。

解説

NPLogonNotify 関数は、認証情報が変更されたときに通知を受け取るために資格情報マネージャーによって実装されます。

各資格情報マネージャーは、ログオン スクリプトの実行に使用できる 1 つのコマンド ライン文字列を返すことができます (実装では LogonUser を呼び出したり、ユーザー プロファイルを直接読み込んだりしないでください)。 この文字列のバッファーは、資格情報マネージャーによって割り当てられます。 MPR は、それを解放する責任があります。 lpLogonScript で返される文字列には、CreateProcess に渡されるコマンド ラインとしてスクリプトを実行するために必要なすべての情報が含まれている必要があります。

コマンドまたはバッチ ファイルの場合と同様に、文字列の処理にコマンド プロセッサが必要な場合は、文字列の先頭に cmd /C を付ける必要があります。

ログオン スクリプトは、ユーザー プロファイルが使用可能になると、ユーザー コンテキストで実行されます。 ただし、設定された環境変数はグローバルではなく、初期シェル (プログラム マネージャーなど) やユーザーに代わって実行されるその他のプログラムでは使用できません。

要件

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

関連項目

CreateProcess

LocalAlloc

MSV1_0_INTERACTIVE_LOGON

NPGetCaps

NPPasswordChangeNotify