Sdílet prostřednictvím


Ukázková posloupnost

Následuje příklad posloupnosti vstupně-výstupních adres (IOCTLs) ve Správci prostředků čipové karty:

Pořadí spuštění

  1. Pomocí rozhraní API DevObj nebo CfgMgr s identifikátorem GUID rozhraní zařízení pro přístup k čipové kartě zjistěte název ovladače zařízení NFC a použijte ho s CreateFile k otevření popisovače zařízení.

  2. Inicializujte fond vláken.

  3. Určení názvu čtenáře

    • IOCTL_SMARTCARD_GET_ATTRIBUTE na SCARD_ATTR_VENDOR_NAME, SCARD_ATTR_VENDOR_IFD_TYPE a SCARD_ATTR_DEVICE_UNIT
  4. Určení charakteristik čtečky

    • IOCTL_SMARTCARD_GET_ATTRIBUTE na SCARD_ATTR_CHARACTERISTICS
  5. Spusťte monitorování stavu karty.

    • IOCTL_SMARTCARD_IS_PRESENT – Počkejte na příjezd čipové karty.

    • IOCTL_SMARTCARD_IS_ABSENT – Čekat na odjezd čipové karty.

Resetování napájení je bezvýznamné, protože nepodporujeme stav SCARD_SWALLOWED ani SCARD_POWERED.

Připojit sekvenci

  1. Začátek smyčky

  2. IOCTL_SMARTCARD_GET_STATE

    • Případ SCARD_UNKNOWN a SCARD_ABSENT, nic nedělejte

    • Case SCARD_PRESENT, polykání karty

    • Případ SCARD_SWALLOWED, studené resetování

    • Případ SCARD_POWERED, teplé resetování

    • Případ SCARD_NEGOTIABLE, určení ATR karty

    • Případ SCARD_SPECIFIC, určete ATR a protokol karty.

  3. IOCTL_SMARTCARD_SET_PROTOCOL

Pořadí odpojení

  1. Spustí se časový limit vypnutí.

  2. Začátek smyčky

  3. IOCTL_SMARTCARD_GET_STATE

    • Případ SCARD_SPECIFIC, SCARD_NEGOTIABLE, SCARD_POWERED, nastavit vypnutí napájení

    • Případ SCARD_SWALLOWED, SCARD_PRESENT, nedělej nic

    • Case SCARD_ABSENT, SCARD_UNKNOWN, do nothing