共用方式為


範例順序

以下是智慧卡資源管理員中 IOCTLs 的範例序列:

啟動順序

  1. 使用 DevObj 或 CfgMgr API 搭配智慧卡存取裝置介面 GUID 來探索 NFC 設備驅動器的名稱,並將其與 CreateFile 搭配使用,以開啟裝置句柄。

  2. 初始化線程集區。

  3. 判斷讀取器名稱。

    • SCARD_ATTR_VENDOR_NAME、SCARD_ATTR_VENDOR_IFD_TYPE和SCARD_ATTR_DEVICE_UNIT上的IOCTL_SMARTCARD_GET_ATTRIBUTE
  4. 判斷讀取器特性。

    • SCARD_ATTR_CHARACTERISTICS上的IOCTL_SMARTCARD_GET_ATTRIBUTE
  5. 啟動卡片狀態監視器。

    • IOCTL_SMARTCARD_IS_PRESENT – 等候智慧卡抵達。

    • IOCTL_SMARTCARD_IS_ABSENT – 等候智慧卡離開。

電源重設無關,因為我們不支援SCARD_SWALLOWED,SCARD_POWERED狀態。

連接順序

  1. 迴圈的開頭。

  2. IOCTL_SMARTCARD_GET_STATE

    • 案例SCARD_UNKNOWN和SCARD_ABSENT,不執行任何動作

    • 案例SCARD_PRESENT、SCARD_PRESENT卡

    • 案例SCARD_SWALLOWED、冷重設

    • 案例SCARD_POWERED,暖重設

    • 案例SCARD_NEGOTIABLE,判斷卡片 ATR

    • 案例SCARD_SPECIFIC,判斷卡片 ATR 和通訊協定

  3. IOCTL_SMARTCARD_SET_PROTOCOL

中斷聯機順序

  1. 電源關閉逾時會啟動。

  2. 迴圈的開頭。

  3. IOCTL_SMARTCARD_GET_STATE

    • 案例SCARD_SPECIFIC、SCARD_NEGOTIABLE、SCARD_POWERED、設定關閉電源

    • 案例SCARD_SWALLOWED,SCARD_PRESENT,不執行任何動作

    • 案例SCARD_ABSENT,SCARD_UNKNOWN不執行任何動作