CN101329661B - 一种实现hid/scsi设备pc/sc接口的系统和方法 - Google Patents

一种实现hid/scsi设备pc/sc接口的系统和方法 Download PDF

Info

Publication number
CN101329661B
CN101329661B CN2008101174823A CN200810117482A CN101329661B CN 101329661 B CN101329661 B CN 101329661B CN 2008101174823 A CN2008101174823 A CN 2008101174823A CN 200810117482 A CN200810117482 A CN 200810117482A CN 101329661 B CN101329661 B CN 101329661B
Authority
CN
China
Prior art keywords
hid
equipment
servo
scsi
scsi device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008101174823A
Other languages
English (en)
Other versions
CN101329661A (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Beijing Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Feitian Technologies Co Ltd filed Critical Beijing Feitian Technologies Co Ltd
Priority to CN2008101174823A priority Critical patent/CN101329661B/zh
Publication of CN101329661A publication Critical patent/CN101329661A/zh
Application granted granted Critical
Publication of CN101329661B publication Critical patent/CN101329661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

本发明公开了一种实现HID/SCSI设备PC/SC接口的系统和方法,属于通信安全领域。所述方法包括:伺服程序创建内核对象并加载伺服函数库,将内核对象发送给PC/SC驱动程序;伺服程序通过PC/SC驱动程序向计算机设备管理程序上报HID/SCSI设备的信息;PC/SC驱动程序将接收的访问HID/SCSI设备的指令,通过内核对象发送给伺服程序;伺服程序接收访问指令,获取伺服函数库中调用HID/SCSI接口指令的代码信息;应用程序通过PC/SC驱动程序和伺服程序,经PC/SC接口对HID/SCSI设备进行访问。由于伺服程序运行在系统应用层,其编写、修改、维护简单,在其运行过程中发生错误不会导致整个系统的崩溃;当需要支持新的HID/SCSI设备时,只需更换伺服程序就可以实现对新设备的兼容,增强了系统的柔韧性和扩展性。

Description

一种实现HID/SCSI设备PC/SC接口的系统和方法
技术领域
本发明涉及通信安全领域,特别涉及一种实现HID/SCSI设备PC/SC接口的系统和方法。
背景技术
HID(Human Interface Device,人机接口设备)设备是一种不需要用户再开发任何驱动,插入支持windows等操作系统的计算机就能使用的设备,所有的HID设备都是通过操作系统自带的HID设备类驱动(如,windows下的hidclass.sys)与各种应用建立联系,应用层程序只需要调用现有的应用层接口HID API(Application Programming Interface,应用程序编程接口)就能访问HID设备,正是针对这一特性,HID设备提供商只需要给用户提供物理设备就能满足一般的应用。但是,随着技术的发展,HID设备的种类也越来越多,例如针对应用于智能卡领域的HID设备,由于各类操作系统自带的HID设备类驱动(hidclass.sys)并没有提供协议处理器部分的功能,不能直接通过智能卡服务系统传输数据,应用访问HID物理设备时,只能调用HID API访问HID设备,因此,仅仅提供HID物理设备不能使之完成智能卡的功能。
另外,SCSI(Small Computer System Interface,小型主机系统接口)是主机连接外设备的一种接口标准,能够提供更高的数据传输率。SCSI为方便开发者使用预留了接口指令,为完成接外设备的SCSI通讯,开发者将SCSI接口指令设计成接外设备的命令,以完成接外设备的功能,但是在Windows 2000及以上操作系统下,普通用户没有权限使用SCSI接口指令,这就给SCSI设备的使用带来了很多的不便。
PC/SC(Personal Computer/SmartCard,个人电脑/智能卡)规范是由微软公司与世界其它著名的智能卡厂商组成的PC/SC工作组提出的一个基于windows平台的一个标准用户接口(API),提供了一个从个人电脑PC到智能卡SC的整合环境,应用程序通过该标准用户接口与智能卡进行通讯。由于Windows操作系统内置了PC/SC驱动程序,主机程序无需任何修改就可以直接使用符合PC/SC规范的硬件设备。但是这种方式只限于符合PC/SC规范的硬件设备。现在的硬件设备能够实现的功能多样而独特,越来越多的软/硬件开发人员使用自行开发的驱动程序来操作硬件,以使该硬件设备具有特别功能,或者将硬件设备设计为非PC/SC规范的,利用系统集成的对应的驱动程序来操作硬件设备,来避免在操作系统中安装驱动程序,方便部署。通常,无驱产品中的HID/SCSI类设备都是使用的计算机操作系统自带的驱动进行访问,虽然这种方式的便利是不再随硬件设备派发驱动程序,可是,在某些场合下,我们需要PC/SC接口方式使用该HID/SCSI类的硬件设备(比如,利用该HID/SCSI类的硬件设备实现远程服务器的域登陆功能等)。面对这种需求,通常会采用构造一个PC/SC驱动利用操作系统HID/SCSI接口协议实现访问HID/SCSI设备。现有技术中,通过HID协议处理单元和SCSI协议处理单元,将HID/SCSI接口指令放在操作系统的内核级的PC/SC驱动程序中,该PC/SC驱动程序又置于计算机内核程序中,因此在PC/SC驱动程序运行时,一旦出错,很容易导致整个操作系统的崩溃,当出现新的HID/SCSI设备时,只有修改PC/SC驱动程序才能得到计算机程序的支持,修改调试PC/SC驱动程序的过程烦琐,且不易维护,修改PC/SC驱动程序需要花费大量的时间和精力,且容易造成一旦修改不善,将导致整个操作系统崩溃。
发明内容
鉴于现有技术的不足,本发明提供了一种实现HID/SCSI设备PC/SC接口的系统和方法,在本发明中,通过位于应用层的伺服模块实现对HID/SCSI设备的灵活支持,从而满足实现应用程序与HID/SCSI设备的数据通信,具体实现技术方案,如下。
一方面,提供了一种实现HID设备或SCSI设备个人电脑/智能卡PC/SC接口的系统,所述HID为人机接口设备,所述SCSI设备为小型主机系统接口设备,该系统包括:伺服模块、PC/SC驱动模块、设备管理模块和应用程序模块;
所述伺服模块,用于将计算机获取的所述HID设备或SCSI设备的信息上报给所述PC/SC驱动模块,并提供所述HID设备或SCSI设备和所述PC/SC驱动模块之间的数据交互通道;
所述PC/SC驱动模块,用于将所述伺服模块报告的所述HID设备或SCSI设备的信息,上报给所述设备管理模块,并提供所述伺服模块和所述设备管理模块之间的数据交互通道;
所述设备管理模块,用于将所述PC/SC驱动模块报告的所述HID设备或SCSI设备的信息,上报给所述应用程序模块;并向所述应用程序模块提供访问所述HID设备或SCSI设备的接口信息;
所述应用程序模块,用于根据所述设备管理模块报告的所述HID设备或SCSI设备的信息和提供的访问所述HID设备或SCSI设备的接口信息,访问所述HID设备或SCSI设备。
其中,所述伺服模块位于所述系统的应用层,所述伺服模块包括:伺服函数库单元和监控单元;
伺服函数库单元,用于通过提供HID接口设备描述符或SCSI接口设备描述符,进行HID或SCSI协议处理,获取所述HID设备或SCSI设备的信息及实现数据交互;其中,所述HID接口设备描述符,用于向所述计算机声明设备类型具体为HID设备类型,并解析处理HID命令,所述SCSI接口设备描述符,用于向所述计算机声明设备类型具体为SCSI设备类型,并解析处理SCSI命令;
监控单元,用于监控所述HID设备或SCSI设备和所述计算机的连接状态。
其中,在获取所述HID设备或SCSI设备和所述计算机的连接状态实现时,可以采用回调函数的方式和注册表监控方式,相应地,所述监控单元具体为:
第一监控子单元,用于实现所述伺服模块所提供的伺服程序通过所述回调函数获取所述HID设备或SCSI设备与所述计算机的连接状态;或,
第二监控子单元,用于监控注册表,实现所述伺服模块所提供的伺服程序通过对所述注册表指定位置的监控获取所述HID设备或SCSI设备与所述计算机的连接状态。
其中,所述伺服函数库单元至少为一个,当所述伺服函数库单元为多个时,每个伺服函数库单元用于通过各自提供的HID接口设备描述符或SCSI接口设备描述符,进行HID或SCSI协议处理,获取各自对应的HID设备或SCSI设备的信息及实现数据交互。
进一步地,所述设备管理模块还包括:缓冲存储单元,所述缓冲存储单元用于缓存系统当前可用的智能卡SC协议处理器的标识。
另一方面,提供了一种实现HID设备或SCSI设备PC/SC接口的方法,所述HID为人机接口设备,所述SCSI设备为小型主机系统接口设备,该方法包括:
位于计算机应用层的伺服程序创建内核对象并加载伺服函数库,所述伺服函数库将创建的内核对象发送给PC/SC驱动程序;
当所述伺服程序获知HID设备或SCSI设备与所述计算机建立连接后,通过所述PC/SC驱动程序向计算机设备管理程序上报所述HID设备或SCSI设备的信息;
所述计算机设备管理程序根据所述HID设备或SCSI设备的信息,判断所述HID设备或SCSI设备符合访问要求后,所述PC/SC驱动程序将接收的计算机应用程序下发的访问所述HID设备或SCSI设备的指令,通过所述内核对象发送给所述伺服程序;
所述伺服程序接收访问所述HID设备或SCSI设备的指令,调用伺服函数库,获取所述伺服函数库中调用HID或SCSI接口指令的代码信息;
所述计算机应用程序通过所述PC/SC驱动程序和伺服程序,经PC/SC接口对所述HID设备或SCSI设备进行访问。
其中,该方法中位于计算机应用层的伺服程序创建内核对象并加载伺服函数库之前,还包括:
计算机启动,加载PC/SC驱动程序信息至计算机内存;
计算机设备管理程序从所述计算机内存获取系统中的PC/SC驱动程序信息;
所述PC/SC驱动程序向所述计算机设备管理程序注册协议处理器的标识;
相应地,所述判断所述HID设备或SCSI设备符合访问要求,具体为:
根据所述HID设备或SCSI设备的信息中携带的HID设备或SCSI设备的协议处理模块的标识,判断所述标识是否和注册的标识匹配,如果是,则所述HID设备或SCSI设备符合访问要求;否则,所述HID设备或SCSI设备不符合访问要求。
其中,经PC/SC接口对所述HID设备或SCSI设备进行访问的步骤之后,所述方法还包括:
所述计算机中的应用层的伺服程序获取HID设备或SCSI设备中的数据,通过内核对象将所述数据发送给所述PC/SC驱动程序;
所述PC/SC驱动程序通过所述计算机设备管理程序将所述HID设备或SCSI设备中的数据发送给所述计算机应用程序。
其中,上述经PC/SC接口对所述HID设备或SCSI设备进行访问具体为:
打开与所述HID设备或SCSI设备的连接;或,
关闭与所述HID设备或SCSI设备的连接;或,
获取所述HID设备或SCSI设备的复位应答(即ATR);或,
与所述HID设备或SCSI设备进行应用协议数据单元APDU交互。
上述本发明实施例提供的方法中,所述伺服函数库为多个时,每个伺服函数库用于通过各自提供的HID接口设备描述符或SCSI接口设备描述符,进行HID或SCSI协议处理,获取各自对应的HID或SCSI设备的信息,实现数据交互。
进一步地,所述伺服程序加载所述伺服函数库的方法还可以为:创建文件对象方式;
相应地,所述位于计算机应用层的伺服程序创建内核对象并加载伺服函数库,所述伺服函数库将创建的内核象发送给PC/SC驱动程序的步骤,具体为:
位于计算机应用层的伺服程序创建文件对象并加载伺服函数库,所述伺服函数库将创建的文件对象发送给PC/SC驱动程序;
相应地,所述PC/SC驱动程序将接收的计算机应用程序下发的访问所述HID设备或SCSI设备的指令,通过所述内核对象发送给伺服程序的步骤,具体为:
所述PC/SC驱动程序将接收的计算机应用程序下发的访问所述HID设备或SCSI设备的指令,通过所述文件对象发送给伺服程序;
相应地,所述位于计算机应用层的伺服程序创建文件对象并加载伺服函数库之前,还包括:
计算机启动加载PC/SC驱动程序信息至计算机内存;
计算机设备管理程序从计算机内存获取系统中的PC/SC驱动程序信息;
所述PC/SC驱动程序向所述计算机设备管理程序注册协议处理器的标识。
当采用创建文件对象方式,实现伺服程序加载所述伺服函数库时,相应地,方法还包括:
计算机中的应用层的伺服程序获取HID设备或SCSI设备中的数据,通过文件对象将所述数据发送给所述PC/SC驱动程序;所述PC/SC驱动程序通过所述计算机设备管理程序将所述HID设备或SCSI设备中的数据发送给所述计算机应用程序。
所述伺服程序向计算机设备管理程序上报所述HID设备或SCSI设备的信息之前,还包括:所述伺服程序监控所述HID设备或SCSI设备与所述计算机的连接状态,具体方法为:通过回调函数的方式;或,通过注册表监控的方式。
相应地,当采用回调函数的方式时,所述伺服程序通过所述回调函数获取所述HID设备或SCSI设备与所述计算机的连接状态;或;当采用通过注册表监控的方式时,所述伺服程序通过对注册表指定位置的监控获取所述HID设备或SCSI设备与所述计算机的连接状态。
本发明实施例提供的技术方案的有益效果是:
通过将HID或SCSI接口指令从PC/SC驱动程序中分离出来,利用伺服模块来调用HID或SCSI接口指令,为计算机提供了一条访问HID设备或SCSI设备的通道,进而实现HID设备或SCSI设备通过PC/SC接口与计算机进行通信的过程,由于伺服模块中的伺服程序运行在系统应用层,因此伺服程序的编写、修改以及维护都较为简单,伺服程序的运行过程中发生错误,不会导致整个系统的崩溃;当需要支持新的HID设备或SCSI设备时,只需通过更换伺服程序就可以实现计算机系统对新设备的兼容,大大增强了系统的柔韧性和扩展性。另外,设计人员可以利用伺服函数库的功能使程序不至于太过巨大,比如,多个应用程序可以共享伺服函数库中的函数,其中,伺服函数库以一种自然的方式将一个大的应用程序划分为几个小的部分,有利于内部的分工与合作,各个部分可以独立升级等等。
附图说明
图1是本发明实施例1提供的实现HID/SCSI设备PC/SC接口的系统的工作结构图;
图2是本发明实施例2提供的实现HID/SCSI设备PC/SC接口的系统的工作结构图;
图3是本发明实施例3提供的实现HID/SCSI设备PC/SC接口的设备的结构图;
图4是本发明实施例4提供的实现HID/SCSI设备PC/SC接口的方法流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述,但不作为对本发明的限定。
实施例1
本发明实施例提供了一种实现HID/SCSI设备PC/SC接口的系统,本实施例中,该系统具体为计算机1,其中,HID/SCSI设备具体以USB Token为例进行说明,其中,该USB Token为一种USB(Universal Serial BUS,通用串行总线)接口的硬件设备,通过USB口实现与电脑相连接,该USB Token内嵌芯片,可将信息安全地储存在该内嵌芯片中,且该USB Token内置协议处理器,无需单独的读卡器,只要插入到计算机、键盘及显示器的USB接口上,即可实现该USB Token的使用。参见图1,其中,
计算机1包括:伺服模块11、PC/SC驱动模块12、设备管理模块13、应用程序模块14;
USB Token 2包括:USB接口模块21、协议处理模块22、智能卡芯片模块23。如前文所述,该USB Token 2为HID/SCSI接口的设备;
下面将详细针对上述各功能模块的作用进行说明:
针对USB Token 2而言,其中,
USB接口模块21用于实现USB Token 2和计算机1的连接,在本实施例中,USB接口模块21实现时,可以采用USB接口芯片;
协议处理模块22用于与智能卡芯片模块23中运行的卡操作系统进行数据交互,获取智能卡芯片模块23中的数据信息;
智能卡芯片模块23用于存储用户的密钥、数字证书及密文信息等数据,利用智能卡芯片模块23内置的密码学算法能够实现对用户身份的认证;其中,该智能卡芯片模块23具体设计实现时,可以为基于安全设计的智能卡芯片。
针对计算机1而言,其中,
伺服模块11,用于将USB Token 2的信息报告给PC/SC驱动模块,并为上下两层模块间的数据交互提供通道,该伺服模块位于计算机的应用层;其中,该伺服模块11具体可以包括:伺服函数库单元111和监控单元112:
该伺服模块11通过调用伺服函数库单元111来获取HID/SCSI设备的信息(本实施例具体为USB Token 2的信息)及实现数据交互;
监控单元112,用于监控USB Token 2与计算机模块的连接状态;可以通过该监控单元112获知,该USB Token 2是否与计算机模块建立了连接。
如图1所示,其中,伺服函数库单元111包含HID协议处理区和SCSI协议处理区,HID协议处理区用于进行HID协议处理,获取HID设备的信息和实现数据交互,HID协议处理区内置有HID接口设备描述符,用于向计算机1声明其自身为HID设备类型,并解析处理HID命令;SCSI协议处理区用于进行SCSI协议处理,获取SCSI设备的信息及实现数据交互;SCSI协议处理区内置有SCSI接口设备描述符,用于向计算机1声明其自身为SCSI设备类型,并解析处理SCSI命令。
上述,描述符是数据结果或信息的格式化块,用于使计算机1获知USB Token 2的具体设备类型(如,HID设备类型或SCSI设备类型),其中,每个描述符包含了关于USB Token 2的整体信息或者一个元素的信息,具体如下:
按照HID协议标准,符合HID接口标准的设备其描述符的特征是:在接口描述符中,字节0是描述符的字节长度,值为09h;字节1是描述符类型,值为04h;字节4是支持的终端号,值为01h;字节5是类代码,值为03h;字节6是子类代码,值为00h;字节7是协议代码,值为00h。在类型描述符中,字节0是描述符的字节长度;字节1为HID类,值为21h;字节2是HID规范发布号,它采用二进制编码的十进制格式,比如1.0版本是0100h,1.1版本是0110h。符合HID接口标准的设备的其它描述符中的字节,如设备描述符、配置描述符中的字节以及上述接口描述符和类型描述符中的其它字节仍按照USB协议中的规定设备。
按照SCSI协议标准,符合USB-SCSI接口标准的设备其描述符的特征是:在接口描述符中,字节0是描述符的字节长度,值为09h;字节1是描述符类型,值为04h;字节4是支持的终端号;字节5是类代码,值为08h;字节6为子类代码,值为00h;字节7是协议代码,值为50h。在类型描述符中,字节0是描述符的字节长度,字节2是SCSI规范的版本号。符合SCSI接口标准的设备的其它描述符中的字节,如设备描述符、配置描述符中的字节以及上述接口描述符和类型描述符中的其它字节仍按照USB协议中的规定设置。
PC/SC驱动模块12,用于将通过伺服模块11获取的USB Token 2的信息报告给设备管理模块13,并为上下两层模块的数据交互提供通道。
设备管理模块13,用于将通过PC/SC驱动模块12获取的USB Token 2的信息报告给应用程序模块14,并向应用程序模块14提供访问USB Token 2的接口。其中,该设备管理模块是计算机1的系统组件,该设备管理模块13还包括缓冲存储单元131,该缓冲存储单元131用于存储系统当前可用的PC/SC协议处理器的名称,即向系统注册的PC/SC协议处理器的名称。
应用程序模块14,用于获取到通过设备管理模块13获取的USB Token 2的信息后,访问USB Token 2,与USB Token 2进行数据交互。
其中,在获取HID/SCSI设备和计算机的连接状态实现时,可以采用回调函数的方式和注册表监控方式,相应地,监控单元具体为:
第一监控子单元,用于实现伺服程序通过回调函数获取HID/SCSI设备与计算机的连接状态;或,
第二监控子单元,用于监控注册表,实现伺服程序通过对注册表指定位置的监控获取HID/SCSI设备与计算机的连接状态。
综上所述,本发明实施例提供的实现HID/SCSI设备PC/SC接口的系统,将HID/SCSI接口指令从PC/SC驱动程序中分离出来,通过伺服模块来调用HID/SCSI接口指令,为计算机提供了一条访问HID/SCSI设备的通道,进而实现HID/SCSI设备通过PC/SC接口与计算机进行通信的过程,由于伺服模块中的伺服程序运行在系统应用层,因此伺服程序的编写、修改以及维护都较为简单,伺服程序的运行过程中发生错误,不会导致整个系统的崩溃;当需要支持新的HID/SCSI设备时,只需通过更换伺服程序就可以实现计算机系统对新设备的兼容,大大增强了系统的柔韧性和扩展性。另外,设计人员可以利用伺服函数库的功能使程序不至于太过巨大,比如,多个应用程序可以共享伺服函数库中的函数,其中,伺服函数库以一种自然的方式将一个大的应用程序划分为几个小的部分,有利于内部的分工与合作,各个部分可以独立升级等等。
实施例2
如图2所示,本发明实施例提供了一种通过使用不同的伺服模块实现对多个USB Token进行访问的系统,与实施例1的区别在于,在本实施例中,伺服模块11包括多个伺服函数库单元。
计算机1通过调用不同的伺服函数库单元来实现与多个USB Token的数据通信,每个伺服函数库单元中都包括各自独立的HID协议处理区和SCSI协议处理区。
如图2所示,在本实施例中,第一伺服函数库单元关联USB Token1、第二伺服函数库单元关联USB Token2、第三伺服函数库单元关联USB Token3,伺服模块11通过调用不同的伺服函数库单元分别与不同的USB Token进行数据通信。
相应地,监控单元的作用是监控各USB Token和计算机的连接状态。
综上所述,本发明实施例提供的系统,进一步地实现了系统对多个USB Token进行访问的功能,提高了系统的访问性能,方便了用户的操作使用。
实施例3
参见图3,本发明实施例提供了一种实现HID/SCSI设备PC/SC接口的设备,与本发明实施例1提供的系统相应,该设备包括:伺服模块11、PC/SC驱动模块12、设备管理模块13、应用程序模块14;下面将详细针对上述各功能模块的作用进行说明:
伺服模块11,用于将USB Token 2的信息报告给PC/SC驱动模块,并为上下两层模块间的数据交互提供通道,该伺服模块位于该设备的应用层。其中,该伺服模块11具体可以包括:伺服函数库单元111和监控单元112:
该伺服模块11通过调用伺服函数库单元111来获取HID/SCSI设备的信息(本实施例具体为USB Token 2的信息)及实现数据交互;
监控单元112,用于监控USB Token 2与该设备的连接状态;可以通过该监控单元112获知,该USB Token 2是否与该设备建立了连接。
如图1所示,其中,伺服函数库单元111包含HID协议处理区和SCSI协议处理区,HID协议处理区用于进行HID协议处理,获取HID设备的信息和实现数据交互,HID协议处理区内置有HID接口设备描述符,用于向该设备1声明其自身为HID设备类型,并解析处理HID命令;SCSI协议处理区用于进行SCSI协议处理,获取SCSI设备的信息及实现数据交互;SCSI协议处理区内置有SCSI接口设备描述符,用于向该设备1声明其自身为SCSI设备类型,并解析处理SCSI命令。
上述,描述符是数据结果或信息的格式化块,用于使该设备1或获知USB Token 2的设备类型(如,HID设备类型或SCSI设备类型),其中,每个描述符包含了关于USB Token 2的整体信息或者一个元素的信息,具体如下:
按照HID协议标准,符合HID接口标准的设备其描述符的特征是:在接口描述符中,字节0是描述符的字节长度,值为09h;字节1是描述符类型,值为04h;字节4是支持的终端号,值为01h;字节5是类代码,值为03h;字节6是子类代码,值为00h;字节7是协议代码,值为00h。在类型描述符中,字节0是描述符的字节长度;字节1为HID类,值为21h;字节2是HID规范发布号,它采用二进制编码的十进制格式,比如1.0版本是0100h,1.1版本是0110h。符合HID接口标准的设备的其它描述符中的字节,如设备描述符、配置描述符中的字节以及上述接口描述符和类型描述符中的其它字节仍按照USB协议中的规定设备。
按照SCSI协议标准,符合USB-SCSI接口标准的设备其描述符的特征是:在接口描述符中,字节0是描述符的字节长度,值为09h;字节1是描述符类型,值为04h;字节4是支持的终端号;字节5是类代码,值为08h;字节6为子类代码,值为00h;字节7是协议代码,值为50h。在类型描述符中,字节0是描述符的字节长度,字节2是SCSI规范的版本号。符合SCSI接口标准的设备的其它描述符中的字节,如设备描述符、配置描述符中的字节以及上述接口描述符和类型描述符中的其它字节仍按照USB协议中的规定设置。
其中,在获取HID/SCSI设备和计算机的连接状态实现时,可以采用回调函数的方式和注册表监控方式,相应地,监控单元具体为:
第一监控子单元,用于实现伺服程序通过回调函数获取HID/SCSI设备与计算机的连接状态;或,
第二监控子单元,用于监控注册表,实现伺服程序通过对注册表指定位置的监控获取HID/SCSI设备与计算机的连接状态。
PC/SC驱动模块12,用于将通过伺服模块11获取的USB Token 2的信息报告给设备管理模块13,并为上下两层模块的数据交互提供通道。
设备管理模块13,用于将通过PC/SC驱动模块12获取的USB Token 2的信息报告给应用程序模块14,并向应用程序模块14提供访问USB Token 2的接口。其中,该设备管理模块是该设备1的系统组件,该设备管理模块13还包括缓冲存储单元131,该缓冲存储单元131用于存储系统当前可用的PC/SC协议处理器的名称,即向系统注册的PC/SC协议处理器的名称。
应用程序模块14,用于获取到通过设备管理模块13获取的USB Token 2的信息后,访问USB Token 2,与USB Token 2进行数据交互。
进一步地,本发明实施例提供的设备的伺服模块11包括多个伺服函数库单元。通过调用不同的伺服函数库单元来实现与多个USB Token的数据通信,每个伺服函数库单元中都包括各自独立的HID协议处理区和SCSI协议处理区,监控单元的作用相应地,便是监控各USBToken和计算机的连接状态。从而,进一步地实现了设备对多个USB Token进行访问的功能,提高了设备的访问性能,方便了用户的操作使用。
综上所述,本发明实施例提供的实现HID/SCSI设备PC/SC接口的设备,将HID/SCSI接口指令从PC/SC驱动程序中分离出来,通过伺服模块来调用HID/SCSI接口指令,为该设备提供了一条访问HID/SCSI设备的通道,进而实现HID/SCSI设备通过PC/SC接口与该设备进行通信的过程,由于伺服模块中的伺服程序运行在系统应用层,因此伺服程序的编写、修改以及维护都较为简单,伺服程序的运行过程中发生错误,不会导致整个系统的崩溃;当需要支持新的HID/SCSI设备时,只需通过更换伺服程序就可以实现该设备系统对新设备的兼容,大大增强了系统的柔韧性和扩展性。另外,设计人员可以利用伺服函数库的功能使程序不至于太过巨大,比如,多个应用程序可以共享伺服函数库中的函数,其中,伺服函数库以一种自然的方式将一个大的应用程序划分为几个小的部分,有利于内部的分工与合作,各个部分可以独立升级等等。
实施例4
参见图4,本发明实施例提供了一种实现HID/SCSI设备PC/SC接口的方法,与本发明实施例1提供的系统相应,本实施例中,HID/SCSI设备仍以USB Token为例进行说明,其中,该USB Token为一种USB(Universal Serial BUS,通用串行总线)接口的硬件设备,通过USB口为其与电脑相连接,该USB Token内嵌芯片,可将信息安全地储存在该内嵌芯片中,且该USB Token内置协议处理器无需单独的读卡器,只要插入到计算机、键盘及显示器的USB接口上,即可实现该USB Token的使用。该方法内容如下:
步骤401:计算机启动,加载PC/SC驱动程序信息至计算机内存;
其中,该步骤中,本领域技术人员可以获知,在计算机启动的时候,会加载操作系统运行的相关程序,由于PC/SC驱动程序位于操作系统的内核程序中,所以同样会实现该PC/SC驱动程序的加载,于是,在计算机启动时实现加载PC/SC驱动程序至计算机内存。
步骤402:设备管理程序从计算机内存获取系统中的PC/SC驱动程序信息;
其中,由于在步骤401中计算机内存中已经保存了加载成功的PC/SC驱动程序信息,即该加载成功的PC/SC驱动程序信息具体为在操作系统中进行注册的PC/SC驱动程序信息,该步骤402在具体实现时,可以通过设备管理程序采用枚举计算机内存中的驻留的各程序的形式,获取到所需要的该PC/SC驱动程序信息。
步骤403:PC/SC驱动程序向设备管理器中的设备管理程序注册协议处理器的名称;
其中,该步骤是为了确保后续只有匹配了在该设备管理程序中注册的协议处理器的USBToken,才能实现数据的读取操作。
为了便于说明,本发明实施例以PC/SC驱动程序向设备管理程序注册协议处理器的名称为USB Token的协议处理器名称为例,即本发明实施例提供的USB Token的协议处理器符合该计算机的读取数据的要求。
步骤404:伺服程序初始化,创建内核对象加载伺服函数库,并伺服函数库将内核对象下发给PC/SC驱动程序。该伺服程序位于计算机系统的应用层;
步骤405:监控程序判断USB Token是否与计算机建立连接,如果是,则执行步骤406;否则,执行步骤416;
其中,在该步骤中判断USB Token是否与计算机建立连接可以采用如下的方式:
采用回调函数的方式,实现伺服程序通过回调函数获取HID/SCSI设备与计算机的连接状态;
采用监控注册表的方式,通过监控注册表,实现伺服程序通过对注册表指定位置的监控获取HID/SCSI设备与计算机的连接状态。
本发明实施例不限制实现判断USB Token是否与计算机建立连接时所采用的具体方式。
步骤406:伺服程序将USB Token的信息报告给PC/SC驱动程序;
其中,在步骤406中,USB Token的信息主要为USB Token中协议处理器的信息。
步骤407:PC/SC驱动程序将USB Token的信息报告给计算机系统的设备管理器;
由于伺服函数库在初始化过程中,首先创建内核对象,伺服函数库通过函数将内核对象下发给PC/SC驱动程序,以进行后续的数据交互。具体为:
   //创建发送数据的内涵对象
   hEvents.hEventSnd=CreateEvent(NULL,FALSE,FALSE,″FTSmcSnd″);
   //创建接受数据的内涵对象
   hEvents.hEventRcv=CreateEvent(NULL,FALSE,FALSE,″FTSmcRcv″);
伺服函数库通过DeviceIoControl()将内核对象下发给PC/SC驱动程序,以进行后续的数据交互。
DeviceIoControl(
                    hFile,            //设备句柄
                    IOCTL_FTSMC_SET_EVENTS,    //IO控制代码
                    &hEvents,        //输入缓冲区
                    sizeof(FTSMC_SHARED_EVENTS),//输入数据长度
                    NULL,             //输出缓冲区
                    0,                //输出缓冲区大小.
                    &dwReturn,        //实际输出数据长度
                NULL
                );
步骤408:伺服程序等待内核对象以接收或发送指令数据;
//驱动层:设置事件,通知伺服程序,有数据下发,请接受
KeSetEvent(hEventSnd,0,FALSE);
//伺服程序
while(true){
  //等待内核对象事件
  if(WAIT_OBJECT_0+1==WaitForMultipleObjects(2,handles,FALSE,INFINITE))
     return 0;        //退出
   //获取内核驱动对象携带的数据
   ReadFile(g_hFile,g_snd,sizeof(g_snd),&dwRead,NULL);
   //根据内核对象携带的信息,对数据做不同的处理
   Switch(KernelFunc)
 {
   Case 0:
      ……
break;
   Default:
      ……
      break;
}
//将处理结果反馈给内核驱动对象
WriteFile(g_hFile,g_rcv,rcvLen,&dwWritten,NULL);
//告知驱动对象,可以获取返回的数据了
SetEvent(hEventRcv);
}
步骤409:PC/SC驱动程序接收到计算机的应用程序下发的访问USB Token的指令;
步骤410:PC/SC驱动程序将应用程序下发的访问USB Token的指令通过内核对象报告给伺服程序;
步骤411:伺服程序接收到访问USB Token的指令后,调用伺服函数库,运行伺服函数库中的打开、启用、查询或关闭指令;
打开:
  if(!InitFTSmcLib())
  {
       //初始化失败
       g_LibStatus=STATUS_LIB_INIT_FAILED;
       return FALSE;
  }
  else
  {
     //初始化成功
     g_LibStatus=STATUS_LIB_INIT_OK;
   }
启用:
  if(!EnableFTSmcLib())
  {
     //操作失败
     g_LibStatus=STATUS_LIB_ENABLE_FAILED;
     return FALSE;
  }
  else
  {
      //操作成功
      g_LibStatus=STATUS_LIB_ENABLE_OK;
   }
查询:
   if(!QureyFtSmcLib(szTokenVID,nStatus))    //查询指定的设备状态
   {
     //操作失败
     g_LibStatus=STATUS_LIB_QUERY_FAILED;
     return FALSE;
  }
  else
  {
     //操作成功
     g_LibStatus=STATUS_LIB_QUERY_OK;
   }
关闭:
   if(!FinalizeFTSmcLib())
   {
      //操作失败
      g_LibStatus=STATUS_LIB_CLOSE_FAILED;
      return FALSE;
   }
   else
   {
      //操作成功
      g_LibStatus=STATUS_LIB_CLOSE_OK;
   }
步骤412:伺服函数库向伺服程序提供调用HID/SCSI接口指令的代码;
if(!TransmitFTSmcLib (pInput,nInput,
                     pOutput,&nOutLen,
                     nOpMode)
   )
{
   //操作失败
   g_LibStatus=STATUS_LIB_TRANSMIT_FAILED;
   return FALSE;
   }
   else
   {
       //操作成功
       g_LibStatus=STATUS_LIB_TRANSMIT_OK;
}
步骤413:应用程序通过PC/SC驱动程序及伺服程序经PC/SC接口对USB Token进行访问;其中,访问具体包括:
1)打开与USB Token的连接;
2)关闭与USB Token的连接;
3)获取USB Token的复位应答,即ATR(Answer To Reset,响应复位);
4)与USB Token进行APDU交互。其中,APDU(Application Protocol Data Unit,应用协议数据单元)在OSI参考模型的第七层,是应用层进行信息交换时所使用的基本信息单元。
其中,打开与USB Token的连接时,可以采用如下方式:
SCardConnect(ContextHandle,                //所述设备管理器上下文句柄
                 strFTSmcReader,           //所述PC/SC驱动名
                 SCARD_SHARE_SHARED, //访问模式
                 SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1,//通讯协议选择
                 &CardHandle,             //返回的卡句柄
              &ActiveProtocol);         //返回的当前卡片应用协议
关闭与USB Token的连接时,可以采用如下方式:
SCardDi sconnect(CardHandle,SCARD_EJECT_CARD);
获取USB Token的复位应答(取ATR)时,可以采用如下方式:
SCardStatus(CardHandle,            //卡句柄
                 strFTSmcReader,   //所述PC/SC驱动名
                 &dwLength,        //数据长度
                 &dwCardState,     //卡状态
                 &dwActiveProtocol,  //当前协议
       pbyATR,        //复位应答缓冲区
    &dwATRLength);  //实际应答信息长度
执行与USB Token进行APDU数据交互时,可以采用如下方式:
SCardTransmit(CardHandle,               //卡句柄
                    &IO_Request,        //SCARD_IO_REQUEST信息
                    (PUCHAR)SendData,   //下发的指令缓冲区
                    nCmdLen,            //指令缓冲区大小
                    NULL,               //返回的SCARD_IO_REQUEST信息
                    (PUCHAR)ReceiveData,//接收数据缓冲区
                    &nRespLen);         //接收数据缓冲区大小
步骤414:伺服程序获取USB Token中的数据后,通过内核对象将该数据传送给PC/SC驱动程序;可以采用如下方式:
//驱动层:等待数据返回
   KeWaitForSingleObject(
               hEventRcv,
               Executive,
               KernelMode,
               FALSE,
               pDueTime
            );
    //驱动层:数据返回后,将数据反馈给上层缓冲区
    RtlCopyMemory(……);
    //
步骤415:PC/SC驱动程序通过系统设备管理器将USB Token中数据传送给应用程序。
当USB Token与计算机建立联系后,通过上述步骤406至415实现了计算机的应用程序和该USB Token的数据交互过程。
步骤416:等待USB Token与主机建立连接。
如图4所示,当等待到USB Token与主机建立连接后,执行步骤406至步骤415。
通过本实施例,具体说明了HID/SCSI设备PC/SC接口的实现原理,其中,上述本发明实施例在实现时,是采用伺服程序创建内核对象并加载伺服函数库实现的,本领域技术人员还可以获知,伺服程序还可以通过采用创建文件对象方式实现加载伺服函数库;当采用采用创建文件对象方式实现时,相应地,位于计算机应用层的伺服程序创建内核对象并加载伺服函数库,伺服函数库将创建的内核对象发送给PC/SC驱动程序的步骤,具体为:
位于计算机应用层的伺服程序创建文件对象并加载伺服函数库,伺服函数库将创建的文件对象发送给PC/SC驱动程序;
相应地,PC/SC驱动程序将接收的计算机应用程序下发的访问HID/SCSI设备的指令,通过内核对象发送给伺服程序的步骤,具体为:
PC/SC驱动程序将接收的计算机应用程序下发的访问HID/SCSI设备的指令,通过文件对象发送给伺服程序;
相应地,位于计算机应用层的伺服程序创建文件对象并加载伺服函数库之前,还包括:
计算机启动加载PC/SC驱动程序信息至计算机内存;
计算机设备管理程序从计算机内存获取系统中的PC/SC驱动程序信息;
PC/SC驱动程序向设备管理程序注册协议处理器的标识。
当采用创建文件对象方式,实现伺服程序加载伺服函数库时,相应地,方法还包括:
计算机中的应用层的伺服程序获取HID/SCSI设备中的数据,通过文件对象将数据发送给PC/SC驱动程序;
PC/SC驱动程序通过设备管理程序将HID/SCSI设备中的数据发送给应用程序。
综上所述,本发明实施例提供的实现HID/SCSI设备PC/SC接口的方法,通过将HID/SCSI接口指令从PC/SC驱动程序中分离出来,利用伺服模块来调用HID/SCSI接口指令,为计算机提供了一条访问HID/SCSI设备的通道,进而实现HID/SCSI设备通过PC/SC接口与计算机进行通信的过程,由于伺服模块中的伺服程序运行在系统应用层,因此伺服程序的编写、修改以及维护都较为简单,伺服程序的运行过程中发生错误,不会导致整个系统的崩溃;当需要支持新的HID/SCSI设备时,只需通过更换伺服程序就可以实现计算机系统对新设备的兼容,大大增强了系统的柔韧性和扩展性。另外,设计人员可以利用伺服函数库的功能使程序不至于太过巨大,比如,多个应用程序可以共享伺服函数库中的函数,其中,伺服函数库以一种自然的方式将一个大的应用程序划分为几个小的部分,有利于内部的分工与合作,各个部分可以独立升级等等。
实施例5
相应与本发明实施例2所提供的实现HID/SCSI设备PC/SC接口的系统,本发明实施例提供了一种实现HID/SCSI设备PC/SC接口的方法,该方法中,在应用层伺服程序中通过设置多个伺服函数库,不同的伺服函数库由同一个应用层伺服程序对其进行调用,每个伺服函数库对应不同的USB Token,从而实现应用程序对多个USB Token的访问。其中,所谓的不同的USB Token是指具有不同的其中具有不同的协议处理器名称的HID/SCSI设备。
通过本发明实施例提供的方法,若要实现对不同的USB Token的访问,只需通过PC/SC驱动程序向设备管理程序注册USB Token中相应协议处理器的名称,便可实现应用程序对不同USB Token的访问,具体流程参见实施例3。本领域技术人员可以获知,由于PC/SC驱动程序位于计算机系统的内核层,所以在实现向设备管理程序注册USB Token中相应协议处理器的名称时,需要重新启动计算机。
本发明实施例中的“接收”一词可以理解为主动从其他模块获取也可以是接收其他模块发送来的信息。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必需的。
本领域技术人员可以理解实施例中的系统(或设备)中的模块可以按照实施例描述分布于实施例的系统(或设备)中,也可以进行相应变化位于不同于本实施例的一个或多个系统(或设备)中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。

Claims (13)

1.一种实现HID设备或SCSI设备个人电脑/智能卡PC/SC接口的系统,所述HID为人机接口设备,所述SCSI设备为小型主机系统接口设备,其特征在于,所述系统包括:伺服模块、PC/SC驱动模块、设备管理模块和应用程序模块;
所述伺服模块,用于将计算机获取的所述HID设备或SCSI设备的信息上报给所述PC/SC驱动模块,并提供所述HID设备或SCSI设备和所述PC/SC驱动模块之间的数据交互通道;
所述PC/SC驱动模块,用于将所述伺服模块报告的所述HID设备或SCSI设备的信息,上报给所述设备管理模块,并提供所述伺服模块和所述设备管理模块之间的数据交互通道;
所述设备管理模块,用于将所述PC/SC驱动模块报告的所述HID设备或SCSI设备的信息,上报给所述应用程序模块;并向所述应用程序模块提供访问所述HID设备或SCSI设备的接口信息;
所述应用程序模块,用于根据所述设备管理模块报告的所述HID设备或SCSI设备的信息和提供的访问所述HID设备或SCSI设备的接口信息,访问所述HID设备或SCSI设备。
2.如权利要求1所述的系统,其特征在于,所述伺服模块位于所述系统的应用层,所述伺服模块包括:伺服函数库单元和监控单元;
伺服函数库单元,用于通过提供HID接口设备描述符或SCSI接口设备描述符,进行HID或SCSI协议处理,获取所述HID设备或SCSI设备的信息及实现数据交互;其中,所述HID接口设备描述符,用于向所述计算机声明设备类型具体为HID设备类型,并解析处理HID命令;所述SCSI接口设备描述符,用于向所述计算机声明设备类型具体为SCSI设备类型,并解析处理SCSI命令;
监控单元,用于监控所述HID设备或SCSI设备和所述计算机的连接状态。
3.如权利要求2所述的系统,其特征在于,所述监控单元具体为:
第一监控子单元,用于实现所述伺服模块所提供的伺服程序通过回调函数获取所述HID设备或SCSI设备与所述计算机的连接状态;或,
第二监控子单元,用于监控注册表,实现所述伺服模块所提供的伺服程序通过对所述注册表指定位置的监控获取所述HID设备或SCSI设备与所述计算机的连接状态。
4.如权利要求2所述的系统,其特征在于,
当所述伺服函数库单元为多个时,每个伺服函数库单元用于通过各自提供的HID接口设备描述符或SCSI接口设备描述符,进行HID或SCSI协议处理,获取各自对应的HID设备或SCSI设备的信息及实现数据交互。
5.如权利要求1所述的系统,其特征在于,所述设备管理模块还包括:缓冲存储单元,所述缓冲存储单元用于缓存系统当前可用的智能卡SC协议处理器的标识。
6.一种实现HID设备或SCSI设备个人电脑/智能卡PC/SC接口的方法,所述HID为人机接口设备,所述SCSI设备为小型主机系统接口设备,其特征在于,所述方法包括:
位于计算机应用层的伺服程序创建内核对象并加载伺服函数库,所述伺服函数库将创建的内核对象发送给PC/SC驱动程序;
当所述伺服程序获知HID设备或SCSI设备与所述计算机建立连接后,通过所述PC/SC驱动程序向计算机设备管理程序上报所述HID设备或SCSI设备的信息;
所述计算机设备管理程序根据所述HID设备或SCSI设备的信息,判断所述HID设备或SCSI设备符合访问要求后,所述PC/SC驱动程序将接收的计算机应用程序下发的访问所述HID设备或SCSI设备的指令,通过所述内核对象发送给所述伺服程序;
所述伺服程序接收访问所述HID设备或SCSI设备的指令,调用伺服函数库,获取所述伺服函数库中调用HID或SCSI接口指令的代码信息;
所述计算机应用程序通过所述PC/SC驱动程序和伺服程序,经PC/SC接口对所述HID设备或SCSI设备进行访问。
7.如权利要求6所述的方法,其特征在于,所述位于计算机应用层的伺服程序创建内核对象并加载伺服函数库之前,还包括:
计算机启动,加载PC/SC驱动程序信息至计算机内存;
计算机设备管理程序从所述计算机内存获取系统中的PC/SC驱动程序信息;
所述PC/SC驱动程序向所述计算机设备管理程序注册协议处理器的标识;
相应地,所述判断所述HID设备或SCSI设备符合访问要求,具体为:
根据所述HID设备或SCSI设备的信息中携带的HID设备或SCSI设备的协议处理器的标识,判断所述标识是否和注册的标识匹配,如果是,则所述HID设备或SCSI设备符合访问要求;否则,所述HID设备或SCSI设备不符合访问要求。
8.如权利要求6所述的方法,其特征在于,所述方法还包括:
所述计算机中的应用层的伺服程序获取HID设备或SCSI设备中的数据,通过内核对象将所述数据发送给所述PC/SC驱动程序;
所述PC/SC驱动程序通过所述计算机设备管理程序将所述HID设备或SCSI设备中的数据发送给所述计算机应用程序。
9.如权利要求6所述的方法,其特征在于,所述经PC/SC接口对所述HID设备或SCSI设备进行访问具体为:
打开与所述HID设备或SCSI设备的连接;或,
关闭与所述HID设备或SCSI设备的连接;或,
获取所述HID设备或SCSI设备的复位应答;或,
与所述HID设备或SCSI设备进行应用协议数据单元APDU交互。
10.如权利要求6所述的方法,其特征在于,所述伺服函数库为多个时,每个伺服函数库用于通过各自提供的HID接口设备描述符或SCSI接口设备描述符,进行HID或SCSI协议处理,获取各自对应的HID设备或SCSI设备的信息,实现数据交互。
11.如权利要求6所述的方法,其特征在于,所述伺服程序加载所述伺服函数库的方法还可以为:创建文件对象方式;
相应地,所述位于计算机应用层的伺服程序创建内核对象并加载伺服函数库,所述伺服函数库将创建的内核对象发送给PC/SC驱动程序的步骤,具体为:
位于计算机应用层的伺服程序创建文件对象并加载伺服函数库,所述伺服函数库将创建的文件对象发送给PC/SC驱动程序;
相应地,所述PC/SC驱动程序将接收的计算机应用程序下发的访问所述HID设备或SCSI设备的指令,通过所述内核对象发送给伺服程序的步骤,具体为:
所述PC/SC驱动程序将接收的计算机应用程序下发的访问所述HID设备或SCSI设备的指令,通过所述文件对象发送给伺服程序;
相应地,所述位于计算机应用层的伺服程序创建文件对象并加载伺服函数库之前,还包括:
计算机启动,加载PC/SC驱动程序信息至计算机内存;
计算机设备管理程序从计算机内存获取系统中的PC/SC驱动程序信息;
所述PC/SC驱动程序向所述计算机设备管理程序注册协议处理器的标识。
12.如权利要求11所述的的方法,其特征在于,所述方法还包括:
计算机中的应用层的伺服程序获取HID设备或SCSI设备中的数据,通过文件对象将所述数据发送给所述PC/SC驱动程序;
所述PC/SC驱动程序通过所述计算机设备管理程序将所述HID设备或SCSI设备中的数据发送给所述计算机应用程序。
13.如权利要求6所述的方法,其特征在于,所述伺服程序向计算机设备管理程序上报所述HID设备或SCSI设备的信息之前,还包括:所述伺服程序监控所述HID设备或SCSI设备与所述计算机的连接状态,具体为:
所述伺服程序通过回调函数获取所述HID设备或SCSI设备与所述计算机的连接状态;和/或,
所述伺服程序通过对注册表指定位置的监控,获取所述HID设备或SCSI设备与所述计算机的连接状态。
CN2008101174823A 2008-07-31 2008-07-31 一种实现hid/scsi设备pc/sc接口的系统和方法 Active CN101329661B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101174823A CN101329661B (zh) 2008-07-31 2008-07-31 一种实现hid/scsi设备pc/sc接口的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101174823A CN101329661B (zh) 2008-07-31 2008-07-31 一种实现hid/scsi设备pc/sc接口的系统和方法

Publications (2)

Publication Number Publication Date
CN101329661A CN101329661A (zh) 2008-12-24
CN101329661B true CN101329661B (zh) 2010-04-21

Family

ID=40205475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101174823A Active CN101329661B (zh) 2008-07-31 2008-07-31 一种实现hid/scsi设备pc/sc接口的系统和方法

Country Status (1)

Country Link
CN (1) CN101329661B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582057B (zh) * 2009-04-01 2012-04-18 飞天诚信科技股份有限公司 一种控制人机接口设备通信传输的方法、设备和系统
WO2015096158A1 (zh) * 2013-12-27 2015-07-02 华为技术有限公司 一种存储设备的管理方法及设备
CN106250750B (zh) * 2016-07-18 2019-08-16 深圳市文鼎创数据科技有限公司 基于MacOSX系统的USB设备接入方法及装置
CN109885341A (zh) * 2019-02-20 2019-06-14 无锡宝威电子有限公司 一种通用设备驱动模型、系统及应用

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1252672A (zh) * 1998-10-26 2000-05-10 网兴科技股份有限公司 由区域网路共用影像处理装置的结构和方法
CN1434936A (zh) * 1999-12-22 2003-08-06 西加特技术有限责任公司 用于管理将数据转移入和转移出磁盘驱动器中缓冲器的缓冲器管理系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1252672A (zh) * 1998-10-26 2000-05-10 网兴科技股份有限公司 由区域网路共用影像处理装置的结构和方法
CN1434936A (zh) * 1999-12-22 2003-08-06 西加特技术有限责任公司 用于管理将数据转移入和转移出磁盘驱动器中缓冲器的缓冲器管理系统

Also Published As

Publication number Publication date
CN101329661A (zh) 2008-12-24

Similar Documents

Publication Publication Date Title
KR100294969B1 (ko) 월드와이드웹을통해액세스되는소프트웨어애플리케이션용공통사용자인터페이스를제공하는컴퓨터장치및방법
US6895588B1 (en) Remote device access over a network
US7500601B2 (en) Smart card personalization in a multistation environment
US5230052A (en) Apparatus and method for loading bios into a computer system from a remote storage location
CN100385426C (zh) 基于通用串行总线的pc闪存盘的体系结构
US8970350B2 (en) Maintaining RFID information for virtual machines
KR19980063503A (ko) 월드 와이드 웹 상에서 소프트웨어 애플리케이션과 컴퓨터간에 통신하기 위한 컴퓨터 장치 및 방법
CN101151608A (zh) 开发人员容易地找出或扩展系统上周知位置的能力
EP2339493A1 (en) Authenticating human interface device
JP5121326B2 (ja) Usbインタフェース規格に準拠する情報媒体を処理する金融取引端末及びその作業方法
CN101329661B (zh) 一种实现hid/scsi设备pc/sc接口的系统和方法
WO2011064539A1 (en) Security system & method
KR100374526B1 (ko) 스마트 카드 및 그를 이용한 컴퓨터 프로그램 동작 방법
US8533747B2 (en) Method and system for selecting one or more integrated circuit card interface devices
CN100547546C (zh) 一种软硬件智能识别和保护方法
CN106778193B (zh) 一种客户端和ui交互方法
CN113282890B (zh) 资源授权方法、装置、电子设备及存储介质
JP6860796B2 (ja) 情報処理システム、情報処理装置およびプログラム
CN100464276C (zh) 配置和保护用户软硬件配置信息的方法和系统
CN116170794B (zh) 一种用于智能卡在线空发系统及其方法
AU2021100771A4 (en) Intelligent Pen Drive: Highest data Security (Auto Data store your gmail and link share your mobile no.) using AI- Based Programming
US6574677B1 (en) Method for using smart card on HPC
JP2004326157A (ja) 非接触無線タグ応用ソフトウェア開発システム
CN112116342A (zh) 一种支付设备通信方法和装置
CN115033297A (zh) 基于一次指纹触摸实现开机并登录云桌面的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: FEITIAN CHENGXIN TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: BEIJING FEITIAN CHENGXIN SCIENCE + TECHNOLOGY CO. LTD.

CP03 Change of name, title or address

Address after: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 17 layer

Patentee after: Feitian Technologies Co., Ltd.

Address before: 100083, Haidian District, Xueyuan Road, No. 40 research, 7 floor, 5 floor, Beijing

Patentee before: Beijing Feitian Chengxin Science & Technology Co., Ltd.