在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
感谢任何帮助。
答案 0 :(得分:0)
选项1)
通过设置使用SCardGetStatusChange() 在其参数readerstate.szReader to" \\?PnP?\ Notification"
选项2)
在固定间隔后进行轮询,并限制最大间隔轮询