【问题标题】:Event notification for ::SCardListReaders()::SCardListReaders() 的事件通知
【发布时间】:2014-08-25 14:11:09
【问题描述】:

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

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

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

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

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

感谢任何帮助。

【问题讨论】:

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


    【解决方案1】:

    选项1)

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

    选项2)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多