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().

надеюсь, эта информация поможет.

Другие вопросы по тегам