хотя я недавно кодировал PC / SC в Windows и Linux, я заметил небольшую асимметрию между API PC / SC-облегченный и IOCTL винскарты. За исключением того факта, что вам нужно самостоятельно переключать ICTL, Windows может обрабатывать запросы.
И вот где это сложнее:
IFDHICCPresence
вернуть текущее состояние карты.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
,
Задача ещё не решена.
Других решений пока нет …