Smartcard reader naming

倾然丶 夕夏残阳落幕 提交于 2019-12-05 05:27:06

问题


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?


回答1:


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);
...



回答2:


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.



来源:https://stackoverflow.com/questions/24612817/smartcard-reader-naming

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!