Как создаются "дружественные имена" для считывателей смарт-карт PCSC?

Я использую WinSCard, чтобы перечислить всех читателей, что дает мне такой список:

ASK RDR4x7 0
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 0
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 1
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 2

Что здорово, но я понятия не имею, какое имя принадлежит какому картридеру.

Откуда эти имена? Как они построены?

Что я нашел до сих пор: в реестре есть HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services ключ. В этом ключе вы можете найти подраздел, который соответствует "услуге" устройства чтения карт (которую я нашел, запросив реестр WMI). Например: сервис для SCM Microsystems Inc. SCR3320 USB Smart Card Reader читатели SCR3XX2K,

Этот подключ (SCR3XX2K) есть другой подраздел Enum, который имеет несколько интересных значений:

  • Count: DWORD, количество подключенных читателей
  • 0, 1, 2: STRING, аппаратный идентификатор устройства

Я предполагаю, что это числа, добавленные к "дружественным именам", но я не могу понять, как строится строка имени. Мне нужно это, чтобы сопоставить идентификаторы аппаратных устройств (которые я получаю через WMI) с их понятным именем.

Итак, какой шаблон используется для создания "дружественного имени" для устройства чтения смарт-карт и откуда берутся значения?

1 ответ

Решение

Они являются объединением этих 3 атрибутов:

SCARD_ATTR_VENDOR_NAME
SCARD_ATTR_VENDOR_IFD_TYPE
SCARD_ATTR_DEVICE_UNIT

Статья TechNet События смарт-карт документирует это в разделе "Имя устройства чтения смарт-карт".

SCARD_??? атрибуты запрашиваются с SCardGetAttrib функция

SCARD_ATTR_DEVICE_SYSTEM_NAME атрибут возвращает friendly name как те, которые вы получаете, перечисляя читателей.

Список читателей Smart Card существует в реестре под HKLM\SOFTWARE\Microsoft\Cryptography\Calais\Readers, Считыватели добавляются в этот список с помощью файла INF драйвера SCR, поэтому во время установки драйвера.

Связь между устройством и читателем может быть найдена в классе SmartCardReader {50DD5230-BA8A-11D1-BF5D-0000F805F530} под HKLM\SYSTEM\CurrentControlSet\Control\Class\{50DD5230-BA8A-11D1-BF5D-0000F805F5‌​30},

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