求助 高手--》 智能卡开发问题--读卡器卡死
我使用的是 华大 的智能卡, 时常会在 刷卡过程中 出现读卡器卡死现象:
我的操作流程:
1,获取读卡器
SCardEstablishContext(int dwScope, int pvReserved1, int pvReserved2, ref int phContext)
SCardReleaseContext(int phContext);
2,自动读卡:设置一个读卡时钟,1秒连续的读卡,直到连接卡成功
即不停执行 SCardDisconnect(int hCard, int Disposition);
(在每次SCardDisconnect连接卡成功后,卡句柄hCard(肯定非零值)以全局保留,在连接时如果hCard非零,会先调用
SCardDisconnect(int hCard, int Disposition) 断开当前卡连接,并将hCard置零。这样确保每次连接卡后多会断开其连接)
??这个用时钟不停调SCardDisconnect() 会不会有问题,有的话用什么方法代替?
3,智能卡相关金融/业务操作。(这里会有一些智能卡内部文件系统的修改操作,但是应该不是这些操作的问题,因为在测试版中,不做任何智能卡内部结构的修改,只用时钟读卡,也会出现卡死)
4,步骤3完成后,会检查在规定时间内 卡是否一直未离开读卡器。 方式是:
用一个时钟不停的 复位卡,如果复位失败 则==卡已经离开。停止复位, 从步骤1开始重复 操作
复位函数:SCardStatus(IN SCARDHANDLE hCard,OUT LPSTR szReaderName,IN OUT LPDWORD pcchReaderLen...);
另外问下 下面几个函数 的作用,在什么情况会用到?
1,int SCardListReaderGroups(int hContext, ref string mzGroups, ref int pcchGroups);
2,int SCardGetStatusChange(int hContext, int TimeOut, ref SCARD_READERSTATE ReaderState, int ReaderCount);
先谢过各位!!!