ISSONotification.InitializeAdapter メソッド

ENTSSO システムに対してパスワード同期アダプターを初期化します。

構文

  
HRESULT InitializeAdapter(  
BSTR strAdapterName,  
ULONG lFlags,  
ULONGLONG* hNotifyEvent,  
GUID* guidTrackingId);  

パラメーター

bstrAdapterName
[in] アダプターの一意の名前。

ulFlags
[in]値のビットSSO_NOTIFICATION_FLAG組 合わせ。

phNotifyEvent
[out] このメソッドが完了すると、PS ヘルパーで作成されたイベント ハンドルが格納されます。 MIDL は HANDLE データ型をサポートしていないので、HANDLE への戻り値をキャストする必要があります。 アダプターがイベント ハンドルを必要としない場合は、このパラメーターに NULL が返されます。

pguidTrackingId
[out] このメソッドが完了すると、ENTSSO で生成された追跡 ID が格納されます。 追跡 ID は監査目的で使用されます。 アダプターが追跡 ID を必要としない場合は、このパラメーターに NULL が返されます。

戻り値

このメソッドは、正しく終了したかどうかを示す HRESULT を返します。 詳細については、「エラー値」のセクションを参照してください。

エラー値

このメソッドは、次の表のいずれかの値を含む HRESULT を返します。

説明
S_OK 初期化が成功しました。
S_FALSE 初期化に成功しましたが、再接続でした。 詳細については、「解説」を参照してください。
E_ACCESSDENIED アクセスが拒否されました。
ENTSSO_E_NO_SERVER ENTSSO サーバーに接続できませんでした。 ENTSSO サービスが実行中であることを確認してください。

注釈

InitializeAdapter を呼び出す前に、関連するアダプター名を ENTSSO に入力する必要があります。

InitializeAdapter はInitializeAdapter を呼び出す前に他の ISSONotification メソッドを呼び出さないので、アダプターが呼び出す最初のメソッドである必要があります。 ShutdownAdapter を 呼び出すまで InitializeAdapter を再度 呼び出す必要はありません。 ただし、アダプターをシャットダウンしたら、いつでも InitializeAdapter を呼び出して再接続できます。

InitializeAdapter は 、PS ヘルパーとアダプター間の通信を開始します。 アダプターが InitializeAdapter を呼び出す場合、PS ヘルパーは暗号化された LRPC をEnterpriseシングル Sign-On (ENTSSO) サービスを呼び出します。 ENTSSO サービスはアダプター名を使用して、現在のアダプター用に定義されたアクセス アカウントに基づき、アクセスを許可または拒否します。

InitializeAdapter を呼び出す前に、ENTSSO サービス を開始している必要があります。 アダプター プロセスが、サービスを開始するのに十分な特権で実行されていないことがあるため、PS ヘルパーで自動的に ENTSSO を開始することはできません。 このため、アダプターで、アダプターと ENTSSO の間のすべての通信を開始する必要があります。

PS ヘルパーは最初に ENTSSO サービスを使用して接続を確立し、次に名前付きのイベントを作成します。 その後、PS ヘルパーは名前付きのイベントを ENTSSO サービスに渡します。 ENTSSO は、通知がアダプターに到着すると、PS ヘルパーに対してイベント シグナルを使用します。 ENTSSO はイベントをアダプターに返してアダプターがイベントを待機できるようにするか、イベントを無視して PS ヘルパーが待機できるようにします。 こうすると、アダプターのスレッド モデルのアダプターの柔軟性が高まります。 イベントは、ENTSSO が ShutdownAdapter の呼び出しによって開始された処理を完了するまで、アダプター に対して有効です

ENTSSO サービスは、ENTSSO が実行中であれば、PS ヘルパーからの最初のリモート プロシージャ コール (RPC) を受け付けます。 その後、ENTSSO によるアクセス確認が行われます。 ENTSSO がデータベースにアクセスしてアダプター構成情報を取得できない場合、E_ACCESSDENIED イベントが返されます。 ENTSSO にアダプター構成情報があるのに、現在データベースに通知できない場合、ENTSSO は引き続きパスワード変更通知を受け付けて通知をローカルにバッファーし、ローカル一時ファイルで通知を暗号化します。

InitializeAdapter は 、アダプターがE_ACCESSDENIEDまたは無効になっている場合にも、この値を返します。

すべてのエラーの詳細情報は、Windows イベント ログで確認できます。

アダプターには、ENTSSO と通信する際に使用する名前が指定されていることを前提とします。

InitializeAdapter は シングル スレッドです。 InitializeAdapter を呼び出す他のすべてのスレッドはInitializeAdapter が完了するまでブロックされます。 また、 ShutdownAdapter メソッドと同期 されます。

ShutdownAdapter を発行する前にアダプター プロセスが 終了する可能性があります。 この場合、ENTSSO が対応する ShutdownAdapter を受信する前に ENTSSO が別の InitializeAdapter を受け取った場合、ENTSSO は 2 番目の ShutdownAdapter 呼び出しを再接続として扱います。 この場合、ENTSSO は既存のイベントをクリーンアップして無効化し、新しいハンドルを作成します。 また、ENTSSO は、シャットダウン通知を使用して、古いイベント ハンドルの保留中の ReceiveNotifications も完了します。

再接続の場合、 InitializeAdapter から新しい追跡 ID が返されます。 InitializeAdapter から返された追跡 ID はセッション ID と見なされる可能性があるという理由で、ENTSSO は新しい追跡 ID を返します。 さらに、ENTSSO は、保留中 (未確認) の通知をアダプターに再発行します。

要件

プラットフォーム: Windows 7、Windows Server 2008 R2、Windows Server 2008 SP2、Windows Vista SP2、Windows Server 2003 R2 SP2

参照

ISSONotification インターフェイス (COM)
ISSONotification メンバー
Enterprise Single Sign-On によるプログラミング