Personnalisation de Winlogon
Personnalisez le comportement de Winlogon en implémentant un fournisseur d’informations d’identification. Pour plus d’informations sur les fournisseurs d’informations d’identification, consultez ICredentialProvider Interface.
Windows Server 2003 et Windows XP : Les fournisseurs d’informations d’identification ne sont pas pris en charge.
Les sections suivantes décrivent comment personnaliser Winlogon dans les versions de Windows antérieures à Windows Vista.
Notes
Les DLL GINA et les packages de notification Winlogon sont ignorés dans Windows Vista.
Winlogon Notification Packages
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, consultez Packages de notification Winlogon.
GINA Stubs
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.
Important
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 case activée l’heure actuelle avant d’appeler la fonction WlxLoggedOutSAS du MsGina.dll. Si l’heure actuelle se trouve dans une plage spécifique, la fonction stub peut afficher un message indiquant que l’ouverture de session est interdite pendant cette période et retourner 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 pour les fonctions de prise en charge Winlogon via le paramètre pWinlogonFunctions de la fonction WlxInitialize . L’application stub GINA peut utiliser cette table de répartition pour appeler des fonctions de support Winlogon. Par exemple, une application stub GINA peut appeler la fonction WlxSasNotify pour provoquer un événement de séquence d’attention sécurisée (SAS) lorsqu’une carte intelligente est insérée dans un lecteur.
Pour plus d’informations sur la création d’un stub GINA, consultez l’exemple Gina Stubs dans le répertoire \Samples\Security\Gina\GinaStub d’une installation du Kit de développement logiciel (SDK) de plateforme.
Notes
Tous les appels entre un GINA et Winlogon doivent se trouver dans un seul thread.
Crochets GINA
Un hook GINA est un stub GINA qui, dans son implémentation de la fonction WlxInitialize , remplace le pointeur vers la fonction de prise en charge WlxDialogBoxParam dans la table dispatch 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 crochet GINA 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.
Notes
Tous les appels entre un GINA et Winlogon doivent se trouver dans un seul thread.