【问题标题】:How to debug a base csp minidriver如何调试基本 csp 微型驱动程序
【发布时间】:2011-12-14 23:50:22
【问题描述】:

我想在 Windows 7 上将调试器附加到基本 csp 微型驱动程序。
哪个进程承载驱动程序.dll?它只是另一个 WUDFHost.exe 吗?
我可以将用户模式调试器附加到该进程吗?

【问题讨论】:

    标签: windows debugging device-driver smartcard


    【解决方案1】:

    至少在使用certutil.exe 时,.dll 会“直接”加载到进程中。
    在 Visual Studio 中,可以将certutil.exe 设置为调试面板中的命令,然后单步执行 minidriver.dll 的代码,从而测试 certutil 如何尝试访问智能卡。

    【讨论】:

    • 您能否提供一些有关如何实现此目的的其他信息?
    【解决方案2】:

    我做了简单愚蠢的日志记录,而不是调试我的微型驱动程序。

    使用certutil 测试您的微型驱动程序很容易:

    certutil.exe -SCInfo
    

    调试微型驱动程序的想法是偏见。 对于 Windows 10,使用卡操作需要 5 秒超时。如果您在 5 秒内没有轮询卡,您的卡会被操作系统重置。

    这是错误的外观:

    智能卡读卡器“通用 EMV 智能卡读卡器 0”中的卡已被重置,因为应用程序持有独占交易 在卡上 5 秒无活动。如果此错误仍然存​​在, 应用程序可能无法正常运行。

    这是Microsoft says 的相关内容:

    智能卡交易在 Windows Server 2012、Windows 8 和 Windows 上 RT,如果交易在卡上持有超过 5 秒 卡上没有发生任何操作,卡被重置。这是一个 与以前版本中的行为不同。

    为了进行健康的调试,您必须引入一个单独的线程,使用SCardStatusSCardGetAttrib 作为Gemalto does 轮询您的卡状态

    为避免系统在 5 秒后重置智能卡 超时,金雅拓建议您定期调用透明函数 像 SCardStatus 或 SCardGetAttrib,在调用后使用计时器 SCardBeginTransaction。此更改也适用于 Windows 8、RT 和 Server 2012 系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多