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. SCR3320 USB Smart Card Reader 1
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 2
Which is great, but I have no clue which name belongs to which card reader.
Where do these names come from? How are they constructed?
What I've found up until now: in the registry, there is a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
key. Under this key, you can find the subkey which matches the card reader's "service" (which I found by querying the WMI registry). For example: the service for the SCM Microsystems Inc. SCR3320 USB Smart Card Reader
readers is SCR3XX2K
.
This subkey (SCR3XX2K
) has another subkey Enum
, which has multiple interesting values:
Count
: DWORD, the number of readers connected0
, 1
, 2
: STRING, hardware Device IDI guess these are the numbers appended to the 'friendly names', but I can't figure out how the name string is constructed. I need this to map hardware Device ID's (which I get through WMI) to their friendly name.
So, what's the pattern used to create a 'friendly name' for a smart card reader, and where do the values come from?
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}
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With