在PC/SC (个人计算机智能卡)应用程序中,我有(基于MSCAPI USB CCID )
1)调用::SCardListReaders()返回SCARD_E_NO_READERS_AVAILABLE (0x8010002E)。此调用是在操作系统重新启动后重新启动后,从属于我的自定义windows服务的线程进行的。
2)在::SCardListReaders()调用前添加延迟解决了这个问题。
3)如何优雅地解决这个问题?不使用延迟&等待某些事件通知我。
由于a)不同的机器可能需要不同的延迟值b)无法循环,因为错误代码是真实的c)找不到此事件作为系统事件通知服务或类似COM接口的一部分d)平台是Windows 7
感谢您的帮助。
发布于 2014-08-27 18:09:55
Option1)
使用SCardGetStatusChange(),方法是在其参数readerstate.szReader中将其设置为"\?PnP?\Notification“
Option2)
固定间隔后轮询,并限制轮询的最大间隔
https://stackoverflow.com/questions/25487875
复制相似问题