Debug del driver smart card
Nota
Le build controllate sono state disponibili nelle versioni precedenti di Windows, prima di Windows 10 versione 1803. Usare strumenti come Il verificatore driver e GFlags per controllare il codice del driver nelle versioni successive di Windows.
Le librerie di driver smart card supportano diverse funzionalità di debug. Ogni funzionalità di debug è rappresentata da una delle costanti seguenti, definite nel file di intestazione Smclib.h :
DEBUG_IOCTL
DEBUG_ATR
DEBUG_PROTOCOL
DEBUG_DRIVER
DEBUG_TRACE
DEBUG_ERROR
DEBUG_BREAK
DEBUG_ALL
Il set combinato di funzionalità di debug abilitate è rappresentato da un valore denominato livello di debug. È possibile calcolare questo valore prendendo l'OR bit per bit delle costanti che corrispondono alle funzionalità che si desidera abilitare.
Esistono due modi per impostare il livello di debug. Prima di tutto, è possibile usare il programma di test del driver smart card, Scdrvtst, fornito con Windows Driver Kit (WDK). Il secondo consiste nell'usare la routine della libreria di driver smart card Smart card Smart cardSetDebugLevel .
In entrambi i casi, è necessario passare il valore per il livello di debug che si vuole eseguire il programma o la routine che imposta il livello di debug. Ad esempio, per impostare il livello di debug dal driver usando una routine di libreria smart card, effettuare la chiamata seguente:
SmartcardSetDebugLevel(DebugLevel);
Per scrivere messaggi di debug da un driver di lettura, il driver deve chiamare la routine seguente:
SmartcardDebug(
ULONG DebugLevel,
PCHAR Message
);
Importante
È necessario installare la versione selezionata del sistema operativo e la versione selezionata del driver per ottenere i messaggi di debug.
Questa routine può essere usata anche per scrivere messaggi in un debugger remoto nei modi seguenti.
Per scrivere messaggi di errore, usare la costante DEBUG_ERROR per DebugLevel.
Per scrivere messaggi di driver standard, usare la costante DEBUG_DRIVER.
Per scrivere messaggi di traccia che indicano quando il driver lettore entra o chiude una routine, usare DEBUG_TRACE come DebugLevel.
Durante lo sviluppo di un driver, usare la versione selezionata della libreria driver smart card e impostare il livello di debug sul massimo usando SmartcardSetDebugLevel(DEBUG_ALL) nella routine DriverEntry .
Per informazioni sulla configurazione di una sessione di debug remoto, vedere Debug di Windows.