CN103077053B - 向usb key下载cos的方法及装置 - Google Patents
向usb key下载cos的方法及装置 Download PDFInfo
- Publication number
- CN103077053B CN103077053B CN201210592056.1A CN201210592056A CN103077053B CN 103077053 B CN103077053 B CN 103077053B CN 201210592056 A CN201210592056 A CN 201210592056A CN 103077053 B CN103077053 B CN 103077053B
- Authority
- CN
- China
- Prior art keywords
- usbkey
- cos
- subelement
- download
- usb
- 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
Links
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
技术领域
本发明涉及安全认证领域,尤其涉及向优盘密钥(USBKEY,UNIVERSALSERIALBUSKEY)下载片内操作系统(COS,CHIPOPERATINGSYSTEM)的方法及装置。
背景技术
在USBKEY的生产过程中,向USBKEY下载COS是USBKEY生产过程的一个重要的步骤。向USBKEY下载COS时,通常使用安装有下载软件和WINDOWS操作系统的PC来完成,由下载软件向接入PC的USB控制器的USBKEY下载COS。
在现有技术中,PC通过USB控制器向USBKEY下载COS时,主要依赖于WINDOWS操作系统的SCARDSVR服务,当多个USBKEY同时接入USB控制器后,PC通过SCARDSVR服务同时为多个USBKEY分配READERNAME,并按照为每个USBKEY分配的READERNAME为该USBKEY创建独立的生产线程,由此可以实现通过多线程下载方式同时向多个USBKEY下载COS。
发明人在对现有技术的研究过程中发现,PC的USB控制器可以支持127个USBKEY同时接入USB控制器,但限于SCARDSVR服务同时最多只能为10个USBKEY分配READERNAME,因此PC只能同时向10个USBKEY下载COS,这种下载方式难以充分利用USB控制器提供的USBKEY接入数量,导致COS下载效率不高。
发明内容
本发明实施例提供了向USBKEY下载COS的方法及装置,以解决现有COS下载方法及下载装置难以充分利用WINDOWS操作系统提供的USBKEY接入数量,导致COS下载效率不高的问题。
一方面,本发明实施例提供了向USBKEY下载COS的方法,该方法包括:
获取接入到USB控制器的USBKEY的设备路径;根据所述USBKEY的设备路径取得所述USBKEY的句柄;使用所述句柄将COS通过芯片智能卡接口设备(CCID,USBCHIP/SMARTCARDINTERFACEDEVICES)驱动程序下载到所述USBKEY。
结合一方面,在第一种可能的实现方式中,所述获取接入到所述USB控制器的USBKEY的信息包括:
当USBKEY接入所述USB控制器时生成通知信息;以所述通知信息为触发命令,为USBKEY创建生产线程;调用所述生产线程从设备管理器中获取接入所述USB控制器的USBKEY的设备路径。
结合一方面,在第二种可能的实现方式中,所述获取接入到所述USB控制器的USBKEY的信息包括:
向所述USB控制器发送用于查询是否有USBKEY接入所述USB控制器的查询指令;接收所述USB控制器在接收到所述查询指令后发送的响应信息;当从所述响应信息获知有USBKEY接入所述USB控制器时,为所述USBKEY创建生产线程;调用所述生产线程从设备管理器中获取所述USBKEY的设备路径。
结合一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述设备信息取得对USBKEY的设备句柄包括:
通过所述生产线程调用应用程序编程接口API,以所述USBKEY的设备路径为参数打开所述USBKEY;获取打开所述USBKEY时生成的所述USBKEY的句柄。
结合一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述使用所述句柄将COS通过CCID驱动程序下载到所述USBKEY包括:
调用所述生产线程获取需要向所述USBKEY下载的COS;将所述COS的数据格式转换为符合CCID驱动程序传输要求的数据格式;使用所述句柄将经过数据格式转换的COS经由所述CCID驱动程序发送到所述USBKEY。
结合一方面的第一种至第三种可能的实现方式的任意一种,在第五种可能的实现方式中,所述使用所述句柄将COS通过CCID驱动程序下载到所述USBKEY包括:
通过所述生产线程获取需要向所述USBKEY下载的COS;将所述COS发送到设置的转发模块,所述转发模块用于将所述COS的数据格式转换为符合CCID程序驱动传输要求的数据格式,并使用所述USBKEY的句柄将转换后的数据经由所述CCID驱动程序发送到所述USBKEY。
另一方面,本发明实施例还提供了向USBKEY下载COS的装置,所述装置包括:
获取单元,用于获取接入到所述USB控制器的所述USBKEY的设备路径;取得单元,用于根据所述获取单元获取到的所述USBKEY的设备路径取得所述USBKEY的句柄;下载单元,用于使用所述取得单元取得的所述句柄将COS通过CCID驱动程序下载到所述USBKEY。
结合另一方面,在第一种可能的是实现方式中,所述获取单元包括:
生成子单元,用于当USBKEY接入所述USB控制器时生成硬件变更信息;第一创建子单元,用于以所述生成子单元生成的所述硬件变更信息为触发命令,为所述USBKEY创建生产线程;第一获取子单元,用于调用所述第一创建子单元创建的所述生产线程从所述硬件变更信息中获取接入所述USB控制器的USBKEY的设备路径。
结合另一方面,在第二种可能的是实现方式中,所述获取单元包括:
查询子单元,用于向所述USB控制器发送用于查询是否有USBKEY接入所述USB控制器的查询指令;接收子单元,用于接收所述USB控制器在接收到所述查询子单元发送的所述查询指令后发送的响应信息;第二创建子单元,用于当从所述接收子单元接收的响应信息获知有USBKEY接入所述USB控制器时,为所述USBKEY创建生产线程;第二获取子单元,用于调用所述第二创建子单元创建的所述生产线程从设备管理器中获取USBKEY的设备路径。
结合另一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述取得单元包括:
设备打开子单元,用于通过所述生产线程调用应用程序编程接口API,以所述USBKEY的设备路径为参数打开所述USBKEY;句柄获取子单元,用于获取所述设备打开子单元打开所述USBKEY时生成的所述USBKEY的句柄。
结合另一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述下载单元包括:
第一数据获取子单元,用于通过所述生产线程获取需要向所述USBKEY下载的COS;格式转换子单元,用于将所述第一数据获取子单元获取到的所述COS的数据格式转换为符合CCID驱动程序传输的数据格式;第一数据发送子单元,用于使用所述句柄将经过所述格式转换子单元数据格式转换的COS经由所述CCID驱动程序发送到所述USBKEY。
结合另一方面的第一种至第三种可能的实现方式的任意一种,在第五种可能的实现方式中,所述下载单元包括:
第二数据获取子单元,用于通过所述生产线程获取需要向所述USBKEY下载的COS;第二数据发送子单元,用于将所述第二数据获取子单元获取到的所述COS发送到设置的转发模块,所述转发模块用于将COS转换为符合CCID程序驱动传输的数据格式,并使用所述USBKEY的句柄将转换后的数据经由所述CCID驱动发送到所述USBKEY。
与现有技术相比,本发明所提供的下载COS的方法和装置,在采用多线程方式向USBKEY下载COS时,可以使下载软件同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值;本发明所提供的方法和装置由于不依赖与SCARDSVR服务,简化了在下载COS时的数据转发和数据格式转换的流程;采用本发明提供的方法和装置,可以使实现动态多线程COS下载,任意USBKEY在插入USB控制器后可以立刻开始下载,进一步提高了向USBKEY下载COS的下载效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
图1为本发明向USBKEY下载COS的方法一个实施例的流程图;
图2为本发明向USBKEY下载COS的方法另一个实施例的流程图;
图3为本发明向USBKEY下载COS的方法另一个实施例的流程图;
图4为本发明向USBKEY下载COS的装置的一个实施例框图;
图5为本发明向USBKEY下载COS的装置的获取单元的一个实施例框图;
图6为本发明向USBKEY下载COS的装置的获取单元的另一个实施例框图;
图7为本发明向USBKEY下载COS的装置的取得单元的一个实施例框图;
图8为本发明向USBKEY下载COS的装置的下载单元的一个实施例框图;
图9为本发明向USBKEY下载COS的装置的下载单元的另一个实施例框图。
具体实施方式
在USBKEY的生产过程中,PC向USBKEY下载COS程序可以基于不同的通信协议,由于USBKEY与PC之间通信时采用的通信协议的不同,所采用的生产方式会有所区别。CCID协议遵循个人计算机/智能卡(PC/SC)通信标准,具有通信接口简单、容错机制健壮、交互过程稳定等优点,是PC在向USBKEY下载COS时,与USBKEY进行通信最常采用的协议。
基于此,本发明实施例提供了基于CCID协议向USBKEY下载COS的方法和装置,本发明实施例提供的所述下载COS的方式和装置,可以使下载软件不再依赖于SCARDSVR服务,在采用多线程方式向USBKEY下载COS时,同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
其次,本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示装置结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
参见图1,为本发明向USBKEY下载COS的方法一个实施例的流程图,该方法包括如下步骤:
步骤101,获取接入到USB控制器的USBKEY的设备路径。
由于WINDOWS操作系统自身带有SCARDSVR服务,会自动对接入USB控制器的USB设备分配READERNAME作为打开指定设备的唯一标识,并且独占对USB设备的访问权,使所有对USB设备的操作都必须通过SCARDSVR服务进行,因此在使用本发明提供的下载方法之前必须首先停止WINDOWS的SCARDSVR服务,防止此服务与本发明提供的方法相冲突,造成下载失败。
当PC上安装的下载软件在以主动查询的方式或被动接收通知的方式获知有USBKEY接入到USB控制器后,可以为USBKEY创建一个独立的生产线程,创建完生产线程后,下载软件可以调用所述生产线程获取USBKEY接入到所述USB控制器之后生成的设备路径。下载软件为每一个USBKEY创建一个独立的生产线程,可以实现以多线程方式同时向多个USBKEY下载COS,从而提高系统资源的利用效率,提高COS下载的效率。
可选的,由于PC会在USBKEY接入USB控制器时向所有正在运行的程序发送通知信息,当下载软件获取到所述通知信息时,为所述USBKEY创建生产线程并调用所述生产线程从操作系统提供的设备管理器中获取所述USBKEY的设备路径。
可选的,下载软件可以向USB控制器发送查询指令,查询是否有USBKEY接入到USB控制器,USB控制器在接收到所述查询指令后向下载软件发送响应信息,通知下载软件是否有USBKEY接入到所述USB控制器,当从下载软件从接收到的所述响应信息获知有USBKEY接入所述USB控制器时,为所述USBKEY创建生产线程并调用所述生产线程从操作系统提供的设备管理器中获取所述USBKEY的设备路径。
步骤102,根据所述USBKEY的设备路径取得所述USBKEY的句柄。
下载软件在获取到USBKEY的设备路径之后,可以直接调用应用程序编程接口(API,APPLICATIONPROGRAMMINGINTERFACE)获取所述USBKEY的句柄,从而获取向所述USBKEY下载COS的权限。当下载软件为所述USBKEY创建了生产线程时,下载软件也可以调用所述生产线程,然后通过所述生产线程调用API获取USBKEY的句柄。例如,下载软件可以调用与所述USBKEY对应的生产线程,然后由所述生产线程调用WINDOWS操作系统提供的WIN32API中的CREATEFILE,以所述USBKEY的设备路径为参数打开所述USBKEY,然后获取打开所述USBKEY时生成的所述USBKEY的句柄。
步骤103,使用所述句柄将COS通过CCID驱动程序下载到所述USBKEY。
由于已经获取到所述USBKEY的句柄,而且SCARDSVR服务已经停止运行,下载软件不再通过WINDOWS提供的SCARDSVR服务对USBKEY进行操作,而是使用所述句柄直接对USBKEY直接进行操作,下载软件可以调用所述生产线程,由所述生产线程使用所述USBKEY的句柄将COS通过CCID驱动程序发送到所述USBKEY。
可选的,下载软件在获取到所述USBKEY的句柄之后,可以直接调用所述生产线程将COS的数据格式转换为符合CCID驱动程序传输的数据格式,再由生产线程使用所述句柄将经过数据格式转换后的COS通过CCID驱动程序发送到所述USBKEY。
可选的,下载软件在获取到所述USBKEY的句柄之后,可以直接调用所述生产线程将COS发送到一个由PC预先设置好的转发模块,再由所述转发模块将COS的数据格式转换为符合CCID驱动程序数据传输要求的数据格式,并使用所述句柄将经过数据格式转换后的COS通过CCID驱动程序发送到所述USBKEY。
从上述实施例可以看出,采用本发明所提供的方法,在以多线程方式向USBKEY下载COS时,可以使下载软件同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值;本发明所提供的方法由于不依赖与SCARDSVR服务,简化了在下载COS过程中的数据转发和数据格式转换的流程;采用本发明提供的方法,还可以使实现动态多线程COS下载,任意USBKEY在插入USB控制器后可以立刻开始下载,不需要分批同时开始,进一步提高了向USBKEY下载COS的下载效率。
参见图2,为本发明向USBKEY下载COS的方法另一个实施例的流程图,该实施例通过接收通知信息的方式,获知USBKEY接入USB控制器,进而完成COS的下载,该实施例包括如下步骤:
步骤201,在USBKEY接入USB控制器时,PC生成通知信息。
由于操作系统会在USBKEY接入到PC的USB控制器后生产并向每一个正在运行的程序发送通知信息,通知所有软件有USBKEY接入USB控制器,下载软件可以通过是否获取到此信息来确定是否有USBKEY接入到了USB控制器,当获取到此信息时就可以确定有USBKEY接入USB控制器。例如,WINDOWS操作系统会在USB设备接入到USB控制器后调用ONDEVICECHANGE函数向所有正在运行的软件发送一个ONDEVICECHANGE信息,当下载软件接收到此信息时,就可以确定有USBKEY接入到了USB控制器。
步骤202,PC的下载软件以所述通知信息为触发命令,为USBKEY创建生产线程。
当下载软件通过所述通知信息获知有USBKEY接入USB控制器后,下载软件可以为所述USBKEY创建一个独立的生产线程。为USBKEY创建独立的生产线程使下载软件能够采用多线程方式同时向多个不同的USBKEY下载COS,从而提高系统资源的利用效率,提高COS下载的效率。
步骤203,PC的下载软件调用所述生产线程从设备管理器中获取所述USBKEY的设备路径。
下载软件在为USBKEY创建完线程之后,调用所述生产线程从设备管理器中获取所述USBKEY的设备路径。
步骤204,PC的下载软件通过所述生产线程调用应用程序编程接口API,以所述USBKEY的设备路径为参数打开所述USBKEY。
由于不再依靠SCARDSVR服务,下载软件对USBKEY进行的操作最常用的方式是通过USBKEY的句柄来实现,因此在向USBKEY下载COS之前需要首先获得USBKEY的句柄。
下载软件可以以所述USBKEY的设备路径为参数,通过生产线程调用WINDOWS操作系统提供的WIN32API中的CREATEFILE打开所述USBKEY,CREATEFILE在打开USBKEY之后会向所述生产线程返回所述USBKEY的句柄。
步骤205,PC的下载软件调用生产线程获取打开所述USBKEY时生成的所述USBKEY的句柄。
下载软件调用生产线程,由生产线程获取CREATEFILE在打开USBKEY之后返回的所述USBKEY的句柄,生产线程或其他的软件、系统服务等都可以通过使用此句柄对USBKEY进行操作。
步骤206,PC的下载软件通过所述生产线程获取需要向所述USBKEY下载的COS。
由于在实际生产中,需要向不同类型的USBKEY下载不同类型的COS,所以下载软件首先调用生产线程获取需要向USBKEY下载的COS。
步骤207,PC的下载软件创建的生产线程将所述COS的数据格式转换为符合芯片CCID驱动程序传输的数据格式。
生产线程可以调用所述生产线程,并且由所述生产线程将COS包含的数据转换符合为CCID驱动传输要求的数据格式。
步骤208,PC的下载软件创建的生产线程使用所述句柄将经过数据格式转换的COS经由所述CCID驱动程序发送到所述USBKEY。
下载软件调用生产线程,再由生产线程调用WIN32函数DEVICEIOCONTROL将经过数据格式转换后的COS发送到CCID驱动程序,再由CCID驱动程序将COS发送到USBKEY,从而实现COS的下载。
从上述实施例可以看出,下载软件可以不依赖与SCARDSVR服务,直接调用操作系统提供的API打开USBKEY,获取USBKEY的句柄,完成COS下载,使得同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值,提高了向USBKEY下载COS的下载效率。
在上述实施例中,执行完步骤201至步骤206之后,下载软件也可以利用生产线程将COS发送到一个预先设置的用于将COS通过CCID驱动程序发送到USBKEY的转发模块,从而完成COS的下载,所述转发模块中封装了应用程序数据格式与CCID驱动程序数据格式之间的转换过程,及使用USBKEY句柄将COS通过CCID驱动程序向USBKEY发送的过程。转发模块可以使下载软件的扩展性更好,而且可以增加WINDOWS操作系统的安全性,使操作系统更加稳定。
参见图3,为本发明向USBKEY下载COS的方法另一个实施例的流程图,该实施例通过主动查询的方式,获知USBKEY接入USB控制器,进而完成COS的下载,该实施例包括如下步骤:
步骤301,PC的下载软件向USB控制器发送用于查询是否有USBKEY接入所述USB控制器的查询指令。
由于USB控制可以有127个端口,所以下载软件可以按照一定的周期,向USB控制器发送查询指令,逐个端口查询是否有USBKEY接入。例如,下载软件首先向USB控制器发送用于查询1号端口是否有USBKEY接入的查询命令,然后再向USB控制器发送用于查询2号端口是否有USBKEY接入的查询命令,然后再向USB控制器发送用于查询3号端口是否有USBKEY接入的查询命令,以此类推,直至查询完所有端口,然后在间隔预定的周期之后再重复这一查询过程。
步骤302,PC的下载软件接收所述USB控制器在接收到所述查询指令后发送的响应信息。
USB控制器会在接收到查询命令后首先检查查询指令查询的端口是否有USBKEY接入,然后向下载软件发送一个返回信息,通知下载软件所述端口是否有USBKEY接入。
步骤303,当PC的下载软件从所述响应信息获知有USBKEY接入所述USB控制器时,为所述USBKEY创建生产线程。
当下载软件从所述响应信息获知有USBKEY接入到USB控制器后,为所述USBKEY创建一个独立的生产线程。为USBKEY创建独立的生产线程可以使下载软件实现以多线程方式同时向多个不同的USBKEY下载COS,从而提高系统资源的利用效率,提高COS下载的效率。
步骤304,PC的下载软件调用所述生产线程从设备管理器中获取所述USBKEY的设备路径。
下载软件在为USBKEY创建完线程之后,调用所述生产线程从WINDOWS操作系统提供的设备管理器中获取所述USBKEY的设备路径。
步骤305,PC的下载软件通过所述生产线程调用应用程序编程接口API,以所述USBKEY的设备路径为参数打开所述USBKEY。
在WINDOWS操作系统中,下载软件对USBKEY进行的操作必须通过USBKEY的句柄来实现,因此在向USBKEY下载COS之前必须首先获得USBKEY的句柄。
下载软件可以以所述USBKEY的设备路径为参数,通过生产线程调用WINDOWS操作系统提供的WIN32API中的CREATEFILE打开所述USBKEY,CREATEFILE在打开USBKEY之后会向所述生产线程返回所述USBKEY的句柄。
步骤306,PC的下载软件调用生产线程获取打开所述USBKEY时生成的所述USBKEY的句柄。
下载软件调用生产线程,由生产线程调用CREATEFILE打开USBKEY,再由生产线程获取CREATEFILE在打开USBKEY之后返回所述USBKEY的句柄,生产线程或其他的软件、服务等可以通过使用此句柄对USBKEY进行操作。
步骤307,PC的下载软件通过所述生产线程获取需要向所述USBKEY下载的COS。
由于在实际生产中,需要向不同类型的USBKEY下载不同的COS,所以下载软件首先调用生产线程获取需要向USBKEY下载的COS。
步骤308,PC的下载软件创建的生产线程将所述COS发送到设置的转发模块,所述转发模块用于将所述COS转换为符合CCID程序驱动传输的数据格式,并使用所述USBKEY的句柄将转换后的数据经由所述CCID驱动程序发送到所述USBKEY。
下载软件可以调用生产线程将COS发送到一个预先设置的转发模块,由转发模块将COS发送到USBKEY。所述转发模块中封装了应用程序数据格式与CCID驱动程序数据格式之间的转换过程,及使用USBKEY的句柄将COS通过CCID驱动程序向USBKEY发送的过程。转发模块的具体形式可以是动态链接库、静态链接库、服务程序、内核驱动等任意形式,转发模块可以作为应用程序层级结构中的一个中间层,连结处于应用程序层级结构顶层的下载软件和处于应用程序层级结构底层的CCID驱动程序,下载软件和CCID驱动程序通过中间层进行交互,不但可以使下载软件的扩展性更好,而且可以增加WINDOWS操作系统的安全性,使操作系统更加稳定。
从上述实施例可以看出,本实施例提供的方法,不但可以使同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值,提高向USBKEY下载COS的下载效率,而且可以防止在实际生产中操作系统已经发送了通知信息,但下载软件由于尚未启动或其他原因而没有接收到通知信息造成的下载过程无法启动,使COS下载更加稳定高效。
在上述实施例中,执行完步骤301至步骤307之后,下载软件也可以调用所述生产线程将所述COS的数据格式转换为符合芯片智能卡接口设备CCID驱动程序传输的数据格式,然后在由所述生产线程使用所述USBKEY的句柄将经过数据格式转换的COS经由所述CCID驱动程序发送到所述USBKEY。COS下载中所有的数据处理和转发过程都在生产线程内完成,可以有效防止同时向多个USBKEY下载COS时各个线程之间相互干扰。
与本发明向USBKEY下载COS的方法相对应,本发明还提供了向USBKEY下载COS的装置。
参见图4,为本发明向USBKEY下载COS的装置的一个实施例框图。
该装置包括:获取单元401,取得单元402,下载单元403。
其中,所述获取单元401,用于获取接入到所述USB控制器的所述USBKEY的设备路径。
所述取得单元402,用于根据所述获取单元401获取到的所述USBKEY的设备路径取得所述USBKEY的句柄。
所述下载单元403,用于使用所述取得单元402取得的所述句柄将COS通过CCID驱动程序下载到所述USBKEY。
从上述实施例可以看出,采用本发明所提供的装置,采用多线程方式向USBKEY下载COS时,可以使下载软件同时下载COS的线程数达到WINDOWS系统对USB设备支持数的理论最大值;本发明所提供的装置由于不依赖与SCARDSVR服务,减少了下载COS过程中数据转发和数据格式转换的次数;采用本发明提供的装置,还可以使实现动态多线程COS下载,任意USBKEY在插入USB控制器后可以立刻开始下载,不需要分批同时开始,进一步提高了向USBKEY下载COS的下载效率。
参见图5,为本发明向USBKEY下载COS的装置的获取单元的一个实施例框图,该实施例通过获取通知信息的方式,获知有USBKEY接入USB控制器,进而获取USBKEY的设备路径。
该获取单元包括:生成子单元501,第一创建子单元502,第一获取子单元503。
其中,所述生成子单元501,用于当USBKEY接入所述USB控制器时生成硬件变更信息。
所述第一创建子单元502,用于以所述生成子单元501生成的所述硬件变更信息为触发命令,为所述USBKEY创建生产线程。
所述第一获取子单元503,用于调用所述第一创建子单元502创建的所述生产线程从设备管理器中获取接入所述USB控制器的USBKEY的设备路径。
本实施例提供的获取单元,可以根据WINDOWS操作系统在USBKEY接入USB控制器后发送的硬件变更信息获知有USBKEY接入USB控制器,并为接入USB控制器的USBKEY创建生产线程,通过生产线程获取USBKEY的设备路径,为下载软件采用多线程方式同时向多个USBKEY下载COS做好准备。
参见图6,为本发明向USBKEY下载COS的装置的获取单元的另一个实施例框图,该实施例通过主动查询的方式,获知有USBKEY接入USB控制器,进而获取USBKEY的设备路径。
该获取单元包括:查询子单元601,接收子单元602,第二创建子单元603,第二获取子单元604。
其中,所述查询子单元601,用于向所述USB控制器发送用于查询是否有USBKEY接入所述USB控制器的查询指令。
所述接收子单元602,用于接收所述USB控制器在接收到所述查询子单元601发送的所述查询指令后发送的响应信息。
所述第二创建子单元603,用于当从所述接收子单元602接收的响应信息获知有USBKEY接入所述USB控制器时,为所述USBKEY创建生产线程。
所述第二获取子单元604,用于调用所述第二创建子单元603创建的所述生产线程从设备管理器中获取USBKEY的设备路径。
从上述实施例可以看出,本实施例提供的获取单元,可以通过主动查询方式获知是否有USBKEY接入USB控制器并为接入USB控制器的USBKEY创建生产线程,通过生产线程获取USBKEY的设备路径,为下载软件采用多线程方式同时向多个USBKEY下载COS做好准备。
参见图7,为本发明向USBKEY下载COS的装置的取得单元的一个实施例框图。
该取得单元包括:设备打开子单元701,句柄获取子单元702。
其中,所述设备打开子单元701,用于通过所述生产线程调用应用程序编程接口API,以所述USBKEY的设备路径为参数打开所述USBKEY。
设备打开子单元701还可以用于以所述USBKEY的设备路径为参数,通过所述生产线程调用WINDOWS操作系统提供的WIN32API中的CREATEFILE打开所述USBKEY,CREATEFILE在打开USBKEY之后会向所述生产线程返回所述USBKEY的句柄。
所述句柄获取子单元702,用于获取所述设备打开子单元701打开所述USBKEY时生成的所述USBKEY的句柄。
从上述实施例可以看出,本实施例提供的取得单元可以调用生产线程,并由生产线程获取所述USBKEY的句柄,为向所述USBKEY下载COS做好准备工作。
参见图8,为本发明向USBKEY下载COS的装置的下载单元的一个实施例框图,该实施例通过自行转换数据格式并发送的方式向USBKEY下载COS。
该下载单元包括:第一数据获取子单元801,格式转换子单元802,第一数据发送子单元803。
其中,所述第一数据获取子单元801,用于通过所述生产线程获取需要向USBKEY下载的COS。
所述格式转换子单元802,用于将所述第一数据获取子单元801获取到的所述COS的数据格式转换为符合CCID驱动程序传输的数据格式。
所述第一数据发送子单元803,用于使用所述句柄将经过所述格式转换子单元802数据格式转换的COS经由所述CCID驱动程序发送到所述USBKEY。
从上述实施例可以看出,本实施例提供的下载单元可以将COS下载中所有的数据处理都放在生产线程内完成,可以有效防止同时向多个USBKEY下载COS时发生冲突。
参见图9,为本发明向USBKEY下载COS的装置的下载单元的另一个实施例框图,该实施例通过调用转发模块的方式向USBKEY下载COS。
该下载单元包括:第二数据获取子单元901,第二数据发送子单元902。
其中,所述第二数据获取子单元901,用于通过所述生产线程获取需要向所述USBKEY下载的COS。
所述第二数据发送子单元902,用于将所述第二数据获取子单元901获取到的所述COS发送到由PC设置的转发模块,所述转发模块用于将COS转换为符合CCID程序驱动传输的数据格式,并使用所述USBKEY的句柄将转换后的数据经由所述CCID驱动发送到所述USBKEY。
从上述实施例可以看出,本实施例提供的下载单元,通过转发模块实现向USBKEY下载COS,不但可以使下载软件的扩展性更好,而且可以增加WINDOWS操作系统的安全性,使操作系统更加稳定。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种向优盘密钥USBKEY下载片内操作系统COS的方法,其特征在于,所述方法包括:
获取接入到通用串行总线USB控制器的USBKEY的设备路径,预先关闭所述USB控制器操作系统中的SCARDSVR服务;
根据所述USBKEY的设备路径取得所述USBKEY的句柄;
获取需要向所述USBKEY下载的片内操作系统COS,且将所述COS的数据格式转换为符合芯片智能卡接口设备CCID驱动程序传输要求的数据格式;
使用所述句柄将格式转换后的COS通过芯片智能卡接口设备CCID驱动程序下载到所述USBKEY。
2.如权利要求1所述的方法,其特征在于,所述获取接入到通用串行总线USB控制器的USBKEY的设备路径包括:
当USBKEY接入所述USB控制器时生成通知信息;
以所述通知信息为触发命令,为USBKEY创建生产线程;
调用所述生产线程从设备管理器中获取接入所述USB控制器的USBKEY的设备路径。
3.如权利要求1所述的方法,其特征在于,所述获取接入到通用串行总线USB控制器的USBKEY的设备路径包括:
向所述USB控制器发送用于查询是否有USBKEY接入所述USB控制器的查询指令;
接收所述USB控制器在接收到所述查询指令后发送的响应信息;
当从所述响应信息获知有USBKEY接入所述USB控制器时,为所述USBKEY创建生产线程;
调用所述生产线程从设备管理器中获取所述USBKEY的设备路径。
4.如权利要求2或3所述的方法,其特征在于,所述根据所述USBKEY的设备路径取得所述USBKEY的句柄包括:
通过所述生产线程调用应用程序编程接口API,以所述USBKEY的设备路径为参数打开所述USBKEY;
获取打开所述USBKEY时生成的所述USBKEY的句柄。
5.一种向优盘密钥USBKEY下载片内操作系统COS的装置,其特征在于,所述装置包括:
获取单元,用于获取接入到通用串行总线USB控制器的所述USBKEY的设备路径,预先关闭所述USB控制器操作系统中的SCARDSVR服务;
取得单元,用于根据所述获取单元获取到的所述USBKEY的设备路径取得所述USBKEY的句柄;
下载单元,用于获取需要向所述USBKEY下载的片内操作系统COS,且将所述COS的数据格式转换为符合芯片智能卡接口设备CCID驱动程序传输要求的数据格式以及使用所述取得单元取得的所述句柄将格式转换后的COS通过CCID驱动程序下载到所述USBKEY。
6.如权利要求5所述的装置,其特征在于,所述获取单元包括:
生成子单元,用于当USBKEY接入所述USB控制器时生成硬件变更信息;
第一创建子单元,用于以所述生成子单元生成的所述硬件变更信息为触发命令,为所述USBKEY创建生产线程;
第一获取子单元,用于调用所述第一创建子单元创建的所述生产线程从设备管理器中获取接入所述USB控制器的USBKEY的设备路径。
7.如权利要求5所述的装置,其特征在于,所述获取单元包括:
查询子单元,用于向所述USB控制器发送用于查询是否有USBKEY接入所述USB控制器的查询指令;
接收子单元,用于接收所述USB控制器在接收到所述查询子单元发送的所述查询指令后发送的响应信息;
第二创建子单元,用于当从所述接收子单元接收的响应信息获知有USBKEY接入所述USB控制器时,为所述USBKEY创建生产线程;
第二获取子单元,用于调用所述第二创建子单元创建的所述生产线程从设备管理器中获取USBKEY的设备路径。
8.如权利要求6或7所述的装置,其特征在于,所述取得单元包括:
设备打开子单元,用于通过所述生产线程调用应用程序编程接口API,以所述USBKEY的设备路径为参数打开所述USBKEY;
句柄获取子单元,用于获取所述设备打开子单元打开所述USBKEY时生成的所述USBKEY的句柄。
9.如权利要求6至7任意一项权利要求所述的装置,其特征在于,所述下载单元包括:
第一数据获取子单元,用于调用所述生产线程获取需要向所述USBKEY下载的COS;
格式转换子单元,用于将所述第一数据获取子单元获取到的所述COS的数据格式转换为符合CCID驱动程序传输要求的数据格式;
第一数据发送子单元,用于使用所述句柄将经过所述格式转换子单元数据格式转换的COS经由所述CCID驱动程序发送到所述USBKEY。
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 CN103077053A (zh) | 2013-05-01 |
CN103077053B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255648B (zh) * | 2016-12-28 | 2021-07-20 | 航天信息股份有限公司 | 一种电子钥匙USBKey的生产测试方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169732A (zh) * | 2006-10-25 | 2008-04-30 | 北京握奇数据系统有限公司 | 在多人机接口设备下匹配设备句柄与设备的方法及系统 |
CN102064944A (zh) * | 2010-11-30 | 2011-05-18 | 北京飞天诚信科技有限公司 | 一种安全发卡方法、发卡设备和系统 |
CN102110004A (zh) * | 2011-02-28 | 2011-06-29 | 北京握奇数据系统有限公司 | 片内操作系统下载的方法、片内操作系统和智能卡 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963931A (zh) * | 2009-07-22 | 2011-02-02 | 鸿富锦精密工业(深圳)有限公司 | 可扩展固件接口下的硬盘测试方法 |
-
2012
- 2012-12-28 CN CN201210592056.1A patent/CN103077053B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169732A (zh) * | 2006-10-25 | 2008-04-30 | 北京握奇数据系统有限公司 | 在多人机接口设备下匹配设备句柄与设备的方法及系统 |
CN102064944A (zh) * | 2010-11-30 | 2011-05-18 | 北京飞天诚信科技有限公司 | 一种安全发卡方法、发卡设备和系统 |
CN102110004A (zh) * | 2011-02-28 | 2011-06-29 | 北京握奇数据系统有限公司 | 片内操作系统下载的方法、片内操作系统和智能卡 |
Also Published As
Publication number | Publication date |
---|---|
CN103077053A (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112799789B (zh) | 一种节点集群管理方法、装置、设备及存储介质 | |
CN104735143B (zh) | 一种基于智能家居云平台的批量控制系统和方法 | |
CN103902390B (zh) | 基于Android的应用层的进程间通信方法及基础应用通信系统 | |
CN102902537B (zh) | 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架 | |
CN105471686A (zh) | 终端控制方法、装置及系统 | |
CN104426750A (zh) | 即时通信方法、设备及系统 | |
CN106470184A (zh) | 安全认证方法、装置及系统 | |
US20090204725A1 (en) | Wimax communication through wi-fi emulation | |
CN104133776A (zh) | 存储阵列自动化配置方法、装置及存储系统 | |
CN109921986A (zh) | 一种多协议数据接入方法、装置、智能网关及存储介质 | |
WO2016070810A1 (zh) | 双执行环境之间双向访问应用的方法 | |
CN105357664A (zh) | 一种无线控制系统及其数据通信方法 | |
CN101872317B (zh) | VxWorks多任务同步与通信方法 | |
CN102025787B (zh) | 数据卡设备网络接口联网的方法和装置 | |
CN104426715B (zh) | 一种分布式测试工具控制方法 | |
CN105812413A (zh) | 通信方法及设备 | |
CN103077053B (zh) | 向usb key下载cos的方法及装置 | |
CN102281197A (zh) | 一种rfid路由器架构系统 | |
CN105262604A (zh) | 虚拟机迁移方法及设备 | |
CN102238571B (zh) | 物联网m2m业务处理的装置、系统以及方法 | |
CN105975415A (zh) | 外围设备管理控制装置、方法及系统 | |
CN106850554B (zh) | 双系统定向连接的方法和装置 | |
CN115190147B (zh) | 一种智能设备控制方法、装置及系统 | |
CN113296987B (zh) | 调用模块的接口调用方法、装置、计算机设备及存储介质 | |
CN109756488A (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 |