Beispielsequenz
Es folgt eine Beispielsequenz von IOCTLs im SmartCard-Ressourcen-Manager:
Startsequenz
Verwenden Sie die DevObj- oder CfgMgr-API mit der GUID der SmartCard-Zugriffsgeräteschnittstelle, um den Namen des NFC-Gerätetreibers zu ermitteln, und verwenden Sie ihn mit CreateFile, um ein Gerätehandle zu öffnen.
Initialisieren sie den Threadpool.
Bestimmen Sie den Lesernamen.
- IOCTL_SMARTCARD_GET_ATTRIBUTE auf SCARD_ATTR_VENDOR_NAME, SCARD_ATTR_VENDOR_IFD_TYPE und SCARD_ATTR_DEVICE_UNIT
Bestimmen Sie die Lesereigenschaften.
- IOCTL_SMARTCARD_GET_ATTRIBUTE auf SCARD_ATTR_CHARACTERISTICS
Starten Sie den Karte Zustandsmonitor.
IOCTL_SMARTCARD_IS_PRESENT– Warten auf eine intelligente Karte Ankunft.
IOCTL_SMARTCARD_IS_ABSENT: Warten auf den Smart Karte Abflug.
Die Energiezurücksetzung ist irrelevant, da SCARD_SWALLOWED, SCARD_POWERED Zustand nicht unterstützt wird.
Verbindungssequenz
Start der Schleife.
IOCTL_SMARTCARD_GET_STATE
Fall SCARD_UNKNOWN und SCARD_ABSENT, nichts tun
Fall SCARD_PRESENT, schlucken Karte
Fall SCARD_SWALLOWED, Kaltzurücksetzung
Fall SCARD_POWERED, Warmzurücksetzung
SCARD_NEGOTIABLE Fall bestimmen Sie die Karte ATR
SCARD_SPECIFIC fall, bestimmen Sie die Karte ATR und das Protokoll
IOCTL_SMARTCARD_SET_PROTOCOL
Trennsequenz
Das Powerdowntimeout beginnt.
Start der Schleife.
IOCTL_SMARTCARD_GET_STATE
SCARD_SPECIFIC, SCARD_NEGOTIABLE, SCARD_POWERED, Ausschalten festlegen
Fall SCARD_SWALLOWED, SCARD_PRESENT, nichts tun
Fall SCARD_ABSENT, SCARD_UNKNOWN, nichts tun