CN103077053A - 向usb key下载cos的方法及装置 - Google Patents

向usb key下载cos的方法及装置 Download PDF

Info

Publication number
CN103077053A
CN103077053A CN2012105920561A CN201210592056A CN103077053A CN 103077053 A CN103077053 A CN 103077053A CN 2012105920561 A CN2012105920561 A CN 2012105920561A CN 201210592056 A CN201210592056 A CN 201210592056A CN 103077053 A CN103077053 A CN 103077053A
Authority
CN
China
Prior art keywords
usb key
cos
usb
subelement
key
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.)
Granted
Application number
CN2012105920561A
Other languages
English (en)
Other versions
CN103077053B (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.)
BEIJING HUADA INFOSEC TECHNOLOGY Ltd
Original Assignee
BEIJING HUADA INFOSEC TECHNOLOGY 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 HUADA INFOSEC TECHNOLOGY Ltd filed Critical BEIJING HUADA INFOSEC TECHNOLOGY Ltd
Priority to CN201210592056.1A priority Critical patent/CN103077053B/zh
Publication of CN103077053A publication Critical patent/CN103077053A/zh
Application granted granted Critical
Publication of CN103077053B publication Critical patent/CN103077053B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明实施例公开了向USB KEY下载COS的方法及装置。所述方法包括:获取接入到通用串行总线USB控制器的USB KEY的设备路径;根据所述USB KEY的设备路径取得所述USBKEY的句柄;使用所述句柄将COS通过CCID驱动程序下载到所述USB KEY;所述装置包括:获取单元,取得单元,下载单元。本发明所提供的方法和装置,在采用多线程方式向USB KEY下载COS时,可以充分利用USB控制器提供的USB KEY接入数量,使下载软件同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值,提高了向USB KEY下载COS的下载效率。

Description

向USB KEY下载COS的方法及装置
技术领域
本发明涉及安全认证领域,尤其涉及向优盘密钥(USB KEY,UNIVERSAL SERIAL BUSKEY)下载片内操作系统(COS,CHIP OPERATING SYSTEM)的方法及装置。
背景技术
在USB KEY的生产过程中,向USB KEY下载COS是USB KEY生产过程的一个重要的步骤。向USB KEY下载COS时,通常使用安装有下载软件和WINDOWS操作系统的PC来完成,由下载软件向接入PC的USB控制器的USB KEY下载COS。
在现有技术中,PC通过USB控制器向USB KEY下载COS时,主要依赖于WINDOWS操作系统的SCARDSVR服务,当多个USB KEY同时接入USB控制器后,PC通过SCARDSVR服务同时为多个USB KEY分配READERNAME,并按照为每个USB KEY分配的READERNAME为该USB KEY创建独立的生产线程,由此可以实现通过多线程下载方式同时向多个USBKEY下载COS。
发明人在对现有技术的研究过程中发现,PC的USB控制器可以支持127个USB KEY同时接入USB控制器,但限于SCARDSVR服务同时最多只能为10个USB KEY分配READERNAME,因此PC只能同时向10个USB KEY下载COS,这种下载方式难以充分利用USB控制器提供的USB KEY接入数量,导致COS下载效率不高。
发明内容
本发明实施例提供了向USB KEY下载COS的方法及装置,以解决现有COS下载方法及下载装置难以充分利用WINDOWS操作系统提供的USB KEY接入数量,导致COS下载效率不高的问题。
一方面,本发明实施例提供了向USB KEY下载COS的方法,该方法包括:
获取接入到USB控制器的USB KEY的设备路径;根据所述USB KEY的设备路径取得所述USB KEY的句柄;使用所述句柄将COS通过芯片智能卡接口设备(CCID,USBCHIP/SMART CARD INTERFACE DEVICES)驱动程序下载到所述USB KEY。
结合一方面,在第一种可能的实现方式中,所述获取接入到所述USB控制器的USBKEY的信息包括:
当USB KEY接入所述USB控制器时生成通知信息;以所述通知信息为触发命令,为USB KEY创建生产线程;调用所述生产线程从设备管理器中获取接入所述USB控制器的USB KEY的设备路径。
结合一方面,在第二种可能的实现方式中,所述获取接入到所述USB控制器的USBKEY的信息包括:
向所述USB控制器发送用于查询是否有USB KEY接入所述USB控制器的查询指令;接收所述USB控制器在接收到所述查询指令后发送的响应信息;当从所述响应信息获知有USB KEY接入所述USB控制器时,为所述USB KEY创建生产线程;调用所述生产线程从设备管理器中获取所述USB KEY的设备路径。
结合一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述设备信息取得对USB KEY的设备句柄包括:
通过所述生产线程调用应用程序编程接口API,以所述USB KEY的设备路径为参数打开所述USB KEY;获取打开所述USB KEY时生成的所述USB KEY的句柄。
结合一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述使用所述句柄将COS通过CCID驱动程序下载到所述USB KEY包括:
调用所述生产线程获取需要向所述USB KEY下载的COS;将所述COS的数据格式转换为符合CCID驱动程序传输要求的数据格式;使用所述句柄将经过数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。
结合一方面的第一种至第三种可能的实现方式的任意一种,在第五种可能的实现方式中,所述使用所述句柄将COS通过CCID驱动程序下载到所述USB KEY包括:
通过所述生产线程获取需要向所述USB KEY下载的COS;将所述COS发送到设置的转发模块,所述转发模块用于将所述COS的数据格式转换为符合CCID程序驱动传输要求的数据格式,并使用所述USB KEY的句柄将转换后的数据经由所述CCID驱动程序发送到所述USB KEY。
另一方面,本发明实施例还提供了向USB KEY下载COS的装置,所述装置包括:
获取单元,用于获取接入到所述USB控制器的所述USB KEY的设备路径;取得单元,用于根据所述获取单元获取到的所述USB KEY的设备路径取得所述USB KEY的句柄;下载单元,用于使用所述取得单元取得的所述句柄将COS通过CCID驱动程序下载到所述USB KEY。
结合另一方面,在第一种可能的是实现方式中,所述获取单元包括:
生成子单元,用于当USB KEY接入所述USB控制器时生成硬件变更信息;第一创建子单元,用于以所述生成子单元生成的所述硬件变更信息为触发命令,为所述USB KEY创建生产线程;第一获取子单元,用于调用所述第一创建子单元创建的所述生产线程从所述硬件变更信息中获取接入所述USB控制器的USB KEY的设备路径。
结合另一方面,在第二种可能的是实现方式中,所述获取单元包括:
查询子单元,用于向所述USB控制器发送用于查询是否有USB KEY接入所述USB控制器的查询指令;接收子单元,用于接收所述USB控制器在接收到所述查询子单元发送的所述查询指令后发送的响应信息;第二创建子单元,用于当从所述接收子单元接收的响应信息获知有USB KEY接入所述USB控制器时,为所述USB KEY创建生产线程;第二获取子单元,用于调用所述第二创建子单元创建的所述生产线程从设备管理器中获取USB KEY的设备路径。
结合另一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述取得单元包括:
设备打开子单元,用于通过所述生产线程调用应用程序编程接口API,以所述USBKEY的设备路径为参数打开所述USB KEY;句柄获取子单元,用于获取所述设备打开子单元打开所述USB KEY时生成的所述USB KEY的句柄。
结合另一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述下载单元包括:
第一数据获取子单元,用于通过所述生产线程获取需要向所述USB KEY下载的COS;格式转换子单元,用于将所述第一数据获取子单元获取到的所述COS的数据格式转换为符合CCID驱动程序传输的数据格式;第一数据发送子单元,用于使用所述句柄将经过所述格式转换子单元数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。
结合另一方面的第一种至第三种可能的实现方式的任意一种,在第五种可能的实现方式中,所述下载单元包括:
第二数据获取子单元,用于通过所述生产线程获取需要向所述USB KEY下载的COS;第二数据发送子单元,用于将所述第二数据获取子单元获取到的所述COS发送到设置的转发模块,所述转发模块用于将COS转换为符合CCID程序驱动传输的数据格式,并使用所述USB KEY的句柄将转换后的数据经由所述CCID驱动发送到所述USB KEY。
与现有技术相比,本发明所提供的下载COS的方法和装置,在采用多线程方式向USBKEY下载COS时,可以使下载软件同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值;本发明所提供的方法和装置由于不依赖与SCARDSVR服务,简化了在下载COS时的数据转发和数据格式转换的流程;采用本发明提供的方法和装置,可以使实现动态多线程COS下载,任意USB KEY在插入USB控制器后可以立刻开始下载,进一步提高了向USB KEY下载COS的下载效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
图1为本发明向USB KEY下载COS的方法一个实施例的流程图;
图2为本发明向USB KEY下载COS的方法另一个实施例的流程图;
图3为本发明向USB KEY下载COS的方法另一个实施例的流程图;
图4为本发明向USB KEY下载COS的装置的一个实施例框图;
图5为本发明向USB KEY下载COS的装置的获取单元的一个实施例框图;
图6为本发明向USB KEY下载COS的装置的获取单元的另一个实施例框图;
图7为本发明向USB KEY下载COS的装置的取得单元的一个实施例框图;
图8为本发明向USB KEY下载COS的装置的下载单元的一个实施例框图;
图9为本发明向USB KEY下载COS的装置的下载单元的另一个实施例框图。
具体实施方式
在USB KEY的生产过程中,PC向USB KEY下载COS程序可以基于不同的通信协议,由于USB KEY与PC之间通信时采用的通信协议的不同,所采用的生产方式会有所区别。CCID协议遵循个人计算机/智能卡(PC/SC)通信标准,具有通信接口简单、容错机制健壮、交互过程稳定等优点,是PC在向USB KEY下载COS时,与USB KEY进行通信最常采用的协议。
基于此,本发明实施例提供了基于CCID协议向USB KEY下载COS的方法和装置,本发明实施例提供的所述下载COS的方式和装置,可以使下载软件不再依赖于SCARDSVR服务,在采用多线程方式向USB KEY下载COS时,同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
其次,本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示装置结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
参见图1,为本发明向USB KEY下载COS的方法一个实施例的流程图,该方法包括如下步骤:
步骤101,获取接入到USB控制器的USB KEY的设备路径。
由于WINDOWS操作系统自身带有SCARDSVR服务,会自动对接入USB控制器的USB设备分配READERNAME作为打开指定设备的唯一标识,并且独占对USB设备的访问权,使所有对USB设备的操作都必须通过SCARDSVR服务进行,因此在使用本发明提供的下载方法之前必须首先停止WINDOWS的SCARDSVR服务,防止此服务与本发明提供的方法相冲突,造成下载失败。
当PC上安装的下载软件在以主动查询的方式或被动接收通知的方式获知有USB KEY接入到USB控制器后,可以为USB KEY创建一个独立的生产线程,创建完生产线程后,下载软件可以调用所述生产线程获取USB KEY接入到所述USB控制器之后生成的设备路径。下载软件为每一个USB KEY创建一个独立的生产线程,可以实现以多线程方式同时向多个USB KEY下载COS,从而提高系统资源的利用效率,提高COS下载的效率。
可选的,由于PC会在USB KEY接入USB控制器时向所有正在运行的程序发送通知信息,当下载软件获取到所述通知信息时,为所述USB KEY创建生产线程并调用所述生产线程从操作系统提供的设备管理器中获取所述USB KEY的设备路径。
可选的,下载软件可以向USB控制器发送查询指令,查询是否有USB KEY接入到USB控制器,USB控制器在接收到所述查询指令后向下载软件发送响应信息,通知下载软件是否有USB KEY接入到所述USB控制器,当从下载软件从接收到的所述响应信息获知有USB KEY接入所述USB控制器时,为所述USB KEY创建生产线程并调用所述生产线程从操作系统提供的设备管理器中获取所述USB KEY的设备路径。
步骤102,根据所述USB KEY的设备路径取得所述USB KEY的句柄。
下载软件在获取到USB KEY的设备路径之后,可以直接调用应用程序编程接口(API,APPLICATION PROGRAMMING INTERFACE)获取所述USB KEY的句柄,从而获取向所述USBKEY下载COS的权限。当下载软件为所述USB KEY创建了生产线程时,下载软件也可以调用所述生产线程,然后通过所述生产线程调用API获取USB KEY的句柄。例如,下载软件可以调用与所述USB KEY对应的生产线程,然后由所述生产线程调用WINDOWS操作系统提供的WIN32API中的CREATEFILE,以所述USB KEY的设备路径为参数打开所述USBKEY,然后获取打开所述USB KEY时生成的所述USB KEY的句柄。
步骤103,使用所述句柄将COS通过CCID驱动程序下载到所述USB KEY。
由于已经获取到所述USB KEY的句柄,而且SCARDSVR服务已经停止运行,下载软件不再通过WINDOWS提供的SCARDSVR服务对USB KEY进行操作,而是使用所述句柄直接对USB KEY直接进行操作,下载软件可以调用所述生产线程,由所述生产线程使用所述USB KEY的句柄将COS通过CCID驱动程序发送到所述USB KEY。
可选的,下载软件在获取到所述USB KEY的句柄之后,可以直接调用所述生产线程将COS的数据格式转换为符合CCID驱动程序传输的数据格式,再由生产线程使用所述句柄将经过数据格式转换后的COS通过CCID驱动程序发送到所述USB KEY。
可选的,下载软件在获取到所述USB KEY的句柄之后,可以直接调用所述生产线程将COS发送到一个由PC预先设置好的转发模块,再由所述转发模块将COS的数据格式转换为符合CCID驱动程序数据传输要求的数据格式,并使用所述句柄将经过数据格式转换后的COS通过CCID驱动程序发送到所述USB KEY。
从上述实施例可以看出,采用本发明所提供的方法,在以多线程方式向USB KEY下载COS时,可以使下载软件同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值;本发明所提供的方法由于不依赖与SCARDSVR服务,简化了在下载COS过程中的数据转发和数据格式转换的流程;采用本发明提供的方法,还可以使实现动态多线程COS下载,任意USB KEY在插入USB控制器后可以立刻开始下载,不需要分批同时开始,进一步提高了向USB KEY下载COS的下载效率。
参见图2,为本发明向USB KEY下载COS的方法另一个实施例的流程图,该实施例通过接收通知信息的方式,获知USB KEY接入USB控制器,进而完成COS的下载,该实施例包括如下步骤:
步骤201,在USB KEY接入USB控制器时,PC生成通知信息。
由于操作系统会在USB KEY接入到PC的USB控制器后生产并向每一个正在运行的程序发送通知信息,通知所有软件有USB KEY接入USB控制器,下载软件可以通过是否获取到此信息来确定是否有USB KEY接入到了USB控制器,当获取到此信息时就可以确定有USB KEY接入USB控制器。例如,WINDOWS操作系统会在USB设备接入到USB控制器后调用ONDEVICECHANGE函数向所有正在运行的软件发送一个ONDEVICECHANGE信息,当下载软件接收到此信息时,就可以确定有USB KEY接入到了USB控制器。
步骤202,PC的下载软件以所述通知信息为触发命令,为USB KEY创建生产线程。
当下载软件通过所述通知信息获知有USB KEY接入USB控制器后,下载软件可以为所述USB KEY创建一个独立的生产线程。为USB KEY创建独立的生产线程使下载软件能够采用多线程方式同时向多个不同的USB KEY下载COS,从而提高系统资源的利用效率,提高COS下载的效率。
步骤203,PC的下载软件调用所述生产线程从设备管理器中获取所述USB KEY的设备路径。
下载软件在为USB KEY创建完线程之后,调用所述生产线程从设备管理器中获取所述USB KEY的设备路径。
步骤204,PC的下载软件通过所述生产线程调用应用程序编程接口API,以所述USB KEY的设备路径为参数打开所述USB KEY。
由于不再依靠SCARDSVR服务,下载软件对USB KEY进行的操作最常用的方式是通过USB KEY的句柄来实现,因此在向USB KEY下载COS之前需要首先获得USB KEY的句柄。
下载软件可以以所述USB KEY的设备路径为参数,通过生产线程调用WINDOWS操作系统提供的WIN32API中的CREATEFILE打开所述USB KEY,CREATEFILE在打开USB KEY之后会向所述生产线程返回所述USB KEY的句柄。
步骤205,PC的下载软件调用生产线程获取打开所述USB KEY时生成的所述USB KEY的句柄。
下载软件调用生产线程,由生产线程获取CREATEFILE在打开USB KEY之后返回的所述USB KEY的句柄,生产线程或其他的软件、系统服务等都可以通过使用此句柄对USBKEY进行操作。
步骤206,PC的下载软件通过所述生产线程获取需要向所述USB KEY下载的COS。
由于在实际生产中,需要向不同类型的USB KEY下载不同类型的COS,所以下载软件首先调用生产线程获取需要向USB KEY下载的COS。
步骤207,PC的下载软件创建的生产线程将所述COS的数据格式转换为符合芯片CCID驱动程序传输的数据格式。
生产线程可以调用所述生产线程,并且由所述生产线程将COS包含的数据转换符合为CCID驱动传输要求的数据格式。
步骤208,PC的下载软件创建的生产线程使用所述句柄将经过数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。
下载软件调用生产线程,再由生产线程调用WIN32函数DEVICEIOCONTROL将经过数据格式转换后的COS发送到CCID驱动程序,再由CCID驱动程序将COS发送到USB KEY,从而实现COS的下载。
从上述实施例可以看出,下载软件可以不依赖与SCARDSVR服务,直接调用操作系统提供的API打开USB KEY,获取USB KEY的句柄,完成COS下载,使得同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值,提高了向USB KEY下载COS的下载效率。
在上述实施例中,执行完步骤201至步骤206之后,下载软件也可以利用生产线程将COS发送到一个预先设置的用于将COS通过CCID驱动程序发送到USB KEY的转发模块,从而完成COS的下载,所述转发模块中封装了应用程序数据格式与CCID驱动程序数据格式之间的转换过程,及使用USB KEY句柄将COS通过CCID驱动程序向USB KEY发送的过程。转发模块可以使下载软件的扩展性更好,而且可以增加WINDOWS操作系统的安全性,使操作系统更加稳定。
参见图3,为本发明向USB KEY下载COS的方法另一个实施例的流程图,该实施例通过主动查询的方式,获知USB KEY接入USB控制器,进而完成COS的下载,该实施例包括如下步骤:
步骤301,PC的下载软件向USB控制器发送用于查询是否有USB KEY接入所述USB控制器的查询指令。
由于USB控制可以有127个端口,所以下载软件可以按照一定的周期,向USB控制器发送查询指令,逐个端口查询是否有USB KEY接入。例如,下载软件首先向USB控制器发送用于查询1号端口是否有USB KEY接入的查询命令,然后再向USB控制器发送用于查询2号端口是否有USB KEY接入的查询命令,然后再向USB控制器发送用于查询3号端口是否有USB KEY接入的查询命令,以此类推,直至查询完所有端口,然后在间隔预定的周期之后再重复这一查询过程。
步骤302,PC的下载软件接收所述USB控制器在接收到所述查询指令后发送的响应信息。
USB控制器会在接收到查询命令后首先检查查询指令查询的端口是否有USB KEY接入,然后向下载软件发送一个返回信息,通知下载软件所述端口是否有USB KEY接入。
步骤303,当PC的下载软件从所述响应信息获知有USB KEY接入所述USB控制器时,为所述USB KEY创建生产线程。
当下载软件从所述响应信息获知有USB KEY接入到USB控制器后,为所述USB KEY创建一个独立的生产线程。为USB KEY创建独立的生产线程可以使下载软件实现以多线程方式同时向多个不同的USB KEY下载COS,从而提高系统资源的利用效率,提高COS下载的效率。
步骤304,PC的下载软件调用所述生产线程从设备管理器中获取所述USB KEY的设备路径。
下载软件在为USB KEY创建完线程之后,调用所述生产线程从WINDOWS操作系统提供的设备管理器中获取所述USB KEY的设备路径。
步骤305,PC的下载软件通过所述生产线程调用应用程序编程接口API,以所述USB KEY的设备路径为参数打开所述USB KEY。
在WINDOWS操作系统中,下载软件对USB KEY进行的操作必须通过USB KEY的句柄来实现,因此在向USB KEY下载COS之前必须首先获得USB KEY的句柄。
下载软件可以以所述USB KEY的设备路径为参数,通过生产线程调用WINDOWS操作系统提供的WIN32API中的CREATEFILE打开所述USB KEY,CREATEFILE在打开USB KEY之后会向所述生产线程返回所述USB KEY的句柄。
步骤306,PC的下载软件调用生产线程获取打开所述USB KEY时生成的所述USB KEY的句柄。
下载软件调用生产线程,由生产线程调用CREATEFILE打开USB KEY,再由生产线程获取CREATEFILE在打开USB KEY之后返回所述USB KEY的句柄,生产线程或其他的软件、服务等可以通过使用此句柄对USB KEY进行操作。
步骤307,PC的下载软件通过所述生产线程获取需要向所述USB KEY下载的COS。
由于在实际生产中,需要向不同类型的USB KEY下载不同的COS,所以下载软件首先调用生产线程获取需要向USB KEY下载的COS。
步骤308,PC的下载软件创建的生产线程将所述COS发送到设置的转发模块,所述转发模块用于将所述COS转换为符合CCID程序驱动传输的数据格式,并使用所述USB KEY的句柄将转换后的数据经由所述CCID驱动程序发送到所述USB KEY。
下载软件可以调用生产线程将COS发送到一个预先设置的转发模块,由转发模块将COS发送到USB KEY。所述转发模块中封装了应用程序数据格式与CCID驱动程序数据格式之间的转换过程,及使用USB KEY的句柄将COS通过CCID驱动程序向USB KEY发送的过程。转发模块的具体形式可以是动态链接库、静态链接库、服务程序、内核驱动等任意形式,转发模块可以作为应用程序层级结构中的一个中间层,连结处于应用程序层级结构顶层的下载软件和处于应用程序层级结构底层的CCID驱动程序,下载软件和CCID驱动程序通过中间层进行交互,不但可以使下载软件的扩展性更好,而且可以增加WINDOWS操作系统的安全性,使操作系统更加稳定。
从上述实施例可以看出,本实施例提供的方法,不但可以使同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值,提高向USB KEY下载COS的下载效率,而且可以防止在实际生产中操作系统已经发送了通知信息,但下载软件由于尚未启动或其他原因而没有接收到通知信息造成的下载过程无法启动,使COS下载更加稳定高效。
在上述实施例中,执行完步骤301至步骤307之后,下载软件也可以调用所述生产线程将所述COS的数据格式转换为符合芯片智能卡接口设备CCID驱动程序传输的数据格式,然后在由所述生产线程使用所述USB KEY的句柄将经过数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。COS下载中所有的数据处理和转发过程都在生产线程内完成,可以有效防止同时向多个USB KEY下载COS时各个线程之间相互干扰。
与本发明向USB KEY下载COS的方法相对应,本发明还提供了向USB KEY下载COS的装置。
参见图4,为本发明向USB KEY下载COS的装置的一个实施例框图。
该装置包括:获取单元401,取得单元402,下载单元403。
其中,所述获取单元401,用于获取接入到所述USB控制器的所述USB KEY的设备路径。
所述取得单元402,用于根据所述获取单元401获取到的所述USB KEY的设备路径取得所述USB KEY的句柄。
所述下载单元403,用于使用所述取得单元402取得的所述句柄将COS通过CCID驱动程序下载到所述USB KEY。
从上述实施例可以看出,采用本发明所提供的装置,采用多线程方式向USB KEY下载COS时,可以使下载软件同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值;本发明所提供的装置由于不依赖与SCARDSVR服务,减少了下载COS过程中数据转发和数据格式转换的次数;采用本发明提供的装置,还可以使实现动态多线程COS下载,任意USB KEY在插入USB控制器后可以立刻开始下载,不需要分批同时开始,进一步提高了向USB KEY下载COS的下载效率。
参见图5,为本发明向USB KEY下载COS的装置的获取单元的一个实施例框图,该实施例通过获取通知信息的方式,获知有USB KEY接入USB控制器,进而获取USB KEY的设备路径。
该获取单元包括:生成子单元501,第一创建子单元502,第一获取子单元503。
其中,所述生成子单元501,用于当USB KEY接入所述USB控制器时生成硬件变更信息。
所述第一创建子单元502,用于以所述生成子单元501生成的所述硬件变更信息为触发命令,为所述USB KEY创建生产线程。
所述第一获取子单元503,用于调用所述第一创建子单元502创建的所述生产线程从设备管理器中获取接入所述USB控制器的USB KEY的设备路径。
本实施例提供的获取单元,可以根据WINDOWS操作系统在USB KEY接入USB控制器后发送的硬件变更信息获知有USB KEY接入USB控制器,并为接入USB控制器的USB KEY创建生产线程,通过生产线程获取USB KEY的设备路径,为下载软件采用多线程方式同时向多个USB KEY下载COS做好准备。
参见图6,为本发明向USB KEY下载COS的装置的获取单元的另一个实施例框图,该实施例通过主动查询的方式,获知有USB KEY接入USB控制器,进而获取USB KEY的设备路径。
该获取单元包括:查询子单元601,接收子单元602,第二创建子单元603,第二获取子单元604。
其中,所述查询子单元601,用于向所述USB控制器发送用于查询是否有USB KEY接入所述USB控制器的查询指令。
所述接收子单元602,用于接收所述USB控制器在接收到所述查询子单元601发送的所述查询指令后发送的响应信息。
所述第二创建子单元603,用于当从所述接收子单元602接收的响应信息获知有USB KEY接入所述USB控制器时,为所述USB KEY创建生产线程。
所述第二获取子单元604,用于调用所述第二创建子单元603创建的所述生产线程从设备管理器中获取USB KEY的设备路径。
从上述实施例可以看出,本实施例提供的获取单元,可以通过主动查询方式获知是否有USB KEY接入USB控制器并为接入USB控制器的USB KEY创建生产线程,通过生产线程获取USB KEY的设备路径,为下载软件采用多线程方式同时向多个USB KEY下载COS做好准备。
参见图7,为本发明向USB KEY下载COS的装置的取得单元的一个实施例框图。
该取得单元包括:设备打开子单元701,句柄获取子单元702。
其中,所述设备打开子单元701,用于通过所述生产线程调用应用程序编程接口API,以所述USB KEY的设备路径为参数打开所述USB KEY。
设备打开子单元701还可以用于以所述USB KEY的设备路径为参数,通过所述生产线程调用WINDOWS操作系统提供的WIN32API中的CREATEFILE打开所述USB KEY,CREATEFILE在打开USB KEY之后会向所述生产线程返回所述USB KEY的句柄。
所述句柄获取子单元702,用于获取所述设备打开子单元701打开所述USB KEY时生成的所述USB KEY的句柄。
从上述实施例可以看出,本实施例提供的取得单元可以调用生产线程,并由生产线程获取所述USB KEY的句柄,为向所述USB KEY下载COS做好准备工作。
参见图8,为本发明向USB KEY下载COS的装置的下载单元的一个实施例框图,该实施例通过自行转换数据格式并发送的方式向USB KEY下载COS。
该下载单元包括:第一数据获取子单元801,格式转换子单元802,第一数据发送子单元803。
其中,所述第一数据获取子单元801,用于通过所述生产线程获取需要向USB KEY下载的COS。
所述格式转换子单元802,用于将所述第一数据获取子单元801获取到的所述COS的数据格式转换为符合CCID驱动程序传输的数据格式。
所述第一数据发送子单元803,用于使用所述句柄将经过所述格式转换子单元802数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。
从上述实施例可以看出,本实施例提供的下载单元可以将COS下载中所有的数据处理都放在生产线程内完成,可以有效防止同时向多个USB KEY下载COS时发生冲突。
参见图9,为本发明向USB KEY下载COS的装置的下载单元的另一个实施例框图,该实施例通过调用转发模块的方式向USB KEY下载COS。
该下载单元包括:第二数据获取子单元901,第二数据发送子单元902。
其中,所述第二数据获取子单元901,用于通过所述生产线程获取需要向所述USB KEY下载的COS。
所述第二数据发送子单元902,用于将所述第二数据获取子单元901获取到的所述COS发送到由PC设置的转发模块,所述转发模块用于将COS转换为符合CCID程序驱动传输的数据格式,并使用所述USB KEY的句柄将转换后的数据经由所述CCID驱动发送到所述USB KEY。
从上述实施例可以看出,本实施例提供的下载单元,通过转发模块实现向USB KEY下载COS,不但可以使下载软件的扩展性更好,而且可以增加WINDOWS操作系统的安全性,使操作系统更加稳定。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种向优盘密钥USB KEY下载片内操作系统COS的方法,其特征在于,所述方法包括:
获取接入到通用串行总线USB控制器的USB KEY的设备路径;
根据所述USB KEY的设备路径取得所述USB KEY的句柄;
使用所述句柄将COS通过芯片智能卡接口设备CCID驱动程序下载到所述USB KEY。
2.如权利要求1所述的方法,其特征在于,所述获取接入到通用串行总线USB控制器的USB KEY的设备路径包括:
当USB KEY接入所述USB控制器时生成通知信息;
以所述通知信息为触发命令,为USB KEY创建生产线程;
调用所述生产线程从设备管理器中获取接入所述USB控制器的USB KEY的设备路径。
3.如权利要求1所述的方法,其特征在于,所述获取接入到通用串行总线USB控制器的USB KEY的设备路径包括:
向所述USB控制器发送用于查询是否有USB KEY接入所述USB控制器的查询指令;
接收所述USB控制器在接收到所述查询指令后发送的响应信息;
当从所述响应信息获知有USB KEY接入所述USB控制器时,为所述USB KEY创建生产线程;
调用所述生产线程从设备管理器中获取所述USB KEY的设备路径。
4.如权利要求2或3所述的方法,其特征在于,所述根据所述USB KEY的设备路径取得所述USB KEY的句柄包括:
通过所述生产线程调用应用程序编程接口API,以所述USB KEY的设备路径为参数打开所述USB KEY;
获取打开所述USB KEY时生成的所述USB KEY的句柄。
5.如权利要求2至4任意一项权利要求所述的方法,其特征在于,所述使用所述句柄将COS通过CCID驱动程序下载到所述USB KEY包括:
调用所述生产线程获取需要向所述USB KEY下载的COS;
将所述COS的数据格式转换为符合CCID驱动程序传输要求的数据格式;
使用所述句柄将经过数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。
6.如权利要求2至4任意一项权利要求所述的方法,其特征在于,所述使用所述句柄将COS通过CCID驱动程序下载到所述USB KEY包括:
调用所述生产线程获取需要向所述USB KEY下载的COS;
将所述COS发送到转发模块,所述转发模块用于将所述COS的数据格式转换为符合CCID程序驱动传输要求的数据格式,并使用所述USB KEY的句柄将转换后的数据经由所述CCID驱动程序发送到所述USB KEY。
7.一种向USB KEY下载COS的装置,其特征在于,所述装置包括:
获取单元,用于获取接入到所述USB控制器的所述USB KEY的设备路径;
取得单元,用于根据所述获取单元获取到的所述USB KEY的设备路径取得所述USB KEY的句柄;
下载单元,用于使用所述取得单元取得的所述句柄将COS通过CCID驱动程序下载到所述USB KEY。
8.如权利要求7所述的装置,其特征在于,所述获取单元包括:
生成子单元,用于当USB KEY接入所述USB控制器时生成硬件变更信息;
第一创建子单元,用于以所述生成子单元生成的所述硬件变更信息为触发命令,为所述USB KEY创建生产线程;
第一获取子单元,用于调用所述第一创建子单元创建的所述生产线程从设备管理器中获取接入所述USB控制器的USB KEY的设备路径。
9.如权利要求7所述的装置,其特征在于,所述获取单元包括:
查询子单元,用于向所述USB控制器发送用于查询是否有USB KEY接入所述USB控制器的查询指令;
接收子单元,用于接收所述USB控制器在接收到所述查询子单元发送的所述查询指令后发送的响应信息;
第二创建子单元,用于当从所述接收子单元接收的响应信息获知有USB KEY接入所述USB控制器时,为所述USB KEY创建生产线程;
第二获取子单元,用于调用所述第二创建子单元创建的所述生产线程从设备管理器中获取USB KEY的设备路径。
10.如权利要求8或9所述的装置,其特征在于,所述取得单元包括:
设备打开子单元,用于通过所述生产线程调用应用程序编程接口API,以所述USB KEY的设备路径为参数打开所述USB KEY;
句柄获取子单元,用于获取所述设备打开子单元打开所述USB KEY时生成的所述USB KEY的句柄。
11.如权利要求8至10任意一项权利要求所述的装置,其特征在于,所述下载单元包括:
第一数据获取子单元,用于调用所述生产线程获取需要向所述USB KEY下载的COS;
格式转换子单元,用于将所述第一数据获取子单元获取到的所述COS的数据格式转换为符合CCID驱动程序传输要求的数据格式;
第一数据发送子单元,用于使用所述句柄将经过所述格式转换子单元数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。
12.如权利要求8至10任意一项权利要求所述的装置,其特征在于,所述下载单元包括:
第二数据获取子单元,用于调用所述生产线程获取需要向所述USB KEY下载的COS;
第二数据发送子单元,用于将所述第二数据获取子单元获取到的所述COS发送到转发模块,所述转发模块用于将COS的数据格式转换为符合CCID程序驱动传输要求的数据格式,并使用所述USB KEY的句柄将转换后的数据经由所述CCID驱动程序发送到所述USB KEY。
CN201210592056.1A 2012-12-28 2012-12-28 向usb key下载cos的方法及装置 Active CN103077053B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210592056.1A CN103077053B (zh) 2012-12-28 2012-12-28 向usb key下载cos的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210592056.1A CN103077053B (zh) 2012-12-28 2012-12-28 向usb key下载cos的方法及装置

Publications (2)

Publication Number Publication Date
CN103077053A true CN103077053A (zh) 2013-05-01
CN103077053B CN103077053B (zh) 2016-05-18

Family

ID=48153590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210592056.1A Active CN103077053B (zh) 2012-12-28 2012-12-28 向usb key下载cos的方法及装置

Country Status (1)

Country Link
CN (1) CN103077053B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255648A (zh) * 2016-12-28 2018-07-06 航天信息股份有限公司 一种电子钥匙USBKey的生产测试方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169732A (zh) * 2006-10-25 2008-04-30 北京握奇数据系统有限公司 在多人机接口设备下匹配设备句柄与设备的方法及系统
US20110022901A1 (en) * 2009-07-22 2011-01-27 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd Method for testing hard disks under an extensible firmware interface
CN102064944A (zh) * 2010-11-30 2011-05-18 北京飞天诚信科技有限公司 一种安全发卡方法、发卡设备和系统
CN102110004A (zh) * 2011-02-28 2011-06-29 北京握奇数据系统有限公司 片内操作系统下载的方法、片内操作系统和智能卡

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169732A (zh) * 2006-10-25 2008-04-30 北京握奇数据系统有限公司 在多人机接口设备下匹配设备句柄与设备的方法及系统
US20110022901A1 (en) * 2009-07-22 2011-01-27 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd Method for testing hard disks under an extensible firmware interface
CN102064944A (zh) * 2010-11-30 2011-05-18 北京飞天诚信科技有限公司 一种安全发卡方法、发卡设备和系统
CN102110004A (zh) * 2011-02-28 2011-06-29 北京握奇数据系统有限公司 片内操作系统下载的方法、片内操作系统和智能卡

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255648A (zh) * 2016-12-28 2018-07-06 航天信息股份有限公司 一种电子钥匙USBKey的生产测试方法及系统
CN108255648B (zh) * 2016-12-28 2021-07-20 航天信息股份有限公司 一种电子钥匙USBKey的生产测试方法及系统

Also Published As

Publication number Publication date
CN103077053B (zh) 2016-05-18

Similar Documents

Publication Publication Date Title
CN1747472B (zh) 基于ccp协议的嵌入式通用标定装置及方法
CN105353625A (zh) 绑定智能设备的方法、装置及系统
DE112019004301T5 (de) Verbesserter prozess der programmierung von feldprogrammierbaren gate-arrays unter verwendung einer partiellen rekonfiguration
CN105159122A (zh) 一种智能家居控制系统及控制方法
CN101185070B (zh) 装置管理系统和用于在该系统中设置配置值的方法
CN104268241B (zh) 一种配置数据库中属性显示方法
CN102800015A (zh) 一种金融ic卡远程个人化方法及系统
CN106899594A (zh) 用于智能家居平台的子设备管理方法及系统
WO2011152833A1 (en) Agent-less follow-me service for cloud-based applications
CN103873592A (zh) 一种数据传输方法及系统
CN105357664A (zh) 一种无线控制系统及其数据通信方法
CN114328217A (zh) 应用的测试方法、装置、设备、介质及计算机程序产品
CN105791063A (zh) 一种控制智能家电设备的方法及装置
CN106331068B (zh) 远程资源共享方法及资源共享平台
CN106331284A (zh) 一种基于wifi物联网技术的通讯系统
CN103077053A (zh) 向usb key下载cos的方法及装置
CN103945378A (zh) 一种终端协同的认证方法及设备中间件
CN101754452B (zh) 用于对智能卡进行扩展的装置和方法
CN105279195B (zh) 网页应用调用浏览器功能的方法及装置
CN113791766B (zh) 组合数据接口的方法、电子设备和可读存储介质
Uehara A case study on developing cloud of things devices
CN103237359B (zh) 一种连接终端的方法及装置
CN102566996B (zh) 一种实现多任务管理输入输出资源的方法及系统
CN105116883A (zh) 建立扫地机器人与终端对应关系的方法、服务器及系统
CN105187244A (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