在多人机接口设备下匹配设备句柄与设备的方法及系统技术方案

技术编号:2918189 阅读:290 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了HID的匹配设备句柄与设备的方法及系统,在HID生产厂商号与产品号相同时,根据系统接口函数获取设备句柄及对应的设备路径,根据注册表获取设备路径与HID类驱动加载号的映射关系,以及HID设备作为USB设备的路径,USB设备路径在注册表中的USB类驱动加载号;根据HID设备的HID类驱动和USB类驱动的加载关系,通过USB类驱动加载号获取HID类驱动加载号;根据HID类驱动加载号获得每一个HID类驱动加载号对应的HID设备路径;根据设备路径,为每个驱动加载号匹配对应的句柄。本发明专利技术运用在多个HID设备时,能够准确的确定设备句柄与实际设备的对应关系,从而进行操作。

【技术实现步骤摘要】

本专利技术涉及人机接口设备,尤其涉及一种在多人机接口设备下匹配设备句柄与设备的方法。
技术介绍
人机接口设备(HID,human interface device)是用于管理和控制大多数计算机的人工输入设备,是USB的标准设备之一,HID属于一种具体的USB设备。由于自Windows 98开始,HID一直是Windows操作系统支持的较为完善的USB设备类。操作系统不仅提供了完整的USB系统软件,而且直接提供了HID的设备驱动程序。这样在开发HID设备时,就无需在PC上编写驱动程序,直接调用Windows提供的HID类接口函数就可以开发用户软件。这样大大降低了开发的难度。因此在设备定型时,如果HID能够实现数据传输的要求,就会优先考虑HID,HID的设备种类也越来越多,应用的也越来越广泛。随着HID应用范围的扩大,在很多场合出现需要同时应用多个HID的情形。比如,在多线程的情况下,根据不同的外界条件动态生成线程,生成的线程去操作指定的某个设备。如果多个HID为不同种类的设备,那么只需按照Windows系统提供的应用接口函数(API,Application Program Interface)根据不同设备的生产商号(VID)和产品号(PID)即可获得设备句柄,进而操作设备,图1为获取设备句柄的流程示意图,具体流程如图所示为:步骤101、获取HID的全局唯一标识号(Guid,Global Unqiue Identity Code);步骤102、获取所有HID的设备信息;步骤103、获取设备路径;步骤104、获取设备句柄;-->步骤105、获取设备的VID和PID;步骤106、判断设备是否符合要求,是则转入步骤108,否则转入步骤107;步骤107、关闭设备句柄;步骤108、判断设备是否遍历完毕;是则转入步骤109,否则转入步骤103;步骤109、获取所有句柄。实际上,对于同种类型的多个设备,其VID和PID是相同的,而通过系统提供的API获取的设备句柄与插入设备的对应关系对用户是透明的,所以系统就无法操作用户指定的某个设备。现在一种解决的方法是按设备插入的先后顺序打开设备,由于设备的插入顺序对用户是可知的,所以这种方式获取的句柄能够操作用户指定的设备。对于USB大容量存储设备,Windows系统把其视为硬盘。假如PC有M个硬盘,则USB大容量存储设备按其插入的先后顺序的符号连接名为PhysicalDriveM,PhysicalDriveN,PhysicalDriveP...,其中N=M+1,P=N+1。这样只需调用hDevice=CreateFile(“\\\\\\\\.\\\\PhysicalDriveN″,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL)即可获取句柄来操作用户指定的设备。然而,对于HID设备来说,其符号连接名是没有规律的,不能根据符号连接名来判断其插入的顺序,也就无法操作指定的某个设备。由上述可知,现有技术中存在着以下不足:对于具有相同的生产商号(VID)和产品号(PID)的多个HID设备,虽然每个设备的句柄和驱动加载号是可以获得的,但是却无法与USB驱动加载号对应上。因此即使可以得到多个USB驱动加载号,并且也能够准确的确定驱动信息与实际设备的对应关系,但是无法得到对应HID设备的句柄,也无法对其进行操作。
技术实现思路
-->本专利技术提供了一种在多人机接口设备下匹配设备句柄与设备的方法及系统,用以解决现有技术中存在的对于具有相同的VID和PID的多个HID设备,不能与USB驱动加载号对应,也不能匹配对应HID设备的句柄,从而不能对其进行操作的问题。本专利技术在多人机接口设备HID下匹配设备句柄与设备的方法,在HID生产厂商号与产品号相同时,包括如下步骤:获取设备句柄及对应的设备路径,根据注册表获取所述设备路径与HID类驱动加载号的映射关系,以及HID设备作为USB设备的路径,所述USB设备路径在注册表中的USB类驱动加载号;根据HID设备的HID类驱动和USB类驱动的加载关系,通过所述USB类驱动加载号获取HID类驱动加载号;根据所述HID类驱动加载号获得每一个所述HID类驱动加载号对应的HID设备路径;根据所述设备路径,为每个驱动加载号匹配对应的句柄。较佳地,所述HID设备的HID类驱动和USB类驱动的加载关系是通过注册表获取的。较佳地,所述HID类驱动加载号,是根据注册表的硬件键HID包含硬件及驱动信息的子键获取设备的HID类驱动加载号。较佳地,根据所述子健中子键名为所述HID设备路径,访问子键中表示驱动加载信息的值项“Driver”对应的值获取所述设备的HID类驱动加载号。较佳地,所述USB设备的路径,是根据注册表中服务键HIDUSB包含硬件信息的子键Enum中表示设备插入顺序的值项对应的值得到每个HID设备作为USB设备的路径。较佳地,所述USB类驱动加载号,是根据注册表中硬件键USB包含硬件及驱动信息的子键中,子键名为所述USB设备路径,访问子键中表示驱动加载信息的值项对应的值获取所述设备的USB类驱动加载号。-->较佳地,所述HID类驱动加载号,通过所述USB类驱动加载号加一后获取HID类驱动加载号。本专利技术还提供了一种在多人机接口设备下匹配设备句柄与设备的系统,在HID生产厂商号与产品号相同时,包括第一映射模块、第二映射模块、第一获取模块、第二获取模块、第三获取模块、匹配模块,其中:第一映射模块,用于获取设备句柄及对应的设备路径后建立设备句柄与设备路径的映射关系;第二映射模块,与第一映射模块相连,用于根据注册表建立所述设备路径与HID类驱动加载号的映射关系;第一获取模块,用于根据注册表获取HID设备作为USB设备的路径;第二获取模块,与第一获取模块相连,用于根据第一获取模块中所述USB设备路径,在注册表中获取USB类驱动加载号;第三获取模块,与第二获取模块相连,用于根据HID设备的HID类驱动和USB类驱动的加载关系,通过第二获取模块中所述USB类驱动加载号获取HID类驱动加载号;匹配模块,与第三获取模块、第一映射模块、第二映射模块相连,用于根据第二映射模块的映射关系中所述HID类驱动加载号获得每一个第三获取模块中所述HID类驱动加载号对应的HID设备路径;根据第一映射模块中所述的设备路径,为每个驱动加载号匹配对应的句柄。本专利技术有益效果如下:由于HID设备首先是一个USB设备,所以对于HID设备,要加载USB类驱动和HID类驱动。加载顺序是先加载USB类驱动然后再加载HID类驱动,并且系统按递增顺序为每个加载的驱动分配一个驱动加载号,也就是在HID设备的HID类驱动和USB类驱动加载号之间存在着特定的关系,在WINDOWS中,对一个HID设备而言,其HID类驱动的驱动加载号是USB类驱动的驱动加载号加一,而这些驱动加载号可以在注册表中的硬件键下获取。当一个HID-->设备插入后,USB类驱动获取设备的硬件信息,在注册表中的服务键HIDUSB下添加一个表示HID设备插入顺序值项,设备的USB路径名作为该值项的值。所以对于一个HID设备,可以在服务键本文档来自技高网
...

【技术保护点】
一种在多人机接口设备HID下匹配设备句柄与设备的方法,在HID生产厂商号与产品号相同时,其特征在于,包括如下步骤:获取设备句柄及对应的设备路径,根据注册表获取所述设备路径与HID类驱动加载号的映射关系,以及HID设备作为USB设备的 路径,所述USB设备路径在注册表中的USB类驱动加载号;根据HID设备的HID类驱动和USB类驱动的加载关系,通过所述USB类驱动加载号获取HID类驱动加载号;根据所述HID类驱动加载号获得每一个所述HID类驱动加载号对应的 HID设备路径;根据所述设备路径,为每个驱动加载号匹配对应的句柄。

【技术特征摘要】
1.一种在多人机接口设备HID下匹配设备句柄与设备的方法,在HID生产厂商号与产品号相同时,其特征在于,包括如下步骤:获取设备句柄及对应的设备路径,根据注册表获取所述设备路径与HID类驱动加载号的映射关系,以及HID设备作为USB设备的路径,所述USB设备路径在注册表中的USB类驱动加载号;根据HID设备的HID类驱动和USB类驱动的加载关系,通过所述USB类驱动加载号获取HID类驱动加载号;根据所述HID类驱动加载号获得每一个所述HID类驱动加载号对应的HID设备路径;根据所述设备路径,为每个驱动加载号匹配对应的句柄。2.如权利要求1所述的方法,其特征在于,所述HID设备的HID类驱动和USB类驱动的加载关系是通过注册表获取的。3.如权利要求1所述的方法,其特征在于,所述HID类驱动加载号,是根据注册表的硬件键HID包含硬件及驱动信息的子键获取设备的HID类驱动加载号。4.如权利要求3所述的方法,其特征在于,根据所述子健中子键名为所述HID设备路径,访问子键中表示驱动加载信息的值项“Driver”对应的值获取所述设备的HID类驱动加载号。5.如权利要求2所述的方法,其特征在于,所述USB设备的路径,是根据注册表中服务键HIDUSB包含硬件信息的子键Enum中表示设备插入顺序的值项对应的值得到每个HID设备作为USB设备的路径。6.如权利要求1所述的方法,其特征在于,所述USB类驱动加载号,是根...

【专利技术属性】
技术研发人员:李文锋
申请(专利权)人:北京握奇数据系统有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1