conglin
驱动牛犊
驱动牛犊
  • 注册日期2001-12-12
  • 最后登录2003-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2912回复:0

基于Smartcard的Usb Token的开发

楼主#
更多 发布于:2002-04-20 22:06
我为厂家作了一个Usb token的Smartcard驱动程序,该卡有个缺陷--不支持ColdReset以及PowerDown的操作,因此我使用WarmReset替代ColdReset,而对于PowerDown操作仅仅简单的return STATUS_SUCCESS。

1)我运行VB的客户端测试程序的时候,在SCardConnect函数中死活过不了,查了一下日志,发现是在IO_SMARTCARD_SET_PROTOCOL调用的时候出错,而且根本没有进入我的RDF_SET_PROTOCOL的回调函数中。我进行二进制调试,发现在SmartcardDeviceControl的函数中,在调用RDF_SET_PROTOCOL之前,调用了SmartcardUpdateCapabilities函数,而当时的ATR.Length==0,因此报0xc000014的错误。但是这个问题如何解决?

2)在运行期间当DeviceIoControl调用MajorIoControl=IOCTL_SMARTCARD_SET_ATTRIBUTE,
MinorIoControl=SCARD_ATTR_DEVICE_IN_USE,函数返回0xc0000bb的错误,不过这个好像是MS的错误,因为二进制调试中,smclib好像对所有不是SCARD_ATTR_SUPRESS_T1_IFS_REQUEST的请求都产生这样的错误,是否真的如此?

3)我发现在ColdReset的时候,当我调用SmartcardUpdateCapabilities,
SmartcardExtension->ReaderCapabilities.CurrentState变成了SCARD_SPECIFIC(原来是SCARD_PRESENT),不知道这个状态的改变会否影响到Smclib的内部操作?

谢谢


游客

返回顶部