Sequenza di esempio
Di seguito è riportata una sequenza di esempio di IOCTLs in Smart Card Resource Manager:
Sequenza di avvio
Usare l'API DevObj o CfgMgr con il GUID dell'interfaccia del dispositivo di accesso smart card per individuare il nome del driver di dispositivo NFC e usarlo con CreateFile per aprire un handle del dispositivo.
Inizializzare il pool di thread.
Determinare il nome del lettore.
- IOCTL_SMARTCARD_GET_ATTRIBUTE su SCARD_ATTR_VENDOR_NAME, SCARD_ATTR_VENDOR_IFD_TYPE e SCARD_ATTR_DEVICE_UNIT
Determinare le caratteristiche del lettore.
- IOCTL_SMARTCARD_GET_ATTRIBUTE on SCARD_ATTR_CHARACTERISTICS
Avviare il monitoraggio dello stato della scheda.
IOCTL_SMARTCARD_IS_PRESENT : per attendere l'arrivo di una smart card.
IOCTL_SMARTCARD_IS_ABSENT : per attendere la partenza della smart card.
La reimpostazione dell'alimentazione è irrilevante poiché non è supportato SCARD_SWALLOWED, SCARD_POWERED stato.
Connetti sequenza
Inizio del ciclo.
IOCTL_SMARTCARD_GET_STATE
Case SCARD_UNKNOWN e SCARD_ABSENT, non fare nulla
Case SCARD_PRESENT, scheda inghiotte
Caso SCARD_SWALLOWED, reimpostazione a freddo
Case SCARD_POWERED, reimpostazione ad accesso frequente
Case SCARD_NEGOTIABLE, determinare la scheda ATR
Case SCARD_SPECIFIC, determinare la scheda ATR e il protocollo
IOCTL_SMARTCARD_SET_PROTOCOL
Disconnettere la sequenza
Viene avviato il timeout di power-down.
Inizio del ciclo.
IOCTL_SMARTCARD_GET_STATE
Case SCARD_SPECIFIC, SCARD_NEGOTIABLE, SCARD_POWERED, impostare l'alimentazione
Caso SCARD_SWALLOWED, SCARD_PRESENT, non fare nulla
Caso SCARD_ABSENT, SCARD_UNKNOWN, non fare nulla