Я пишу приложение для смарт-карт. Это приложение подключает карту в ридере и иногда работает с ней. Мне нужно смотреть, когда ридер больше не доступен (либо карта извлекается, либо ридер извлекается из USB).
Считыватели просматривают, используя SCardStatusChange . Эта функция требует имя читателя для просмотра.
Я вставляю два считывателя с карточками в слоты USB. Они распознаются как «USB-устройство чтения смарт-карт 0» и «USB-устройство чтения смарт-карт 1». Я удаляю одного читателя. Windows сообщает, что «USB Smart Card Reader 1» все еще подключен. Я вставляю его - снова оба доступны. Теперь я удаляю второй. Windows по-прежнему говорит, что USB-устройство чтения смарт-карт 1 подключено. И это проблема, потому что это должен быть «USB Smart Card Reader 0», который все еще подключен. Программа отслеживания не может наблюдать за читателем, потому что ее имя изменено.
Это проблема с драйвером или проблема с подсистемой смарт-карты XP? Используемый драйвер - версия 5.2.3790.1830, совместимая с USB CCID (VID 076B, PID A021), usbccid.sys.