我的项目结构
 myApp 
  -->WCFSerLibrary 
  -->ClassLib1
  -->ClassLib2  // This one uses winscard.dll 
我想与附加的智能卡阅读器进行通信。
我遵循的四个步骤是
- ScardEstablishContext
 - 通过 SCardListReaders 获取阅读器名称
 - SCardConnect
 - 使用 SCardTransmit 读取
 
前三个步骤成功执行,但是当我尝试执行 SCardTransmit 时,它返回了87的响应代码。
第二方面,上述场景是当我从 WCF 服务调用它时。现在我在 Windows FOrm 应用程序中使用相同的 ClassLib2,它可以正常通信。
 retCode =  ModWinsCard.SCardTransmit(hCard, ref pioSendRequest, ref SendBuff[0], sendLen, ref pioSendRequest, ref RecvBuff[0], ref recvLen);
在 ModWinsCard 类中
   [DllImport("winscard.dll"l)]
    public static extern Int64 SCardTransmit(UInt64 hCard, ref SCARD_IO_REQUEST pioSendRequest, ref byte SendBuff, int SendBuffLen, ref SCARD_IO_REQUEST pioRecvRequest, ref byte RecvBuff, ref int RecvBuffLen);