supersxj
驱动牛犊
驱动牛犊
  • 注册日期2002-11-22
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1428回复:2

问一个smartcard驱动的基础问题,多谢

楼主#
更多 发布于:2004-07-15 22:51
  从DDK文档中知道smartcard driver是通过IOCTL与user mode的smartcard管理器进行通信的,那么如果我的smartcard是usb的,那么我只需要在driver中将从user mode发来的IOCTL命令进行适当的处理,或者从smartcard中读些数据,或者往smartcard中写些数据即可,这些读写数据的工作都可以由usb的相关函数来完成。
  可是DDK中又给出了很多以Smartcard开头的函数,请问这些函数的作用是什么呢,如果smartcard的驱动和smartcard的硬件都是自己做,那么完全不需要这些函数就可以使驱动程序与smartcard的硬件进行通讯了。
  对方要求这个smartcard的驱动符合pcsc规范,请问要符合pcsc规范就要调用DDK中以Smartcard开头的函数吗?为什么?

 多谢回答!
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-17 22:33
 从DDK文档中知道smartcard driver是通过IOCTL与user mode的smartcard管理器进行通信的,那么如果我的smartcard是usb的,那么我只需要在driver中将从user mode发来的IOCTL命令进行适当的处理,或者从smartcard中读些数据,或者往smartcard中写些数据即可,这些读写数据的工作都可以由usb的相关函数来完成。

如果不使用ScartCardXXX函数,你又如何解释SmartCard Manger发来的命令,因为要遵循标准,应用程序是不会直接发命令给你的Driver的,它总是先调用SCardConnect,然后再调用SCardTransmit函数来于你的驱动通讯,所以在你的驱动中必然要使用SmartcardXXX函数来让Smartcard Manager知道你的这个读卡器存在,并且你的Driver可以解释Manager发来的命令。
    其实Smartcard Driver很简单的,DDK中有一个USB Smartcard的例子,你可以仿照它来做。最主要的是要理解它的那三个数据结构的作用分别是用来描述驱动、读卡器和IC卡,然后就简单了很多。
supersxj
驱动牛犊
驱动牛犊
  • 注册日期2002-11-22
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-18 22:24
多谢你的解释
游客

返回顶部