Smartcard reader naming

2019-04-02 06:35发布

I have two readers (HID OMNIKEY 5321) in system (every reader performs a different function)

  • reader 1 - "Smart Card Reader 0"
  • reader 2 - "Smart Card Reader 1"

In my program is set up that

  • "Smart Card Reader 0" - action 1
  • "Smart Card Reader 1" - action 2

but sometimes (without rebooting, perhaps lost contact)

  • reader 1 gets name "Smart Card Reader 1"
  • reader 2 gets name "Smart Card Reader 0"

and the program does not do what users need. I use SCardGetStatusChange (requires the name of the reader) in WinScard.dll

What to do? Is there a way to change the name of the reader (firmware, drivers...)? Is it possible to use the serial number of the reader?

I also looked, but no result Smartcard reader naming: when removing any reader, the name of the rest changes How are PCSC smart card reader 'friendly names' constructed?

2条回答
手持菜刀,她持情操
2楼-- · 2019-04-02 07:15

found a solution Getting PCSC reader serial number with WinSCard

serial number reader

...
SCardConnect(hContext, readerName, SCARD_SHARE_DIRECT, SCARD_PROTOCOL_UNDEFINED, ref hCard, ref protocol);
SCardGetAttrib(hCard, SCARD_ATTR_VENDOR_IFD_SERIAL_NO, receiveBuffer, ref receivebufferLen);
...
查看更多
劫难
3楼-- · 2019-04-02 07:20

Maybe you should focus on the smartcard inserted in / connected to the reader rather than the reader itself and use card specific information (i.e. serial number or label) to choose the correct reader.

查看更多
登录 后发表回答