:: SCardListReaders()的事件通知

时间:2014-08-25 14:11:09

标签: visual-c++ windows-7 com smartcard hardware-interface

在PC / SC(个人计算机智能卡)Appln中,我有(基于MSCAPI USB CCID)

1)调用:: SCardListReaders()返回SCARD_E_NO_READERS_AVAILABLE(0x8010002E)。此操作是在重新启动后从一个自定义Windows服务的一部分的线程中重新启动操作系统之后进行的。

2)在:: SCardListReaders()调用之前添加延迟解决了问题。

3)我怎样才能优雅地解决这个问题?不使用延迟&等待某个事件通知我。

自 a)不同的机器可能需要不同的延迟值 b)由于错误代码是真实的,因此无法循环 c)无法将此事件作为系统事件通知服务或类似COM接口的一部分 d)平台是Windows 7

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

选项1)

通过设置使用SCardGetStatusChange() 在其参数readerstate.szReader to" \\?PnP?\ Notification"

选项2)

在固定间隔后进行轮询,并限制最大间隔轮询