Contoh urutan

Berikut ini adalah contoh urutan IOCTL di manajer sumber daya Kartu Pintar:

Urutan Memulai

  1. Gunakan DevObj atau CfgMgr API dengan GUID antarmuka perangkat akses Kartu Pintar untuk menemukan nama driver perangkat NFC, kemudian gunakan dengan CreateFile untuk membuka pegangan perangkat.

  2. Menginisialisasi kumpulan utas.

  3. Tentukan nama pembaca.

    • IOCTL_SMARTCARD_GET_ATTRIBUTE pada SCARD_ATTR_VENDOR_NAME, SCARD_ATTR_VENDOR_IFD_TYPE, dan SCARD_ATTR_DEVICE_UNIT
  4. Tentukan karakteristik pembaca.

    • IOCTL_SMARTCARD_GET_ATTRIBUTE pada SCARD_ATTR_CHARACTERISTICS
  5. Mulai monitor status kartu.

    • IOCTL_SMARTCARD_IS_PRESENT – Untuk menunggu kedatangan kartu pintar.

    • IOCTL_SMARTCARD_IS_ABSENT – Untuk menunggu keberangkatan kartu pintar.

Pengaturan Ulang Daya tidak relevan karena kami tidak mendukung keadaan SCARD_SWALLOWED, SCARD_POWERED.

Sambungkan urutan

  1. Permulaan perulangan.

  2. IOCTL_SMARTCARD_GET_STATE (perintah untuk mendapatkan status kartu pintar)

    • Kasus SCARD_UNKNOWN dan SCARD_ABSENT, tidak perlu melakukan tindakan

    • Dalam kasus SCARD_PRESENT, menelan kartu

    • Kasus SCARD_SWALLOWED, reset dingin

    • Kasus SCARD_POWERED, reset ulang

    • Kasus SCARD_NEGOTIABLE, tentukan ATR kartu

    • Kasus SCARD_SPECIFIC, menentukan ATR kartu dan protokol

  3. IOCTL_SMARTCARD_SET_PROTOCOL

Urutan pemutusan

  1. Proses mati daya dimulai.

  2. Permulaan perulangan.

  3. IOCTL_SMARTCARD_GET_STATE

    • Kasus SCARD_SPECIFIC, SCARD_NEGOTIABLE, SCARD_POWERED, atur pemadaman daya

    • Kasus SCARD_SWALLOWED, SCARD_PRESENT, jangan lakukan apa pun

    • Kasus SCARD_ABSENT, SCARD_UNKNOWN, jangan lakukan apa-apa