2010-04-14 2 views
0

Я пишу приложение для смарт-карт. Это приложение подключает карту в считывающее устройство и иногда работает с ней. Мне нужно посмотреть, когда читатель больше не доступен (либо карта извлечена, либо считыватель удален с USB).Идентификация считывателя смарт-карт: при удалении любого читателя изменяется имя остальных

Считыватели просматривают: SCardStatusChange. Эта функция требует просмотра имени читателя.

Я вставляю два считывателя с картами в слоты USB. Они распознаются как «USB Smart Card Reader 0» и «USB Smart Card Reader 1». Я удаляю одного читателя. Windows говорит, что «USB Smart Card Reader 1» все еще подключен. Я вставляю его - снова оба доступны. Теперь я удаляю второй. Windows все еще говорит, что «USB Smart Card Reader 1» подключен. И это проблема, потому что это должно быть «USB Smart Card Reader 0», которое все еще подключено. Процедура отслеживания не может наблюдать за читателем, потому что это имя изменено.

Проблема с драйвером или проблема с подсистемой смарт-карт XP? Используемый драйвер - совместимая с USB CCID версия 5.2.3790.1830 (VID 076B, PID A021), usbccid.sys.

+0

Идея PCSC заключается в том, что читатель не так важен, как карта в читателе, поэтому имена читателей просто перечислены. Как только будет установлена ​​связь с картой, ее бесполезно. – guidot

ответ

2

Мы столкнулись с этой проблемой в проекте и обработали ее, выполнив итерацию через каждый доступный считыватель и проверив, вставлена ​​ли карта в этот считыватель. Вы столкнетесь с этой проблемой именования с несколькими брендами считывателей USB.

У моей компании есть продукт, который позволяет интегрировать смарт-карты с веб-сайтами; в одном из наших демоверсий перечислены читатели смарт-карт, доступные в настоящее время, и это может помочь вам в тестировании различных сценариев чтения: https://cardboss.cometway.com/content.agent?page_name=GetReaders+Demo

Смежные вопросы