Condividi tramite


Interazione con la libreria di driver smart card

La figura seguente illustra come un driver lettore interagisce con la libreria di driver di smart card per elaborare le richieste IOCTL ricevute da Resource Manager:

Diagramma che illustra come un driver lettore interagisce con la libreria di driver di smart card per elaborare le richieste ioctl .

I numeri seguenti corrispondono ai numeri nella figura precedente. A partire dal numero 1, la figura mostra i passaggi che un driver lettore deve completare (insieme alla libreria di driver fornita dal sistema) per elaborare una richiesta IOCTL:

  1. Il driver reader passa tutte le richieste IOCTL alla routine della libreria driver SmartcardDeviceControl (WDM ).

  2. Se i parametri passati dal driver reader a SmartcardDeviceControl non sono corretti, SmartcardDeviceControl restituisce un messaggio di errore. SmartcardDeviceControl restituisce senza completare la richiesta IOCTL. In questo caso, il driver reader deve completare la richiesta IOCTL.

  3. Se i parametri sono validi, SmartcardDeviceControl elabora la richiesta IOCTL, se possibile.

  4. SmartcardDeviceControl controlla se il driver lettore ha una routine di callback definita per la richiesta IOCTL che sta elaborando. Se il callback esiste, SmartcardDeviceControl lo chiama.

  5. La routine di callback chiama tutte le routine della libreria driver necessarie per completare l'elaborazione della richiesta IOCTL.

  6. Dopo l'elaborazione della richiesta IOCTL, la routine di callback torna a SmartcardDeviceControl.

  7. SmartcardDeviceControl completa l'IRP che ha portato L'IOCTL.

  8. SmartcardDeviceControl restituisce il controllo alla routine dispatch reader-driver.

La libreria di smart card sincronizza l'accesso al driver lettore. Nessuna funzione di callback verrà chiamata contemporaneamente. Tuttavia, la gestione degli eventi per l'inserimento e la rimozione delle schede deve essere elaborata in modo asincrono.