Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In de volgende afbeelding wordt getoond hoe een kaartlezerstuurprogramma communiceert met de smartcardstuurprogrammabibliotheek om IOCTL-aanvragen te verwerken die het ontvangt van de resource manager.
De volgende getallen komen overeen met de getallen in de vorige afbeelding. Vanaf nummer 1 toont de afbeelding de stappen die een lezerstuurprogramma moet voltooien (samen met de door het systeem geleverde stuurprogrammabibliotheek) om een IOCTL-aanvraag te verwerken:
Het stuurprogramma van de lezer geeft alle IOCTL-aanvragen door aan de SmartcardDeviceControl (WDM) stuurprogrammabibliotheekroutine.
Als de parameters die het stuurprogramma van de lezer doorgeeft aan SmartcardDeviceControl onjuist zijn, wordt SmartcardDeviceControl geretourneerd met een foutbericht. SmartcardDeviceControl retourneert zonder de IOCTL-aanvraag te voltooien. In dit geval moet het stuurprogramma van de lezer de IOCTL-aanvraag voltooien.
Als de parameters geldig zijn, SmartcardDeviceControl de IOCTL-aanvraag indien mogelijk verwerkt.
SmartcardDeviceControl controleert of het stuurprogramma van de lezer een callback-routine heeft gedefinieerd voor de IOCTL-aanvraag die wordt verwerkt. Als de callback bestaat, roept SmartcardDeviceControl deze aan.
De callback-routine roept alle stuurprogrammabibliotheekroutines aan die nodig zijn om de verwerking van de IOCTL-aanvraag te voltooien.
Nadat de IOCTL-aanvraag is verwerkt, keert de callbackroutine terug naar SmartcardDeviceControl.
SmartcardDeviceControl voltooit de IRP die de IOCTL heeft uitgevoerd.
SmartcardDeviceControl geeft de controle terug aan de dispatchroutine van het kaartlezerstuurprogramma.
De smartcardbibliotheek synchroniseert de toegang tot het kaartlezerstuurprogramma. Er worden geen twee callback-functies tegelijk aangeroepen. De verwerking van gebeurtenissen voor het invoegen en verwijderen van kaarten moet echter asynchroon worden verwerkt.