CN103677812A - 一种硬件设备状态自适应的方法及装置 - Google Patents

一种硬件设备状态自适应的方法及装置 Download PDF

Info

Publication number
CN103677812A
CN103677812A CN201310620356.0A CN201310620356A CN103677812A CN 103677812 A CN103677812 A CN 103677812A CN 201310620356 A CN201310620356 A CN 201310620356A CN 103677812 A CN103677812 A CN 103677812A
Authority
CN
China
Prior art keywords
class
equipment
operating system
identification information
driver
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.)
Pending
Application number
CN201310620356.0A
Other languages
English (en)
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 Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield Technology 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 Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN201310620356.0A priority Critical patent/CN103677812A/zh
Publication of CN103677812A publication Critical patent/CN103677812A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明提供了一种硬件设备状态自适应的方法及装置。该方法在硬件设备中设置类标识信息,当设备驱动正常时系统通过加载设备驱动执行,当设备驱动损坏或其他原因无法使用时,操作系统可以根据类标识将设备自动识别为支持的设备类并加载对应的类驱动程序。通过本发明提供的方法,无需安装驱动程序,无需人工操作,简单方便,增加了设备使用的灵活性,便于使用。

Description

一种硬件设备状态自适应的方法及装置
技术领域
本发明涉及计算机驱动领域,特别涉及一种硬件设备状态自适应的方法及装置。
背景技术
驱动程序(Device Driver)全称为“设备驱动程序”,是硬件的一部分,一般由硬件开发商提供,当安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于电脑中的硬件设备时,系统会要求安装对应的驱动程序,将新的硬件与电脑系统连接起来。
驱动程序(Device Driver)全称为“设备驱动程序”,是一种可以使计算机和设备通信的特殊程序,相当于硬件与操作系统的接口,操作系统只能通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。
设备驱动程序用来将硬件本身的功能告诉操作系统,完成硬件设备电子信号与操作系统及软件的高级编程语言之间的互相翻译。当操作系统需要使用某个硬件时,比如:让声卡播放音乐,它会先发送相应指令到声卡驱动程序,声卡驱动程序接收到后,马上将其翻译成声卡才能听懂的电子信号命令,从而让声卡播放音乐。驱动程序提供了硬件到操作系统的一个接口以及协调二者之间的关系,而因为驱动程序有如此重要的作用,驱动程序也被形象的称为“硬件和系统之间的桥梁”。
无驱设备指系统默认支持的一些设备类,操作系统为支持的USB设备类提供类驱动程序,操作系统中包含了这些设备类的驱动程序及安装文件,实现了设备类规范中所述的设备类通用功能。各类驱动程序均作为该类中所有设备的客户端驱动程序。例如,如果所连接的USB设备属于一个操作系统支持的类,则将自动加载类驱动程序,无需其他驱动程序即可保证设备正常工作。硬件供应商无需再为支持的设备类编写驱动程序。比如Microsoft支持的设备类包括蓝牙类、人机接口设备(HID)类、智能卡类等。
HID(Human Interface Device,人机接口设备)主要指的是一些实现人与主机进行交互的设备,如键盘、鼠标、游戏杆等,但是HID设备不一定非要是这些人机交互设备,只要是符合HID设备级定义规范要求的都可以认为是HID设备。Windows操作系统自带了HID类的类驱动程序Hidclass.sys。
日常使用硬件的过程中,经常存在因兼容性、其他软件或驱动程序影响、没有或没有正确安装驱动程序、驱动程序丢失或损坏以及病毒等因素的影响导致硬件无法正常使用,这给用户的使用带来了极大的困扰。
INF(Device INFormation File)是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种描述设备安装信息的文件格式,是Windows可以找到硬件设备的驱动并正确安装的关键所在。INF文件中包含硬件设备的信息或脚本以控制硬件操作,它用特定语法的文字来说明要安装的设备类型、生产厂商、型号、要拷贝的文件、拷贝到的目标路径,以及要添加到注册表中的信息等,通过读取和解释这些内容,Windows便知道应该如何安装驱动程序,INF文件一般存储在C:/Windows/INF文件夹中。
USB协议为USB设备定义了一套描述设备功能和属性的有固定结构的描述符,包括标准的描述符即设备描述符、配置描述符、接口描述符和端点描述符,他们通常被保存在USB设备的固件程序中。USB设备通过描述符反映自己的设备特性。每个USB设备只有一个设备描述符,由一个或多个配置组成。设备描述符用于说明设备的总体信息(如制造商标识号ID、产品ID等),并指明其所含的配置的个数。一个USB设备可以包含一个或多个配置,每个配置对应一个配置描述符,配置描述符用于说明USB设备中各个配置的特性,如配置所含接口的个数等。配置描述符中又定义了该配置里面有多少个接口,每个接口对应一个接口描述符,接口描述符用于说明USB设备中各个接口的特性,如接口所属的设备类及其子类等。端点是USB设备中的实际物理单元,用以描述端点的属性以及各个端点的位置。端点作为通信管道的终点,有四种类型:批量(Bulk)、控制(Contor1)、中断(Interrupt)和同步(Isochronous),HID类设备只有控制端点和中断端点。
设备的接口描述符中描述了类标识信息,USB协议根据功能进行划分,为不同的类定义不同的值(十六进制),如音频类 0x01、人机接口类(HID) 0x03、智能卡类 0x0B等。
发明内容
有鉴于此,本发明提供了一种自动加载设备驱动的方法。
一种自动加载设备驱动的方法,所述方法用于自适应地在操作系统中加载设备驱动,所述方法至少包括如下步骤:
步骤1:将设置有类标识的硬件设备与主机电连接;
步骤2:操作系统自动检测新接入的所述设置有类标识的硬件设备;
步骤3:操作系统读取所述硬件设备内的所述设备描述符获取设备标识信息;
步骤4:操作系统根据所述设备标识信息查找注册表中是否存在所述硬件设备的注册表项,如果存在,则执行步骤5,否则,执行步骤6;
步骤5:操作系统动态地装载所述硬件设备的驱动程序;
步骤6:操作系统根据所述设备标识信息查找INF目录下是否存在所述硬件设备的INF文件,如果查找到与所述设备标识信息相符的所述硬件设备的INF,执行步骤7,如果没有找到,则执行步骤8;
步骤7:操作系统根据所述INF文件中描述的安装信息自动安装驱动程序并填写注册表;
步骤8:操作系统读取所述硬件设备的接口描述符,获取类标识信息;
步骤9:操作系统根据所述类标识信息,自动装载类驱动程序。
所述步骤1中所述硬件设备中设置的类标识包括HID类标识、智能卡类标识。
根据本发明的一个方面,所述USB协议规定的HID类标识为0x03。
所述步骤3中获取所述设备标识信息至少包括制造商标识号ID、和/或产品ID、和/或产品序列号、和/或所属设备类号、和/或产品字符串。
所述步骤4中所述用于查找注册表项的标识信息包括制造商标识号ID、和/或产品ID。
所述步骤9中所述的类驱动程序为操作系统默认支持的设备类对应的类驱动程序。
根据本发明的一个方面,所述操作系统中默认支持HID类, 其对应类驱动程序Hidclass.sys。
本发明通过在硬件设备中设置类标识,使得系统可以在设备驱动存在问题无法正常工作时,自动识别类标识,加载类驱动程序,在设备驱动没有问题时,使用设备自有驱动。通过本发明提供的方法,无需人工操作,简单方便,增加了设备使用的灵活性,便于使用。
附图说明
图1为按照本发明的一种设备状态自适应的一个优选实施方式的流程示意图。
图2为按照本发明的一种设备状态自适应的实施例1的流程示意图。
图3为按照本发明的一种设备状态自适应的实施例2的流程示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明的增加类标识的方法适用于所有可设置类标识的硬件设备,如数码相机、USB Key等。
设置类标识的设备接入系统时,系统会获取设备的描述符信息,并判断该设备是否已经安装过驱动,如果已经成功安装过驱动,则直接装载驱动,如果没有安装过,则查找设备的驱动并安装设备驱动,如果找不到设备驱动程序,则自动读取设备内的类标识,自动加载类驱动程序。
根据本发明的一种方法,如图1所示,包括如下步骤:
步骤1:将设置有类标识的硬件设备与主机电连接;
步骤2:操作系统自动检测新接入的硬件设备;
步骤3:操作系统读取硬件设备内的设备描述符获取设备标识信息;
步骤4:操作系统根据标识信息查找注册表中是否存在该设备的注册表项,如果存在,则执行步骤5,否则,执行步骤6;
步骤5:操作系统动态地装载硬件设备的驱动;
步骤6:操作系统根据标识信息查找INF目录下是否存在该设备的INF文件,如果查找到与标识信息相符的INF,执行步骤7,如果没有找到,则执行步骤8;
步骤7:操作系统根据INF文件中描述的安装信息自动安装驱动程序并填写注册表;
步骤8:操作系统读取设备的接口描述符,获取类标识信息;
步骤9:操作系统根据类标识,自动装载类驱动程序。
所述步骤1中硬件设备中设置的类标识包括但不限于HID类标识、智能卡类标识。根据一个具体实施方式,USB协议规定的HID类标识为0x03。
所述步骤3中获取设备标识信息包括制造商标识号ID、产品ID、产品序列号、所属设备类号、产品字符串等信息。
步骤4中所述用于查找注册表项的标识信息包括制造商标识号ID、产品ID。
步骤9中所述的类驱动程序为系统默认支持的设备类对应的类驱动程序。根据一个具体实施方式,系统中默认支持HID类,其对应类驱动程序Hidclass.sys。
实施例一
本实施例中,所述硬件设备为信息安全设备,比如加密锁。其中,根据该实施例,加密锁具有驱动程序,且为初次使用,所述主机为计算机。加密锁内部接口描述符中设置HID类标识,以便于在加密锁接入主机使用时,当找不到驱动时,通过读取HID类标识,加载HID类驱动程序,从而以HID设备方式运行加密锁设备。
设置HID类标识主要包括:HID描述符(HID描述符中包括报告描述符和物理描述符),HID描述符与接口描述符关联,设备描述符中设置:bDeviceClass字段值为0,该字段为设备类码,设为0表明一个设置下每个接口指出它自己的类,各个接口各自独立工作;bDeviceSubClass(子类码)和bDeviceProtocol(协议码)字段值设置为0,接口描述符中bInterfaceClass(即设备类标识)的值设置为0x03(0x03为USB协议规定的HID设备类标识码)、bInterfaceSubClass(子类码)和bInterfaceProtocol(协议码)设置为0。
根据本发明的一个具体实施方式,一种设备状态自适应的方法,如图2所示,具体步骤包括:
1.    将设置HID类标识的加密锁设备通过接口与计算机主机电连接;
2.    操作系统自动检测加密锁设备的设备描述符信息从而获取制造商ID、产品ID等标识信息;
3.    操作系统根据标识信息查找注册表中是否存在该设备的注册表项,如果存在,执行步骤4,否则,执行步骤5;
4.    操作系统动态地装载所述加密锁设备的驱动程序;
5.    操作系统根据标识信息寻找加密锁设备的INF文件,自动安装所述加密设备的驱动程序并填写注册表;
6.    正常使用加密锁的操作功能。
本实施例通过读取硬件设备描述符获取标识信息,并自动检查该设备的INF文件,根据INF文件安装设备驱动程序,进而支持加密锁的使用,本实施例通过USB设备批量传输端点进行通信,具有速度快的优势,可以提高效率。
实施例二
本实施例与实施例一类似,其区别在于,假定用户没有安装加密锁驱动或者加密锁驱动丢失或损坏,根据本发明的一个实施方式,一种设备状态自适应的方法,如图3所示,具体步骤包括:
1.将加密锁设备通过接口与计算机主机电连接;
2.操作系统检测加密锁设备的设备描述符信息获取制造商ID、产品ID等标识信息;
3.操作系统根据标识信息查找注册表中是否存在该设备的注册表项,如果存在,执行步骤4,否则,执行步骤5; 
4.操作系统自动装载所述加密锁设备的驱动程序;
5.操作系统根据标识信息查找加密锁的INF文件,如果查找到相符的INF文件,则执行步骤6,否则执行步骤7;
6.操作系统根据INF文件自动安装所述加密锁设备的驱动程序并填写注册表;
7.操作系统读取加密锁接口描述符获取类标识0x03(HID类标识);
8.操作系统自动加载HID类驱动程序Hidclass.sys。
本发明在硬件设备中增加类标识,使得当设备驱动无法正常使用时,可以根据类标识将设备识别为无驱类设备,无需安装驱动即可正常使用。本发明无需人工操作,简单方便,增加了设备使用的灵活性,提升用户体验,具有很大的实用性。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种自动加载设备驱动的方法,所述方法用于自适应地在操作系统中加载设备驱动,其特征在于,所述方法至少包括如下步骤:
步骤1:将设置有类标识的硬件设备与主机电连接;
步骤2:操作系统自动检测新接入的所述设置有类标识的硬件设备;
步骤3:操作系统读取所述硬件设备内的所述设备描述符获取设备标识信息;
步骤4:操作系统根据所述设备标识信息查找注册表中是否存在所述硬件设备的注册表项,如果存在,则执行步骤5,否则,执行步骤6;
步骤5:操作系统动态地装载所述硬件设备的驱动程序;
步骤6:操作系统根据所述设备标识信息查找INF目录下是否存在所述硬件设备的INF文件,如果查找到与所述设备标识信息相符的所述硬件设备的INF,执行步骤7,如果没有找到,则执行步骤8;
步骤7:操作系统根据所述INF文件中描述的安装信息自动安装驱动程序并填写注册表;
步骤8:操作系统读取所述硬件设备的接口描述符,获取类标识信息;
步骤9:操作系统根据所述类标识信息,自动装载类驱动程序。
2.根据权利要求1所述的一种自动加载设备驱动的方法,其特征在于,所述步骤1中所述硬件设备中设置的类标识包括HID类标识、智能卡类标识。
3.根据权利要求2所述的一种自动加载设备驱动的方法,其特征在于,USB协议规定的HID类标识为0x03。
4.根据权利要求1-3所述的一种自动加载设备驱动的方法,其特征在于,所述步骤3中获取所述设备标识信息至少包括制造商标识号ID、和/或产品ID、和/或产品序列号、和/或所属设备类号、和/或产品字符串。
5.根据权利要求1-4所述的一种自动加载设备驱动的方法,其特征在于,步骤4中所述用于查找注册表项的标识信息包括制造商标识号ID、和/或产品ID。
6.根据权利要求1-5所述的一种自动加载设备驱动的方法,其特征在于,步骤9中所述的类驱动程序为操作系统默认支持的设备类对应的类驱动程序。
7.根据权利要求1-6所述的一种自动加载设备驱动的方法,其特征在于,操作系统中默认支持HID类。
CN201310620356.0A 2013-11-29 2013-11-29 一种硬件设备状态自适应的方法及装置 Pending CN103677812A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310620356.0A CN103677812A (zh) 2013-11-29 2013-11-29 一种硬件设备状态自适应的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310620356.0A CN103677812A (zh) 2013-11-29 2013-11-29 一种硬件设备状态自适应的方法及装置

Publications (1)

Publication Number Publication Date
CN103677812A true CN103677812A (zh) 2014-03-26

Family

ID=50315479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310620356.0A Pending CN103677812A (zh) 2013-11-29 2013-11-29 一种硬件设备状态自适应的方法及装置

Country Status (1)

Country Link
CN (1) CN103677812A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016034047A1 (zh) * 2014-09-01 2016-03-10 飞天诚信科技股份有限公司 一种加密锁的自适应通讯方法
CN106020807A (zh) * 2016-05-13 2016-10-12 上海井蛙科技有限公司 驱动程序的调用方法及系统
CN106529260A (zh) * 2015-09-14 2017-03-22 北京中质信维科技有限公司 一种安全key设备的自动适配方法和系统
CN107678875A (zh) * 2017-09-29 2018-02-09 北京深思数盾科技股份有限公司 一种故障检测及自动修复方法、装置、终端及存储介质
CN109254796A (zh) * 2018-08-13 2019-01-22 深圳市德名利电子有限公司 一种usb设备的上盘配置方法及主机
CN109951564A (zh) * 2019-03-29 2019-06-28 重庆忽米网络科技有限公司 一种智能设备微服务的生成方法
CN117215602A (zh) * 2023-10-30 2023-12-12 广州鼎甲计算机科技有限公司 驱动程序更新方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1834920A (zh) * 2006-04-30 2006-09-20 北京飞天诚信科技有限公司 一种usb设备过滤驱动程序的自动安装方法
CN101751353A (zh) * 2009-12-24 2010-06-23 深圳华为通信技术有限公司 数据卡升级方法及装置
US20100211963A1 (en) * 2009-02-18 2010-08-19 Canon Kabushiki Kaisha Information processing apparatus, control method, and program
CN102012948A (zh) * 2010-04-12 2011-04-13 中国科学院西安光学精密机械研究所 基于usb的数据实时采集和存储系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1834920A (zh) * 2006-04-30 2006-09-20 北京飞天诚信科技有限公司 一种usb设备过滤驱动程序的自动安装方法
US20100211963A1 (en) * 2009-02-18 2010-08-19 Canon Kabushiki Kaisha Information processing apparatus, control method, and program
CN101751353A (zh) * 2009-12-24 2010-06-23 深圳华为通信技术有限公司 数据卡升级方法及装置
CN102012948A (zh) * 2010-04-12 2011-04-13 中国科学院西安光学精密机械研究所 基于usb的数据实时采集和存储系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
崔树懋: "基于USB的多点张力数据采集系统的设计与实现", 《万方数据库》 *
李军: "基于ARM的嵌入式网络打印适配器的研制", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016034047A1 (zh) * 2014-09-01 2016-03-10 飞天诚信科技股份有限公司 一种加密锁的自适应通讯方法
US10142318B2 (en) * 2014-09-01 2018-11-27 Feitian Technologies Co., Ltd. Self-adaptive communication method for encryption dongle
CN106529260A (zh) * 2015-09-14 2017-03-22 北京中质信维科技有限公司 一种安全key设备的自动适配方法和系统
CN106020807A (zh) * 2016-05-13 2016-10-12 上海井蛙科技有限公司 驱动程序的调用方法及系统
CN107678875A (zh) * 2017-09-29 2018-02-09 北京深思数盾科技股份有限公司 一种故障检测及自动修复方法、装置、终端及存储介质
CN107678875B (zh) * 2017-09-29 2020-01-24 北京深思数盾科技股份有限公司 一种故障检测及自动修复方法、装置、终端及存储介质
CN109254796A (zh) * 2018-08-13 2019-01-22 深圳市德名利电子有限公司 一种usb设备的上盘配置方法及主机
CN109951564A (zh) * 2019-03-29 2019-06-28 重庆忽米网络科技有限公司 一种智能设备微服务的生成方法
CN117215602A (zh) * 2023-10-30 2023-12-12 广州鼎甲计算机科技有限公司 驱动程序更新方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN103677812A (zh) 一种硬件设备状态自适应的方法及装置
US8650332B2 (en) Method for switching working mode, USB device, and host device
CN103748569B (zh) Usb设备的无驱动操作的系统和方法
CN101702143B (zh) 修改usb设备驱动匹配信息的方法及装置
CN103412769A (zh) 外接卡参数配置方法、设备以及系统
CN102810077B (zh) 一种异常硬件的检测方法和装置
EP2148259A1 (en) Field device management apparatus and field device management system
US10176327B2 (en) Method and device for preventing application in an operating system from being uninstalled
CN104765621A (zh) 一种在集群节点中部署程序的方法和系统
CN102567268A (zh) 一种usb转虚拟串口/modem的检测方法
CN102023882A (zh) 计算机自动识别手机并安装手机驱动程序的系统及方法
WO2021248788A1 (zh) 一机多控方法、装置、系统及电子设备
CN105068946A (zh) 一种安卓设备的识别方法和装置
CN106933754A (zh) 一种usb驱动识别方法及装置
CN112395843A (zh) 一种基于php代码的业务处理方法、装置及设备和介质
CN109582506A (zh) 触摸屏失灵的恢复方法及装置、主机设备及触控系统
CN1960276B (zh) 远程控制系统及方法
JP2014203138A (ja) 電子装置、検証方法及び検証プログラム
JP2014217186A (ja) 電子装置、検証方法及び検証プログラム
CN101788946B (zh) Cpld上连接有e2prom设备的固件烧结方法及装置
CN103440146A (zh) 一种基于云存储的更新bios的方法
WO2020000657A1 (zh) 运维监控连接的建立方法、装置、终端设备及介质
CN103955379B (zh) 一种注册软件的方法和系统
CN1975701B (zh) 主机驱动外设的方法及系统
CN110515662B (zh) 双系统设备的远程控制方法、系统、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant after: BEIJING SHENSI SHUDUN SCIENCE & TECHNOLOGY CO., LTD.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: Beijing Shensi Shudun Technology Co., Ltd.

COR Change of bibliographic data
CB02 Change of applicant information

Address after: 100193 Beijing, Haidian District, East West Road, No. 10, East Hospital, building No. 5, floor 5, layer 510

Applicant after: BEIJING SHENSI SHUDUN SCIENCE & TECHNOLOGY CO., LTD.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SHENSI SHUDUN SCIENCE & TECHNOLOGY CO., LTD.

COR Change of bibliographic data
RJ01 Rejection of invention patent application after publication

Application publication date: 20140326

RJ01 Rejection of invention patent application after publication