PCSC обнаруживает несколько смарт-карт
Можно ли определить наличие нескольких смарт-карт в считывателе смарт-карт через WinSCard API? Я читаю идентификаторы карт, но когда их несколько, становится неоднозначным, какую из них следует вернуть. Поэтому я хотел бы запретить такой случай и вернуть сообщение об ошибке.
2 ответа
Считыватель ACR-1252 имеет только один бесконтактный интерфейс. Когда вы пытаетесь подключить (положить) две бесконтактные смарт-карты одновременно, микропрограммное обеспечение считывателя несет ответственность за выбор того, какая из них будет подключена к своему гнезду. Некоторые поставщики ридеров позволяют вам настроить их прошивку так, чтобы в таких случаях они вели себя по-разному. Я не знаю, есть ли у вашего читателя такая возможность, но я сильно сомневаюсь в этом.
Если есть несколько карт, то есть несколько читателей используют. Здесь функция winscard API - SCardListReadersA() будет возвращать имя считывателя, подключенного к системе, как,
if one reader then "one reader"NULL|NULL|garbage
if two reader then "one reader"NULL"second reader"NULL|NULL|garbage
при подключении к считывателю необходимо передать имя считывателя в функцию - SCardConnectA() и ответ (ID), который вы получаете с помощью функции SCardTransmit(), от считывателя и карты, с которой вы соединяетесь с помощью функции SCardConnectA().
надеюсь, эта информация поможет.