範例順序
以下是智慧卡資源管理員中 IOCTLs 的範例序列:
啟動順序
使用 DevObj 或 CfgMgr API 搭配智慧卡存取裝置介面 GUID 來探索 NFC 設備驅動器的名稱,並將其與 CreateFile 搭配使用,以開啟裝置句柄。
初始化線程集區。
判斷讀取器名稱。
- SCARD_ATTR_VENDOR_NAME、SCARD_ATTR_VENDOR_IFD_TYPE和SCARD_ATTR_DEVICE_UNIT上的IOCTL_SMARTCARD_GET_ATTRIBUTE
判斷讀取器特性。
- SCARD_ATTR_CHARACTERISTICS上的IOCTL_SMARTCARD_GET_ATTRIBUTE
啟動卡片狀態監視器。
IOCTL_SMARTCARD_IS_PRESENT – 等候智慧卡抵達。
IOCTL_SMARTCARD_IS_ABSENT – 等候智慧卡離開。
電源重設無關,因為我們不支援SCARD_SWALLOWED,SCARD_POWERED狀態。
連接順序
迴圈的開頭。
IOCTL_SMARTCARD_GET_STATE
案例SCARD_UNKNOWN和SCARD_ABSENT,不執行任何動作
案例SCARD_PRESENT、SCARD_PRESENT卡
案例SCARD_SWALLOWED、冷重設
案例SCARD_POWERED,暖重設
案例SCARD_NEGOTIABLE,判斷卡片 ATR
案例SCARD_SPECIFIC,判斷卡片 ATR 和通訊協定
IOCTL_SMARTCARD_SET_PROTOCOL
中斷聯機順序
電源關閉逾時會啟動。
迴圈的開頭。
IOCTL_SMARTCARD_GET_STATE
案例SCARD_SPECIFIC、SCARD_NEGOTIABLE、SCARD_POWERED、設定關閉電源
案例SCARD_SWALLOWED,SCARD_PRESENT,不執行任何動作
案例SCARD_ABSENT,SCARD_UNKNOWN不執行任何動作