Асимметрия в ПК / SC Windows и PC / SC-lite для статуса карты

хотя я недавно кодировал PC / SC в Windows и Linux, я заметил небольшую асимметрию между API PC / SC-облегченный и IOCTL винскарты. За исключением того факта, что вам нужно самостоятельно переключать ICTL, Windows может обрабатывать запросы.

И вот где это сложнее:

  • Для pc / sc-lite есть IFDHICCPresence вернуть текущее состояние карты.
  • На винскарте их 3
    • IOCTL_SMARTCARD_IS_ABSENT а также IOCTL_SMARTCARD_PRESENT иметь этот странный callback-семантический.
    • IOCTL_SMARTCARD_GET_STATE с другой стороны, вроде как IFDHICCPresence, Помимо того, что Windows также поддерживает проглатывание и извлечение карт, чего нет у pc / sc-lite.

Я хочу реализовать независимый от платформы обработчик IFD, чтобы подобное поведение было намного проще в обработке. Конечно, я мог бы добавить еще один слой, чтобы компенсировать конкретную часть окон, но я хочу сохранить его как последнее средство.

Разве PC / SC и обработчики IFD не должны быть стандартом с определенными функциями и поведением?

Можно ли отключить поведение обратного вызова в Windows?

До сих пор я пытался определить IOCTL_SMARTCARD_IS_ABSENT/PRESENT как неподдерживаемый, но Windows настаивает на том, чтобы вызывать их, даже если информация может быть получена с IOCTL_SMARTCARD_GET_STATE,

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]