首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ISO 15693:即使SCardConnect和SCardTransmit成功,SCardReconnect也会失败(C#)

ISO 15693:即使SCardConnect和SCardTransmit成功,SCardReconnect也会失败(C#)
EN

Stack Overflow用户
提问于 2014-01-09 04:52:30
回答 1查看 2.3K关注 0票数 0

如果出现传输错误,我会尝试重新连接并重试该操作。但是,当我执行重新连接时,我得到返回值6(无效的句柄)。下面是用于调用工作的SCardConnect和非工作的SCardReconnect的代码。

代码语言:javascript
复制
int iRetval = HID.SCardConnect(
                    m_hContext,
                    m_sReaderName,
                    HiDWinscard.SCARD_SHARE_SHARED,
                    HiDWinscard.SCARD_PROTOCOL_T1,
                    ref m_hCard,
                    ref m_protocol);

int iRetval = HID.SCardReconnect(ref m_hCard,
                                      HiDWinscard.SCARD_SHARE_SHARED,
                                      HiDWinscard.SCARD_PROTOCOL_T1,
                                      0,  //Leave card alone SCARD_LEAVE_CARD
                                      ref m_protocol);

其中m_hCard和m_protocol相同(IntPtr)。

下面的SCardTransmit也可以工作,并且它使用对m_hCard的相同引用

代码语言:javascript
复制
iRetval = HID.SCardTransmit(m_hCard, ref sioreq, 
                            sendBuffer, sendbufferlen, 
                            ref rioreq, receiveBuffer, 
                            ref receivebufferlen);

这是一件相当紧迫的事情。有没有人碰巧知道可能发生了什么?我要提前感谢大家的帮助!

EN

回答 1

Stack Overflow用户

发布于 2014-01-09 16:53:51

在第一个问题上,我假设您不应该将m_hCard作为引用传递。此外,我将使用从初始连接收到的协议作为首选协议重新连接:

代码语言:javascript
复制
int iRetval = HID.SCardReconnect(m_hCard,
                                 HiDWinscard.SCARD_SHARE_SHARED,
                                 m_protocol,
                                 0,  //Leave card alone SCARD_LEAVE_CARD
                                 ref m_protocol);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21006255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档