I use WinSCard to list all readers, which gives me a list like this:
ASK RDR4x7 0
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 0
SCM Microsystems Inc.
They are a concatination of these 3 attributes:
SCARD_ATTR_VENDOR_NAME
SCARD_ATTR_VENDOR_IFD_TYPE
SCARD_ATTR_DEVICE_UNIT
The TechNet article Smart Card Events documents this in the "Smart Card reader name" section.
SCARD_???
attributes are requested with the SCardGetAttrib
function.
The SCARD_ATTR_DEVICE_SYSTEM_NAME
attribute returns the friendly name
as the ones you get while listing the readers.
The list of SmartCard readers exists in the registry under HKLM\SOFTWARE\Microsoft\Cryptography\Calais\Readers
. Readers are added to this list by the INF file of the SCR driver, so during driver installation.
A link between device and reader can be found in the SmartCardReader class {50DD5230-BA8A-11D1-BF5D-0000F805F530}
under HKLM\SYSTEM\CurrentControlSet\Control\Class\{50DD5230-BA8A-11D1-BF5D-0000F805F530}
.