【发布时间】:2011-12-14 23:50:22
【问题描述】:
我想在 Windows 7 上将调试器附加到基本 csp 微型驱动程序。
哪个进程承载驱动程序.dll?它只是另一个 WUDFHost.exe 吗?
我可以将用户模式调试器附加到该进程吗?
【问题讨论】:
标签: windows debugging device-driver smartcard
我想在 Windows 7 上将调试器附加到基本 csp 微型驱动程序。
哪个进程承载驱动程序.dll?它只是另一个 WUDFHost.exe 吗?
我可以将用户模式调试器附加到该进程吗?
【问题讨论】:
标签: windows debugging device-driver smartcard
至少在使用certutil.exe 时,.dll 会“直接”加载到进程中。
在 Visual Studio 中,可以将certutil.exe 设置为调试面板中的命令,然后单步执行 minidriver.dll 的代码,从而测试 certutil 如何尝试访问智能卡。
【讨论】:
我做了简单愚蠢的日志记录,而不是调试我的微型驱动程序。
使用certutil 测试您的微型驱动程序很容易:
certutil.exe -SCInfo
调试微型驱动程序的想法是偏见。 对于 Windows 10,使用卡操作需要 5 秒超时。如果您在 5 秒内没有轮询卡,您的卡会被操作系统重置。
这是错误的外观:
智能卡读卡器“通用 EMV 智能卡读卡器 0”中的卡已被重置,因为应用程序持有独占交易 在卡上 5 秒无活动。如果此错误仍然存在, 应用程序可能无法正常运行。
这是Microsoft says 的相关内容:
智能卡交易在 Windows Server 2012、Windows 8 和 Windows 上 RT,如果交易在卡上持有超过 5 秒 卡上没有发生任何操作,卡被重置。这是一个 与以前版本中的行为不同。
为了进行健康的调试,您必须引入一个单独的线程,使用SCardStatus 或SCardGetAttrib 作为Gemalto does 轮询您的卡状态
为避免系统在 5 秒后重置智能卡 超时,金雅拓建议您定期调用透明函数 像 SCardStatus 或 SCardGetAttrib,在调用后使用计时器 SCardBeginTransaction。此更改也适用于 Windows 8、RT 和 Server 2012 系统。
【讨论】: