ISSONotification.InitializeAdapter, méthode

Initialise l'adaptateur de synchronisation du mot de passe sur le système ENTSSO.

Syntaxe

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

Paramètres

bstrAdapterName
[in] Nom unique de l'adaptateur.

ulFlags
dans Combinaison d’opérations de bits des valeurs de SSO_NOTIFICATION_FLAG .

phNotifyEvent
[out] Lorsque cette méthode est retournée, contient un handle d'événement créé par le Programme d'aide à la synchronisation des mots de passe. Vous devez alors effectuer un cast sur la valeur de retour vers un HANDLE, car MIDL ne prend pas en charge le type de données HANDLE. Ce paramètre peut être NULL si le handle d'événement n'est pas requis par l'adaptateur.

pguidTrackingId
[out] Lorsque cette méthode est retournée, contient l'ID de suivi généré par le service ENTSSO. Cet ID de suivi est utilisé à des fins d'audit. Ce paramètre peut être NULL si l'ID de suivi n'est pas requis par l'adaptateur.

Valeur renvoyée

Cette méthode retourne un HRESULT indiquant si elle s’est terminée correctement. Pour plus d'informations, voir la section Valeurs d'erreur.

Valeurs d'erreur

Cette méthode retourne un HRESULT contenant l’une des valeurs du tableau suivant.

Valeur Description
S_OK L'initialisation a réussi.
S_FALSE L'initialisation a réussi mais était une reconnexion. Pour plus d'informations, consultez la section Notes.
E_ACCESSDENIED L’accès est refusé.
ENTSSO_E_NO_SERVER Impossible de contacter le serveur ENTSSO. Vérifiez que le service ENTSSO est en cours d'exécution.

Notes

Avant d’appeler InitializeAdapter, vous devez avoir entré le nom d’adaptateur approprié dans ENTSSO.

InitializeAdapter doit être la première méthode que votre adaptateur appelle, car vous ne pouvez pas appeler d’autres méthodes ISSONotification avant d’appeler InitializeAdapter. Vous ne devez pas appeler InitializeAdapter à nouveau tant que vous n’avez pas appelé ShutdownAdapter. Toutefois, une fois que vous arrêtez l’adaptateur, vous pouvez appeler InitializeAdapter à tout moment pour vous reconnecter.

InitializeAdapter initie la communication entre le programme d’assistance PS et l’adaptateur. lorsque votre adaptateur appelle InitializeAdapter, le programme d’assistance de PS appelle le service Enterprise unique Sign-On (ENTSSO) sur les appels LRPC chiffrés. À l'aide du nom de l'adaptateur, le service ENTSSO accorde ou refuse l'accès en fonction du compte d'accès défini pour l'adaptateur.

Vous devez avoir démarré le service ENTSSO avant d’appeler InitializeAdapter. Le Programme d'aide à la synchronisation des mots de passe ne peut pas démarrer automatiquement le service ENTSSO car le processus lié à l'adaptateur peut ne pas disposer des privilèges suffisants pour démarrer un service. Par conséquent, votre adaptateur doit initier toutes les communications entre l'adaptateur et le service ENTSSO.

Le Programme d'aide à la synchronisation des mots de passe commence par établir une connexion avec le service ENTSSO, puis crée un événement nommé. Il transmet ensuite cet événement au service ENTSSO. Le service ENTSSO utilise le signal d'événement vers le Programme d'aide à la synchronisation des mots de passe lorsqu'une notification arrive pour l'adaptateur. Le service ENTSSO retourne l'événement vers l'adaptateur afin que celui-ci puisse attendre l'événement ou l'ignore et permette au Programme d'aide à la synchronisation des mots de passe d'attendre à sa place. Le modèle de thread de l'adaptateur y gagne ainsi en flexibilité. L’événement est valide pour l’adaptateur jusqu’à ce que ENTSSO termine le traitement initié par un appel à ShutdownAdapter.

Le service ENTSSO accepte l'appel de procédure distante initiale (RPC) du Programme d'aide à la synchronisation des mots de passe si le service ENTSSO est en cours d'exécution. Le service ENTSSO effectue ensuite un contrôle d'accès. Si le service ENTSSO ne parvient pas à accéder à la base de données pour obtenir les informations de configuration de l'adaptateur, le service ENTSSO retourne un événement E_ACCESSDENIED. Si le service ENTSSO accède aux informations de configuration de l'adaptateur, mais ne parvient pas à contacter la base de données, le service ENTSSO continue d'accepter les notifications de changement de mot de passe. Il les place en mémoire tampon locale et les chiffre dans un fichier temporaire local.

InitializeAdapter retourne également E_ACCESSDENIED si l’adaptateur est supprimé ou désactivé.

Pour toutes les erreurs, des informations plus détaillées sont disponibles dans le journal d'événements Windows.

L'on considère que l'adaptateur connaît le nom à utiliser pour communiquer avec le service ENTSSO.

InitializeAdapter est à thread unique. Tous les autres threads appelant InitializeAdapter sont bloqués jusqu’à ce que InitializeAdapter soit terminé. Elle est également synchronisée avec la méthode ShutdownAdapter .

Il est possible que le processus de l’adaptateur se termine avant que vous puissiez émettre un ShutdownAdapter. Dans ce cas, et si ENTSSO reçoit un autre InitializeAdapter avant que ENTSSO ne reçoive un ShutdownAdaptercorrespondant, ENTSSO traite le deuxième appel ShutdownAdapter comme une reconnexion. Dans ce cas, le service ENTSSO nettoie et invalide l'événement existant, puis crée un nouveau handle. ENTSSO termine également tous les ReceiveNotifications en attente pour l’ancien handle d’événement avec une notification d’arrêt.

Dans le cas d’une reconnexion, un nouvel ID de suivi est retourné à partir du InitializeAdapter. ENTSSO retourne un nouvel ID de suivi, car l’ID de suivi retourné par InitializeAdapter peut être considéré comme un ID de session. En outre, ENTSSO réémet toutes les notifications en attente (mais non confirmées) à l’adaptateur.

Configuration requise

plateformes : Windows 7, Windows server 2008 R2, Windows server 2008 sp2, Windows Vista sp2, Windows Server 2003 r2 SP2

Voir aussi

ISSONotification, interface (COM)
Membres de ISSONotification
Programmation avec l’authentification unique de l’entreprise