向usbkey下载cos的方法及装置的制作方法

文档序号:6386425阅读:530来源:国知局
专利名称:向usb key下载cos的方法及装置的制作方法
技术领域
本发明涉及安全认证领域,尤其涉及向优盘密钥(USB KEY, UNIVERSAL SERIALBUSKEY)下载片内操作系统(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为该USBKEY创建独立的生产线程,由此可以实现通过多线程下载方式同时向多个USBKEY下载COS。发明人在对现有技术的研究过程中发现,PC的USB控制器可以支持127个USBKEY同时接入USB控制器,但限于SCARDSVR服务同时最多只能为10个USB KEY分配READERNAME,因此PC只能同时向10个USB KEY下载C0S,这种下载方式难以充分利用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控制器的USBKEY的设备路径。结合一方面,在第二种可能的实现方式中,所述获取接入到所述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驱动程序下载到所述USBKEY。结合另一方面,在第一种可能的是实现方式中,所述获取单元包括生成子单元,用于当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上安装的下载软件在以主动查询的方式或被动接收通知的方式获知有USBKEY接入到USB控制器后,可以为USB KEY创建一个独立的生产线程,创建完生产线程后,下载软件可以调用所述生产线程获取USB KEY接入到所述USB控制器之后生成的设备路径。下载软件为每一个USB KEY创建一个独立的生产线程,可以实现以多线程方式同时向多个USB KEY下载C0S,从而提高系统资源的利用效率,提高COS下载的效率。可选的,由于PC会在USB KEY接入USB控制器时向所有正在运行的程序发送通知信息,当下载软件获取到所述通知信息时,为所述USB KEY创建生产线程并调用所述生产线程从操作系统提供的设备管理器中获取所述USB KEY的设备路径。可选的,下载软件可以向USB控制器发送查询指令,查询是否有USB KEY接入到USB控制器,USB控制器在接收到所述查询指令后向下载软件发送响应信息,通知下载软件是否有USB KEY接入到所述USB控制器,当从下载软件从接收到的所述响应信息获知有USBKEY接入所述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直接进行操作,下载软件可以调用所述生产线程,由所述生产线程使用所述USBKEY的句柄将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下载C0S,从而提高系统资源的利用效率,提高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时生成的所述USBKEY的句柄。下载软件调用生产线程,由生产线程获取CREATEFILE在打开USB KEY之后返回的所述USB KEY的句柄,生产线程或其他的软件、系统服务等都可以通过使用此句柄对USBKEY进行操作。步骤206,PC的下载软件通过所述生产线程获取需要向所述USB KEY下载的COS。由于在实际生产中,需要向不同类型的USB KEY下载不同类型的C0S,所以下载软件首先调用生产线程获取需要向USB KEY下载的COS。步骤207,PC的下载软件创建的生产线程将所述COS的数据格式转换为符合芯片CCID驱动程序传输的数据格式。生产线程可以调用所述生产线程,并且由所述生产线程将COS包含的数据转换符合为CCID驱动传输要求的数据格式。步骤208,PC的下载软件创建的生产线程使用所述句柄将经过数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。下载软件调用生产线程,再由生产线程调用WIN32函数DEVICEI0C0NTR0L将经过数据格式转换后的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控制器发送用于查询I号端口是否有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下载C0S,从而提高系统资源的利用效率,提高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时生成的所述USBKEY的句柄。下载软件调用生产线程,由生产线程调用CREATEFILE打开USB KEY,再由生产线程获取CREATEFILE在打开USB KEY之后返回所述USB KEY的句柄,生产线程或其他的软件、服务等可以通过使用此句柄对USB KEY进行操作。步骤307,PC的下载软件通过所述生产线程获取需要向所述USB KEY下载的COS。由于在实际生产中,需要向不同类型的USB KEY下载不同的C0S,所以下载软件首先调用生产线程获取需要向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,用于通过所述生产线程获取需要向所述USBKEY下载的COS。所述第二数据发送子单元902,用于将所述第二数据获取子单元901获取到的所述COS发送到由PC设置的转发模块,所述转发模块用于将COS转换为符合CCID程序驱动传输的数据格式,并使用所述USB KEY的句柄将转换后的数据经由所述CCID驱动发送到所述 USB KEY。从上述实施例可以看出,本实施例提供的下载单元,通过转发模块实现向USB KEY下载C0S,不但可以使下载软件的扩展性更好,而且可以增加WINDOWS操作系统的安全性,使操作系统更加稳定。本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
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所述的方法,其特征在于,所述根据所述USBKEY的设备路径取得所述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驱动程序发送到所述USBKEY。
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时生成的所述USBKEY的句柄。
11.如权利要求8至10任意一项权利要求所述的装置,其特征在于,所述下载单元包括:第一数据获取子单元,用于调用所述生产线程获取需要向所述USB KEY下载的COS ;格式转换子单元,用于将所述第一数据获取子单元获取到的所述COS的数据格式转换为符合CCID驱动程序传输要求的数据格式;第一数据发送子单元,用于使用所述句柄将经过所述格式转换子单元数据格式转换的COS经由所述CCID驱动程序发送到所述USB KEY。
12.如权利要求8至10任意一项权利要求所述的装置,其特征在于,所述下载单元包括:第二数据获取子单元,用于调用所述生产线程获取需要向所述USB KEY下载的COS ;第二数据发送子单元,用于将所述第二数据获取子单元获取到的所述COS发送到转发模块,所述转发模块用于将COS的数据格式转换为符合CCID程序驱动传输要求的数据格式,并使用所述USB KEY的句柄将转换后的数据经由所述CCID驱动程序发送到所述USBKEY。
全文摘要
本发明实施例公开了向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的下载效率。
文档编号G06F9/445GK103077053SQ20121059205
公开日2013年5月1日 申请日期2012年12月28日 优先权日2012年12月28日
发明者戴鹏, 张炜, 王海民, 郭瑞宾 申请人:北京华大信安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1