发明内容
本发明所要解决的一个技术问题在于提供了一种打开指定端口USB设备的方法,能够对指定端口USB设备的数据进行读写操作,避免数据写入混乱的问题。
为解决上述技术问题,本发明打开指定端口USB设备的方法采用如下的技术方案:
一种打开指定端口USB设备的方法,包括步骤:
获取插入USB端口的USB设备的端口号和USB设备的设备信息;
判断所述插入USB端口的USB设备的设备名称与配置文件中的设备名称是否一致;
如果一致,则将所述USB设备的设备信息写入配置文件中相应端口号的配置信息里;
判断配置文件中与所述端口号对应的基于GUID的设备名称是否为空;
如果不为空,根据所述配置文件中与所述端口号所对应的配置信息,打开所插设的USB设备。
其中,所述的设备信息包括:设备名称和设备状态。
所述根据所述配置文件中的与所述端口号所对应的配置信息,打开所插设的USB设备的步骤包括:
输入所述USB端口的端口号;
根据配置文件中对应端口号的基于GUID的设备名称,在动态链接库打开与所述端口号对应的USB设备。
本发明通过上述打开指定端口USB设备的方法,能够对指定端口的USB设备进行读写操作,从而避免数据写入混乱的问题,实现了对固定USB端口的安全访问。
本发明所要解决的另一个技术问题在于提供了一种打开指定端口USB设备的装置,能够对指定端口USB设备的数据进行读写操作,避免数据写入混乱的问题。
为解决上述技术问题,本发明打开指定端口USB设备的装置采用如下的技术方案:
一种打开指定端口USB设备的装置,包括:
USB端口单元,用于插入USB设备;
扫描单元,用于对所述USB设备进行扫描,获取所述USB端口单元的端口号和所述USB设备的设备信息,并将所述设备信息写入到配置信息单元;
配置信息单元,用于在判断所述USB设备的设备名称与配置文件中与所述端口号对应的设备名称一致时,将所述USB设备的设备信息写入配置文件中相应端口号的配置信息里;
判断单元,用于判断配置文件中与所述端口号对应的基于GUID的设备名称是否为空;
打开单元,用于在所述判断单元判断不为空时,根据所述配置信息单元中与所述端口号所对应的配置信息,打开所述USB端口单元中所插设的USB设备。
所述配置信息单元包括:
判断模块,用于判断所述USB设备的设备名称与所述配置文件中与所述端口号对应的设备名称是否一致;
设备信息模块,用于在所述判断模块判断一致时,将所述USB设备的设备信息写入配置文件中相应端口号的配置信息里。
较佳的,所述打开单元,用于根据所述配置信息单元中与所述端口号所对应的基于GUID的设备名称,在动态链接库中打开所述USB端口单元中所插设的USB设备。
本发明所述的打开指定端口USB设备的装置,能够对指定端口的USB设备进行读写操作,从而避免数据写入混乱的问题,实现了对固定USB端口的安全访问。
具体实施方式
本发明提供了一种打开指定端口USB设备的方法,能够对指定端口USB设备进行读写操作,从而避免了访问USB设备时,容易产生数据写入混乱的问题。
下面结合附图及具体实施例做详细的说明。
如图2所示,打开指定端口USB设备的方法,包括以下步骤:
步骤201、获取插入USB设备的USB端口的端口号和USB设备的设备信息。
当在USB端口插入USB设备时,USB实时扫描程序启动。主机通过USB总线驱动程序打开USB主控制器,依次枚举主控制器和集线器,接着进行枚举USB设备。
当对USB设备进行枚举时,主机首先自动发出查询请求。USB设备回应这个请求,并送出USB设备的厂商号(VendorID,VID)和产品号(ProductID,PID)。然后由主机根据VID和PID装载相应的设备驱动程序,以完成枚举过程。枚举USB设备可以使主机获得关于当前USB设备的设备信息。所述的设备信息包括:所述USB设备的设备名称和设备状态。
USB实时扫描程序存储于计算机硬盘中,通过对上述过程进行实时监控,获取USB设备的设备信息。例如,当在USB主控制器24CD、Generic USB Hub的PORT6端口有USB设备插入时,USB实时扫描程序的运行界面如图3所示。从图3中,我们可以看出,在USB主控制器24CD、Generic USB Hub的PORT6端口有USB设备插入,设备状态显示为Device Connected;设备名称为USB Key。
步骤202、将所述USB设备与所述端口号进行绑定。
如图4所示,具体过程包括:
步骤2021、判断所述USB设备的设备名称与配置文件中的设备名称是否一致。
如果所述设备名称不一致,说明插入的不是同类配套设备,程序结束。
步骤2022、如果所述配置文件中的设备名称为空,需要对所述的USB设备进行配置,建立配置文件。
所述配置过程如下:启动USB实时扫描程序,获取所述USB设备的设备信息;所述的设备信息包括:所述USB设备的设备名称和设备状态。启动程序中的配置文件功能,打开配置文件,将所述USB设备的设备信息写入到所述配置文件与端口号对应的配置信息中,保存所述配置信息。对USB设备进行配置后,以后插入同类配套设备不需要进行配置。
配置文件存储于计算机硬盘中,为了方便,可以将配置文件与USB实时扫描程序存储于同一目录中。配置文件用于动态链接库与USB实时扫描程序进行数据交换。
本发明实施例中,配置文件为WINDOWS系统的标准配置文件类型。如图5或6所示,配置文件主要包括:DeviceInfo和Port。
DeviceInfo用于记录所需绑定USB设备的基本信息和当前插入的个数;
Port用于记录当前插入设备端口的信息。
其中,DeviceInfo包括三部分内容:
DeviceDesc,用于记录所要监控设备的设备名称;
DeviceDescLength,用于记录所要监控设备的基于全局唯一标识符(GUID)的设备名称长度;
PortUsedNumbers,用于记录当前插入的设备个数。
其中,Port包括两部分内容:PortStatus和PortUnicodeName。
PortStatus用于记录当前端口的设备状态;PortUnicodeName用于记录插入该端口的基于GUID的设备名称。
目前,所述的配置文件最大支持32个设备的同时插入。
步骤2023、如果所述USB设备的设备名称与配置文件中的设备名称一致,将所述USB设备的设备信息写入到配置文件中对应端口号的配置信息里。
如果所述的设备名称与配置文件中的设备名称一致,说明插入的是同类配套设备,只需将所述USB设备的设备信息写入到配置文件中对应端口号的配置信息里,就可以实现对USB设备和端口的绑定。例如,当经过判断,插入设备的设备名称与配置文件中的设备名称USB Key一致时,将所述USB设备的设备信息写入到配置文件中对应端口号的配置信息里后,所述的配置文件如图6所示。从图中可以看出,PORT6有USB设备插入,设备状态为Device Connected。
所述配置文件用于动态链接库与USB实时扫描程序进行数据交换。
步骤203、判断配置文件中与所述端口号对应的基于GUID的设备名称是否为空。
如果所述基于GUID的设备名称不为空,并且设备状态显示为Device Connected,说明插入的设备为受监控的同类配套设备,可以执行步骤204,对所述的USB设备进行打开。
步骤204、根据所述配置文件中与所述端口号所对应的配置信息,打开所述USB端口中所插设的USB设备。
如图7所示,所述步骤204的具体过程包括:
步骤2041、输入所述USB端口的端口号。
在应用层打开应用程序,输入相应USB设备的参数,一般输入的是USB设备的端口号。例如,当在USB实时扫描程序的运行界面中的结果是[Port6]Device Connected时,在应用层输入的USB端口号是USB6。
步骤2042、动态链接库打开与所述端口号对应的USB设备。
应用程序调用动态链接库,动态链接库解析出USB设备的端口号信息,根据配置文件中对应端口号的基于GUID的设备名称,通过打开设备函数Creatfile()打开USB设备并返回句柄。读写USB设备的过程与现有的读写方式相同,在此不做赘述。
当对绑定的两个或两个以上的USB设备同时进行操作时,在应用程序中同时输入USB设备的端口信息即可。
本发明实施例中,所述打开指定端口USB设备的方法,通过采用USB实时扫描程序,对与配置文件中设备名称相同的端口设备进行实时监控;通过将检测到的USB设备的设备信息写入相应端口的配置文件中,实现USB设备与端口的绑定;并可以通过动态链接库打开所述USB设备。
当USB端口插入非配套设备时,可以拒绝写入数据,或者通过选取重新配置功能,重新建立配置文件,重新将所述USB设备与端口进行绑定,进而可以通过USB实时扫描程序对其同类设备进行实时监控。本发明实施例可以实现同时对多个同类USB设备进行绑定,最多可以同时监控32个相同USB设备,避免了数据读写混乱的问题。
为了解决现有技术中,当对USB设备进行访问时,由于USB端口不固定容易产生的数据读写混乱的问题,本发明实施例提供了打开指定端口USB设备的装置,能够实现对固定端口USB设备特定数据的安全访问。
下面结合具体实施例打开指定端口USB设备的装置进行详细的描述。
如图8所示,所述装置包括:USB端口单元、扫描单元、配置信息单元、判断单元和打开单元。
其中,USB端口单元用于插入USB设备;扫描单元用于对所述USB设备进行扫描,获取所述USB端口单元的端口号和所述USB设备的设备信息,并将所述设备信息写入到配置信息单元;判断单元用于判断配置文件中与所述端口号对应的基于GUID的设备名称是否为空;打开单元用于根据所述配置信息单元中与所述端口号所对应的配置信息,打开所述USB端口单元中所插设的USB设备。
较佳地,所述打开单元,用于根据所述配置信息单元中与所述端口号所对应的基于GUID的设备名称,打开所述USB端口单元中所插设的USB设备。
本发明实施例中,扫描单元采用USB实时扫描程序。所述的设备信息包括:设备名称和设备状态。当在某一USB端口插入USB设备时,USB实时扫描程序启动;同时,主机枚举USB主控制器、集线器和USB设备。主机保存USB设备的端口信息和设备名称。USB实时扫描程序获取所述USB设备的端口号和设备名称,所述USB实时扫描程序的运行界面如图3所示。从图中可以看出,在PORT6端口有USB设备插入,设备状态信息为Device Connected;所述USB设备的设备名称为USB Key。
本发明实施例中所述的配置文件类型为WINDOWS系统的标准配置文件类型。配置文件保存在计算机硬盘上,为了打开方便,可以将其和USB实时扫描程序保存在同一目录中。
如图5或6所示,所述配置文件包括:DeviceInfo和Port。
DeviceInfo用于记录所需绑定设备的基本信息和当前插入的个数;
Port用于记录当前插入设备端口的信息。
其中,DeviceInfo包括三部分内容:DeviceDesc、DeviceDescLength和PortUsedNumbers。
DeviceDesc,用于记录所要监控设备的设备名称;
DeviceDescLength,用于记录所要监控设备的基于GUID的设备名称长度;
PortUsedNumbers,用于记录当前插入的设备个数。
其中,Port包括两部分内容:PortStatus和PortUnicodeName。
PortStatus用于记录当前端口的设备状态;PortUnicodeName用于记录插入该端口的基于GUID的设备名称。
目前,所述的配置文件最大支持32个设备的同时插入。
在应用层打开应用程序,输入USB设备的端口号。例如,如图3所示,当扫描单元扫描出USB设备的端口号为port6,设备状态为Device Connected时,在应用层输入USB设备的端口号USB6即可。本发明实施例中,打开单元采用动态链接库。动态链接库根据输入的端口信息,从配置文件中找到对应的基于GUID的设备名称,并根据所述基于GUID的设备名称打开所述的USB设备。下面的打开USB设备并对其读写和数据的返回与现有技术相同,在此不做赘述。
如图8所示,本发明实施例所述装置中,所述的配置信息单元用于判断所述USB设备的设备名称与所述配置信息中与所述端口号对应的设备名称是否一致,并保存USB设备的设备信息。
配置信息单元还包括:设备信息模块以及判断模块。
设备信息模块用于存储所述USB设备的设备信息,所述的设备信息包括设备名称、设备状态以及基于GUID的设备名称。
判断模块用于判断所述USB设备的设备名称与配置文件中的设备名称是否一致,如果一致,将USB设备的设备信息写入到配置文件中对应端口号的配置信息里。例如,当用USB实时扫描程序进行USB设备端口状态实时监控时,USB实时扫描程序打开所述端口的配置文件,将所述的USB设备的设备信息写入配置文件中。配置文件如图6所示。其中,USB设备的端口号为PORT6;设备状态为:Device Connected;设备名称为USB Key。
如果不一致,说明插入的不是同类配套设备,程序结束。
如果所述配置文件中的设备名称为空,需要对所述USB设备进行配置,将USB设备的设备信息写入配置文件中。
具体的配置过程如下:启动USB实时扫描程序,获取所述USB设备的设备信息;启动程序中的配置文件功能,将所述USB设备的设备信息写入到所述配置文件与端口号对应的配置信息中,保存所述配置信息。对USB设备进行配置后,以后插入同类配套设备不需要进行配置。
本发明实施例所述的打开指定端口USB设备的装置,实现了对指定USB端口和USB设备的绑定,并能够对固定端口USB设备进行安全访问和数据读写操作。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。