Partager via


Personnalisation de Winlogon

Personnalisez le comportement de Winlogon en implémentant un fournisseur de justificatifs. Pour plus d’informations sur les fournisseurs d’informations d’identification, consultez interface ICredentialProvider.

Windows Server 2003 et Windows XP : Les Fournisseurs d’Informations d’Identification ne sont pas pris en charge.

Les sections suivantes décrivent les façons de personnaliser Winlogon dans les versions de Windows antérieures à Windows Vista.

Remarque

Les DLL GINA et les packages de notification Winlogon sont ignorés dans Windows Vista.

 

Paquets de Notifications Winlogon

Un package de notification Winlogon est une DLL qui exporte des fonctions qui gèrent les événements Winlogon. Par exemple, lorsqu’un utilisateur se connecte au système, Winlogon appelle chaque package de notification pour fournir des informations sur l’événement. Pour plus d'informations, voir Paquets de notification Winlogon.

Stubs GINA

Un stub GINA est une DLL GINA personnalisée qui utilise les implémentations de fonction d’exportation d’une DLL GINA précédemment installée (généralement MsGina.dll). Un stub GINA obtient des pointeurs vers chaque fonction exportée par la DLL GINA précédemment installée. Chaque fonction stub GINA utilise ensuite le pointeur de fonction approprié pour appeler la fonction correspondante dans la DLL GINA précédemment installée.

Importante

Chaque fonction stub GINA doit appeler la fonction correspondante dans le GINA précédemment installé.

 

Une fonction stub GINA peut implémenter des fonctionnalités supplémentaires dans une ou plusieurs de ses fonctions d’exportation. Par exemple, la fonction WlxLoggedOutSAS d’un stub GINA peut vérifier l’heure actuelle avant d’appeler la fonction WlxLoggedOutSAS de la MsGina.dll. Si l’heure actuelle se trouvait dans une plage spécifique, la fonction stub peut afficher un message indiquant que l’ouverture de session n’est pas autorisée pendant cette période et retourne WLX_SAS_ACTION_NONE à Winlogon. La fonction WlxLoggedOutSAS du MsGina.dll est alors appelée uniquement pendant la période autorisée.

L'application stub GINA obtient une table de répartition vers les fonctions de support Winlogon par le biais du paramètre pWinlogonFunctions de la fonction WlxInitialize. L'application stub GINA peut utiliser cette table de répartition pour appeler les fonctions de support Winlogon. Par exemple, une application GINA peut appeler la fonction WlxSasNotify pour provoquer un événement SAS (Secure Attention Sequence) lorsqu'une carte à puce est insérée dans un lecteur.

Pour plus d'informations sur la création d'un stub GINA, consultez l'exemple Gina Stubs situé dans le répertoire \Samples\Security\Gina\GinaStub d'une installation du Kit de développement logiciel de plateforme (SDK).

Note

Tous les appels entre un GINA et Winlogon doivent se trouver dans un seul thread.

 

Hooks GINA

Un crochet GINA est un stub GINA qui, dans son implémentation de la fonction WlxInitialize, remplace le pointeur vers la fonction de support WlxDialogBoxParam dans la table de répartition par un pointeur vers sa propre implémentation de la fonction WlxDialogBoxParam. Par conséquent, chaque fois que le GINA précédemment installé (généralement MsGina.dll) appelle la fonction WlxDialogBoxParam, la fonction implémentée par le hook GINA est appelée.

La fonction WlxDialogBoxParam implémentée par le hook GINA peut remplacer la procédure de rappel DialogProc qui répond à un événement de boîte de dialogue spécifique.

Cela donne au GINA hook un contrôle total sur l’apparence et le comportement de toutes les boîtes de dialogue créées par MsGina.dll.

Pour plus d’informations sur la création d’un hook GINA, consultez l’exemple Gina Hooks dans le répertoire \Samples\Security\Gina\GinaHook d’une installation du Kit de développement logiciel (SDK) de plateforme.

Remarque

Tous les appels entre un GINA et Winlogon doivent se trouver dans un seul thread.