Débogage du pilote de carte à puce
Notes
Les builds vérifiées étaient disponibles sur les versions antérieures de Windows, avant Windows 10 version 1803. Utilisez des outils tels que Driver Verifier et GFlags pour case activée code de pilote dans les versions ultérieures de Windows.
Les bibliothèques de pilotes smart carte prennent en charge plusieurs fonctionnalités de débogage. Chaque fonctionnalité de débogage est représentée par l’une des constantes suivantes, qui sont définies dans le fichier d’en-tête Smclib.h :
DEBUG_IOCTL
DEBUG_ATR
DEBUG_PROTOCOL
DEBUG_DRIVER
DEBUG_TRACE
DEBUG_ERROR
DEBUG_BREAK
DEBUG_ALL
L’ensemble combiné de fonctionnalités de débogage activées est représenté par une valeur appelée niveau de débogage. Vous pouvez calculer cette valeur en prenant le bit OR des constantes qui correspondent aux fonctionnalités que vous souhaitez activer.
Il existe deux façons de définir le niveau de débogage. Tout d’abord, vous pouvez utiliser le programme d’essai de pilote smart carte, Scdrvtst, fourni avec le Kit de pilotes Windows (WDK). La deuxième consiste à utiliser la routine de bibliothèque de pilotes SmartcardSetDebugLevel smart carte.
Dans les deux cas, vous devez passer la valeur du niveau de débogage souhaité au programme ou à la routine qui définit le niveau de débogage. Par instance, pour définir le niveau de débogage à partir du pilote à l’aide d’une routine de bibliothèque smart carte, effectuez l’appel suivant :
SmartcardSetDebugLevel(DebugLevel);
Pour écrire des messages de débogage à partir d’un pilote de lecteur, le pilote doit appeler la routine suivante :
SmartcardDebug(
ULONG DebugLevel,
PCHAR Message
);
Important
Vous devez installer la version vérifiée du système d’exploitation et la version vérifiée du pilote pour obtenir des messages de débogage.
Cette routine peut également être utilisée pour écrire des messages dans un débogueur distant des manières suivantes.
Pour écrire des messages d’erreur, utilisez la constante DEBUG_ERROR pour DebugLevel.
Pour écrire des messages de pilote standard, utilisez la constante DEBUG_DRIVER.
Pour écrire des messages de suivi qui indiquent quand le pilote de lecteur entre ou quitte une routine, utilisez DEBUG_TRACE comme DebugLevel.
Lors du développement d’un pilote, utilisez la version vérifiée de la bibliothèque de pilotes smart carte et définissez le niveau de débogage au maximum à l’aide de SmartcardSetDebugLevel(DEBUG_ALL) dans votre routine DriverEntry.
Pour plus d’informations sur la configuration d’une session de débogage à distance, consultez Débogage Windows.