CN112131146A - 获取设备信息的方法、装置、存储介质及电子设备 - Google Patents

获取设备信息的方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN112131146A
CN112131146A CN201910551370.7A CN201910551370A CN112131146A CN 112131146 A CN112131146 A CN 112131146A CN 201910551370 A CN201910551370 A CN 201910551370A CN 112131146 A CN112131146 A CN 112131146A
Authority
CN
China
Prior art keywords
terminal
peripheral
information
equipment
virtual
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.)
Granted
Application number
CN201910551370.7A
Other languages
English (en)
Other versions
CN112131146B (zh
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.)
Trend Technology (Shanghai) Co.,Ltd.
Vita Technology Beijing Co ltd
Original Assignee
Vita Technology Beijing 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 Vita Technology Beijing Co ltd filed Critical Vita Technology Beijing Co ltd
Priority to CN201910551370.7A priority Critical patent/CN112131146B/zh
Priority to PCT/CN2020/095376 priority patent/WO2020259286A1/zh
Priority to US17/620,522 priority patent/US20220358055A1/en
Publication of CN112131146A publication Critical patent/CN112131146A/zh
Application granted granted Critical
Publication of CN112131146B publication Critical patent/CN112131146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • G06F13/107Terminal emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开涉及一种获取设备信息的方法、装置、存储介质及电子设备,以保证计算机***中应用程序的正常运行。该方法应用于第一终端,所述第一终端中的应用程序通过设备调用接口与第二终端中的外设进行通信,包括:响应于接收到设备查询请求,根据预设规则,在所述第一终端中确定目标外设,其中,所述设备查询请求用于查询所述第二终端中外设的设备信息;获取所述目标外设的设备信息;向所述应用程序发送所述目标外设的设备信息。

Description

获取设备信息的方法、装置、存储介质及电子设备
技术领域
本公开涉及计算机技术领域,具体地,涉及一种获取设备信息的方法、装置、存储介质及电子设备。
背景技术
在计算机***中,为了提高应用程序的性能,在执行计算任务时,可以先通过设备调用接口获得设备在计算***中的总线地址、设备地址等信息,并通过操作***接口查询该设备与计算机中所有CPU(Central Processing Unit,中央处理器)之间的设备分布信息,然后通过上述得到的设备分布信息,确定与设备的通信距离最近的CPU进行计算任务,从而提高计算效率。
但是,相关技术中,计算机A的应用程序可以通过远程设备调用接口调用计算机B内的外设进行辅助运算。在此种情况下,计算机A通过设备调用接口查询得到的总线地址、设备地址等信息是该设备在计算机B中的设备信息。因此,通过计算机A的操作***接口查询该设备与计算机A中所有CPU之间的设备分布信息时,由于计算机A中并不存在该设备,则不能查询到对应的设备分布信息,从而应用程序会认为这是一种执行错误,并停止该应用程序的运行。
发明内容
本公开的目的是提供一种获取设备信息的方法、装置、存储介质及电子设备,以保证计算机***中应用程序的正常运行。
为了实现上述目的,第一方面,本公开提供一种获取设备信息的方法,应用于第一终端,所述第一终端中的应用程序通过设备调用接口与第二终端中的外设进行通信,所述方法包括:
响应于接收到设备查询请求,根据预设规则,在所述第一终端中确定目标外设,其中,所述设备查询请求用于查询所述第二终端中外设的设备信息;
获取所述目标外设的设备信息;
向所述应用程序发送所述目标外设的设备信息。
可选地,所述第一终端为虚拟终端,且所述第一终端与所述第二终端的设备调用接口通信连接,所述根据预设规则,在所述第一终端中确定目标外设,包括:
控制所述第二终端的设备调用接口获取所述第二终端中外设的设备信息;
根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设;
如果在所述第一终端中成功添加与所述外设相同的虚拟外设,则将所述虚拟外设作为所述目标外设。
可选地,所述方法还包括:
如果未在所述第一终端中成功添加与所述外设相同的虚拟外设,则在所述第一终端的已有外设中确定所述目标外设。
可选地,所述根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设,包括:
判断所述第一终端中是否存在与所述第二终端中外设相同的目标外设;
如果所述第一终端中不存在与所述第二终端中外设相同的目标外设,则根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设。
可选地,所述查询请求包括所述第二终端中外设的类型信息,所述类型信息用于表征所述第二终端中外设的设备类型,所述根据预设规则,在所述第一终端中确定目标外设,包括:
对所述查询请求进行解析,得到所述第二终端中外设的设备类型;
在所述第一终端中,确定设备类型与所述第二终端中外设的设备类型相同的目标外设。
第二方面,本公开还提供一种获取设备信息的装置,应用于第一终端,所述第一终端中的应用程序通过设备调用接口与第二终端中的外设进行通信,所述装置包括:
确定模块,用于响应于接收到设备查询请求,根据预设规则,在所述第一终端中确定目标外设,其中,所述设备查询请求用于查询所述第二终端中外设的设备信息;
获取模块,用于获取所述目标外设的设备信息;
发送模块,用于向所述应用程序发送所述目标外设的设备信息。
可选地,所述第一终端为虚拟终端,且所述第一终端与所述第二终端的设备调用接口通信连接,所述确定模块包括:
控制子模块,用于控制所述第二终端的设备调用接口获取所述第二终端中外设的设备信息;
添加子模块,用于根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设;
第一确定子模块,用于当在所述第一终端中成功添加与所述外设相同的虚拟外设时,将所述虚拟外设作为所述目标外设。
可选地,所述装置还包括:
第二确定子模块,用于当未在所述第一终端中成功添加与所述外设相同的虚拟外设时,在所述第一终端的已有外设中确定所述目标外设。
可选地,所述添加子模块用于:
判断所述第一终端中是否存在与所述第二终端中外设相同的目标外设;
如果所述第一终端中不存在与所述第二终端中外设相同的目标外设,则根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设。
可选地,所述查询请求包括所述第二终端中外设的类型信息,所述类型信息用于表征所述第二终端中外设的设备类型,所述确定模块用于:
对所述查询请求进行解析,得到所述第二终端中外设的设备类型;
在所述第一终端中,确定设备类型与所述第二终端中外设的设备类型相同的目标外设。
第三方面,本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述方法的步骤。
第四方面,本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面中任一项所述方法的步骤。
通过上述技术方案,在第一终端中的应用程序通过设备调用接口与第二终端中的外设进行远程通信时,可以响应于接收到用于查询第二终端中外设设备信息的设备查询请求,根据预设规则,在第一终端中确定目标外设,然后获取目标外设的设备信息,并向应用程序发送目标外设的设备信息。通过本公开的方法,由于向应用程序返回了第一终端中目标外设的设备信息,因此应用程序通过操作***接口查询设备分布信息的时候,可以查询到对应的设备分布信息,从而可以避免应用程序的执行错误,保证应用程序的正常运行。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是相关技术中计算机***的结构示意图;
图2是相关技术中计算机***中的两个计算机远程通信的示意图;
图3是根据本公开一示例性实施例示出的一种获取设备信息的方法的流程图;
图4是根据本公开一示例性实施例示出的第一终端的结构示意图;
图5是相关技术中的虚拟计算机的结构示意图;
图6是根据本公开一示例性实施例示出的第一终端与第二终端的结构示意图;
图7是以图6所示的结构为例,根据本公开另一示例性实施例示出的一种获取设备信息的方法的流程图;
图8是根据本公开另一示例性实施例示出的一种获取设备信息的方法的流程图;
图9是根据本公开另一示例性实施例示出的一种获取设备信息的装置的框图;
图10是根据本公开另一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
首先介绍本公开实施例涉及的技术背景。如图1所示,计算机中的应用程序可以调用外部设备执行计算任务,例如,可以调用GPU(Graphics Processing Unit,图形处理器)等PCI(Peripheral Component Interconnect,外设部件互连标准)设备。这些外部设备提供商一般会提供设备驱动以及设备调用接口给应用程序来使用相应的外部设备。其中,通过设备调用接口可以查询PCI设备在计算机***的总线地址、设备地址等信息。
对于应用程序来说,除了调用外部设备进行辅助计算,为了得到更好的性能,还会通过操作***接口查询计算机***中所有CPU的总线地址、设备地址等信息,然后选择与设备通信距离最近的CPU来执行计算任务。这类计算机***内部各种设备的分布信息,一般由操作***维护,并且通过操作***接口允许各个应用程序访问。也即是说,应用程序可以通过操作***接口查询到设备与计算机***中所有CPU之间的设备分布信息。
因此,在计算机***中,为了提高应用程序的性能,在执行计算任务时,可以先通过设备调用接口获得设备在计算***中的总线地址、设备地址等信息,并通过操作***接口查询该设备与计算机中所有CPU(Central Processing Unit,中央处理器)之间的设备分布信息,然后通过上述得到的设备分布信息,确定与设备通信距离最近的CPU进行计算任务,从而提高计算效率。
但是,如图2所示,相关技术中,计算机A的应用程序可以通过设备调用接口远程调用计算机B内的外设进行辅助运算,并且该应用程序无需感知调用的是远程设备还是本地设备,例如将NVMe协议运行在iWarp、ROCE、Infiniband、FC和Omni-Path等网络上的应用,即NVMe over Fabric,就是这样一种远程存储的应用程序。
在上述使用远程设备的场景下,计算机A通过设备调用接口查询得到的总线地址、设备地址等信息是该设备在计算机B中的设备信息。由于计算机A中并不存在该设备,因此在通过计算机A的操作***接口查询该设备与计算机A中所有CPU之间的设备分布信息时,则无法查询到对应的设备分布信息,从而应用程序会认为这是一种执行错误,并停止该应用程序的运行。
为了解决上述技术问题,本公开实施例可以提供一种获取设备信息的方法、装置、存储介质及电子设备,以在使用远程设备的场景下,使得计算机可以查询到对应的设备分布信息,从而避免应用程序的执行错误,保证应用程序正常的运行。
首先,本公开实施例提供一种获取设备信息的方法,该方法可以应用于第一终端,该第一终端中的应用程序可以通过设备调用接口与第二终端中的外设进行通信。示例地,第一终端和第二终端可以是物理计算机、虚拟计算机等不同的终端,本公开实施例对此不作限定。
图3是根据本公开一示例性实施例示出的一种获取设备信息的方法的流程图,参照图3,该方法可以包括以下步骤:
步骤S301,响应于接收到设备查询请求,根据预设规则,在第一终端中确定目标外设。其中,设备查询请求用于查询第二终端中外设的设备信息。
示例地,本公开实施例中的设备信息可以包括设备的静态信息和动态信息。其中,静态信息可以是设备在不同计算机***中均保持不变的信息,比如,设备的型号、版本号等等。动态信息可以是设备在不同计算机***中会发生改变的信息,比如,设备的总线地址、设备地址等等。应当理解的是,本公开实施例对于设备信息的具体内容不作限定。
步骤S302,获取目标外设的设备信息。
步骤S303,向应用程序发送目标外设的设备信息。
也即是说,当第一终端的应用程序在执行计算任务且需要通过第二终端中的外设进行辅助计算时,第一终端中的控制模块可以触发生成设备查询请求,用于查询第二终端中外设的设备信息。并且,第一终端的控制模块可以将该设备查询请求发送至第一终端的设备调用接口。在设备调用接口接收到该设备查询请求之后,可以根据预设规则,在第一终端中确定目标外设,即在第一终端已有的外设中确定一目标外设,从而在后续设备信息查询的过程中,由于目标外设是第一终端中已有的外设,因此可以查询到对应的设备分布信息,从而可以避免应用程序的执行错误,保证应用程序的正常运行。
在一种可能的方式中,为了实现上述获取设备信息的方法,参照图4,将第一终端以计算机A进行示意,该计算机A可以为虚拟计算机,也可以为物理计算机,本公开实施例对此不作限定。参照图4,可以在计算机A中增加接口重定向模块,该接口重定向模块可以与设备调用接口通信,用于在设备调用接口接收到设备查询请求之后,根据预设规则,在第一终端中确定目标外设,并向设备调用接口返回该目标外设的设备信息,从而设备调用接口可以向应用程序返回目标外设的设备信息,避免应用程序的执行错误,保证应用程序的正常运行。
为了使本领域技术人员更加理解本公开实施例中获取设备信息的方法,下面对上述各步骤进行举例说明。
在本公开具体实施时,第一终端可能是物理计算机,也可能是虚拟计算机,也即是说,本公开中获取设备信息的方法可以应用于虚拟化场景,也可以应用于非虚拟化场景。对于不同的应用场景,步骤S301中根据预设规则,在第一终端中确定目标外设的方式也可以有所不同。
在一种可能的方式中,查询请求可以包括第二终端中外设的类型信息,该类型信息可以用于表征第二终端中外设的设备类型。示例地,类型信息可以是设备的静态信息,即该类型信息在不同的计算机***中不会发生改变,比如设备的厂商标识符、型号等不同的信息,本公开实施例对此不作限定。
由于查询请求包括了第二终端中外设的类型信息,因此通过对查询请求进行解析,可以得到第二终端中外设的设备类型,从而可以在第一终端中,确定设备类型与第二终端中外设的设备类型相同的目标外设。例如,通过对查询请求进行解析,确定了第二终端中外设的设备类型是游戏显卡,那么可以在第一终端中,确定同为游戏显卡的外设为目标外设。
应当理解的是,如果在第一终端中没有查找到设备类型与第二终端中外设的设备类型相同的目标外设,则可以在第一终端中确定设备类型与第二终端设备类型相似的目标外设,即可以在第一终端中确定任一外设作为目标外设。对于某些应用场景,应用程序只需查询设备在第一终端中的地址信息,即只需保证该设备的地址信息可以在第一终端中查找到,因此确定与第二终端中外设相似的目标外设是可行的。
通过上述方式,无论在虚拟化场景下,还是非虚拟化场景下,均可以通过查询请求包括的第二终端中外设的类型信息,在第一终端中确定设备类型与第二终端中外设的设备类型相同或相似的目标外设,因此,应用程序通过操作***接口查询设备分布信息的时候,可以查询到对应的设备分布信息,从而可以避免应用程序的执行错误,保证应用程序的正常运行。
在另一种可能的方式中,第一终端为虚拟终端,且第一终端可以与第二终端的设备调用接口通信连接,那么步骤S301可以是先控制第二终端的设备调用接口获取第二终端中外设的设备信息,然后根据第二终端中外设的设备信息,在第一终端中添加与外设相同的虚拟外设,如果在第一终端中成功添加与外设相同的虚拟外设,则将该虚拟外设作为目标外设。
由于云计算的兴起,第一终端可以是运行在云或者数据中心物理机上的一台虚拟机,例如,图5所示的虚拟计算机A。在虚拟计算机A内部的所有硬件,包括外设、CPU、内存等,都是通过运行在物理计算机上的虚拟化软件虚拟出来的。这些虚拟出来的外设在虚拟计算机A内部***作***检测到,放到***设备信息里面,并通过操作***接口允许虚拟计算机A上的应用程序访问。并且,虚拟化软件可以提供一些控制接口,支持静态或者动态地向虚拟机添加外设。而操作***也可以支持动态地发现新添加的设备,并随时更新***设备信息。
因此,本公开实施例中,在第一终端为虚拟终端的场景下,可以使得第一终端与第二终端的设备调用接口通信连接,并控制第二终端的设备调用接口获取第二终端中外设的设备信息,然后根据第二终端中外设的设备信息,在第一终端中添加与外设相同的虚拟外设。应当理解的是,本公开实施例中所述的与第二终端中外设相同的虚拟外设可以是与第二终端中外设类型相同的虚拟外设。比如,第二终端中外设为GPU,那么可以在第一终端中添加同为GPU的虚拟外设。
在一种可能的情况下,为了实现上述技术方案,参照图6,可以在虚拟计算A(第一终端)中增加接口重定向模块和远程设备虚拟化控制模块。其中,接口重定向模块可以与设备调用接口、以及远程设备虚拟化控制模块通信,可以截获设备调用接口根据设备查询请求而执行的查询操作,并将该查询操作对应的所有信息发送给远程设备虚拟化控制模块。另一方面,接口重定向模块也可以接收远程设备虚拟化控制模块发送的信息,并将该信息发送给设备调用接口。
继续参照图6,远程设备虚拟化控制模块可以与计算机B(第二终端)的设备调用接口通信,并通过虚拟化软件接口与物理计算机的虚拟化软件通信,以根据计算机B的设备调用接口返回的设备信息,通过虚拟化软件在虚拟计算机A中添加新的外设。
具体地,参照图6和图7,本公开实施例中获取设备信息的方法可以包括以下步骤:
步骤S701,虚拟计算机A的应用程序的设备调用接口根据接收到的设备查询请求,执行查询对应设备的设备信息的操作。
步骤S702,虚拟计算机A的接口重定向模块将查询操作对应的所有信息发送至远程设备虚拟化控制模块。
步骤S703,远程设备虚拟化控制模块建立和计算机B的连接,并通过计算机B的设备调用接口查询设备在计算机B中的设备信息。
步骤S704,计算机B将查询结果返回至远程设备虚拟化控制模块;
步骤S705,远程设备虚拟化控制模块通过虚拟化软件接口操作虚拟化软件,向虚拟计算机A添加虚拟外设。
步骤S706,通过虚拟化软件查询新添加的虚拟外设在虚拟计算机A的设备信息。
步骤S707,根据查询得到的虚拟外设的设备信息,远程设备虚拟化控制模块修改从计算机B返回的结果。
步骤S708,远程设备虚拟化控制模块把修改后的设备信息返回至虚拟计算机A中的接口重定向模块。
步骤S709,接口重定向模块将接收到的虚拟外设的设备信息返回给设备调用接口。
步骤S710,设备调用接口向虚拟计算机A的应用程序返回虚拟外设的设备信息。
也即是说,本公开实施例中,在虚拟化场景下,可以先查询第二终端中外设的设备信息,然后根据第二终端中外设的设备信息,在第一终端中添加与外设相同的虚拟外设,并将该虚拟外设作为目标外设,以向第一终端的应用程序返回该虚拟外设的设备信息,因此应用程序通过操作***接口去查询***设备信息的时候,由于该虚拟外设存在于第一终端中,因此可以查询到对应的设备分布信息,从而可以避免应用程序的执行错误,保证应用程序的正常运行。
按照上述确定目标外设的方式,无论第一终端中是否存在与第二终端中外设相同的虚拟外设,均会添加新的虚拟外设,然后将该新的虚拟外设作为目标外设,从而可能导致虚拟外设占用较多的存储空间,影响计算机***的整体性能。因此,在一种可能的方式中,为了避免上述问题,还可以先判断第一终端中是否存在第二终端中外设相同的目标外设,如果第一终端中不存在与第二终端中外设相同的目标外设,则根据第二终端中外设的设备信息,在第一终端中添加与外设相同的虚拟外设。
示例地,确定第一终端中是否存在与第二终端中外设相同的目标外设,可以是根据设备查询请求所携带的信息而确定的,比如前文所述的类型信息,等等,本公开实施例对此不作限定。
应当理解的是,上述仅是对如何确定第一终端中是否存在与第二终端中外设相同的目标外设进行的举例性说明,在本公开具体实施时,还可以通过其他方式确定第一终端中是否存在与第二终端中外设相同的目标外设,比如,预先将第一终端的所有外设和第二终端的所有外设建立一一对应关系,即第二终端中的每一个外设可以在第一终端中确定相同或相似的外设,然后可以根据查询请求包括的第二终端中外设的标识信息以及该对应关系,在第一终端中确定与第二终端中外设相同的目标外设,等等,本公开实施例对于确定第一终端中是否存在与第二终端中外设相同的目标外设的方式不作限定。
通过上述方式,对于虚拟化场景,当设备查询请求包括第二终端中外设的类型信息时,可以直接根据该类型信息在第一终端中确定设备类型与第二终端中外设的设备类型相同或相似的外设。或者,也可以是先根据该类型信息,判断第一终端中是否存在与第二终端中外设相同的目标外设,然后在第一终端中不存在与第二终端中外设相同的目标外设时,根据第二终端中外设的设备信息,在第一终端中添加与外设相同的虚拟外设,并在添加成功时,将该虚拟外设作为目标外设,灵活性较高,适用范围更广。
在其他可能的情况下,在向第一终端添加虚拟外设时,还可能存在添加失败的情况,比如,通过虚拟化软件向第一终端添加外设时,由于虚拟化软件支持的程度不一样,有可能无法向虚拟计算机A中添加虚拟外设。在此种情况下,可以在第一终端的已有外设中确定目标外设。比如,在图5所示的场景中,接口重定向模块可以确定虚拟计算机A中的某一个已有外设为目标外设,并将该已有外设的设备信息返回给设备调用接口,那么应用程序通过设备调用接口查询得到的设备信息实际上是虚拟计算机A中已有外设的设备信息,从而可以避免无法查询到对应设备分布信息的情况,保证应用程序的正常运行。
下面以第一终端为虚拟终端为例,通过另一示例性实施例对本公开中获取设备信息的方法进行说明。参照图8,该获取设备信息的方法可以包括以下步骤:
步骤S801,响应于接收到设备查询请求,控制第二终端的设备调用接口获取第二终端中外设的设备信息。
步骤S802,判断第一终端中是否存在与第二终端中外设相同的目标外设,如果存在,进入步骤S803,否则进入步骤S804。
步骤S803,在第一终端的已有外设中确定目标外设。
步骤S804,根据第二终端中外设的设备信息,在第一终端中添加与该外设相同的虚拟外设。
步骤S805,确定是否在第一终端中成功添加与该外设相同的虚拟外设,如果是,则进入步骤S806,否则进入步骤S803。
步骤S806,将添加的虚拟外设作为目标外设。
步骤S807,获取目标外设的设备信息。
步骤S808,向应用程序发送目标外设的设备信息。
上述各步骤的具体实施方式已在上文进行详细举例说明,这里不再赘述。另外应当理解的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受上文所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,上文所描述的实施例属于优选实施例,所涉及的步骤并不一定是本公开所必须的。
通过上述获取设备信息的方法,由于向应用程序返回了第一终端中目标外设的设备信息,因此应用程序通过操作***接口查询设备分布信息的时候,可以查询到对应的设备分布信息,从而可以避免应用程序的执行错误,保证应用程序的正常运行。
基于同一发明构思,本公开实施例还提供一种获取设备信息的装置,该装置应用于第一终端,可以通过硬件、软件或两者结合的方式成为第一终端的部分或全部,且第一终端中的应用程序可以通过设备调用接口与第二终端中的外设进行通信。参照图9,本公开实施例中获取设备信息的装置900可以包括:
确定模块901,用于响应于接收到设备查询请求,根据预设规则,在所述第一终端中确定目标外设,其中,所述设备查询请求用于查询所述第二终端中外设的设备信息;
获取模块902,用于获取所述目标外设的设备信息;
发送模块903,用于向所述应用程序发送所述目标外设的设备信息。
可选地,所述第一终端为虚拟终端,且所述第一终端与所述第二终端的设备调用接口通信连接,所述确定模块901包括:
控制子模块,用于控制所述第二终端的设备调用接口获取所述第二终端中外设的设备信息;
添加子模块,用于根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设;
第一确定子模块,用于当在所述第一终端中成功添加与所述外设相同的虚拟外设时,将所述虚拟外设作为所述目标外设。
可选地,所述装置900还包括:
第二确定子模块,用于当未在所述第一终端中成功添加与所述外设相同的虚拟外设时,在所述第一终端的已有外设中确定所述目标外设。
可选地,所述添加子模块用于:
判断所述第一终端中是否存在与所述第二终端中外设相同的目标外设;
如果所述第一终端中不存在与所述第二终端中外设相同的目标外设,则根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设。
可选地,所述查询请求包括所述第二终端中外设的类型信息,所述类型信息用于表征所述第二终端中外设的设备类型,所述确定模块901用于:
对所述查询请求进行解析,得到所述第二终端中外设的设备类型;
在所述第一终端中,确定设备类型与所述第二终端中外设的设备类型相同的目标外设。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过上述任一获取设备信息的装置,由于向应用程序返回了第一终端中目标外设的设备信息,因此应用程序通过操作***接口查询设备分布信息的时候,可以查询到对应的设备分布信息,从而可以避免应用程序的执行错误,保证应用程序的正常运行。
基于同一发明构思,本公开实施例还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述任一获取设备信息的方法的步骤。
在一种可能的方式中,该电子设备的框图可以如图10所示。参照图10,电子设备1000可以被提供为一服务器。参照图10,电子设备1000包括处理器1022,其数量可以为一个或多个,以及存储器1032,用于存储可由处理器1022执行的计算机程序。存储器1032中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1022可以被配置为执行该计算机程序,以执行上述的获取设备信息的方法。
另外,电子设备1000还可以包括电源组件1026和通信组件1050,该电源组件1026可以被配置为执行电子设备1000的电源管理,该通信组件1050可以被配置为实现电子设备1000的通信,例如,有线或无线通信。此外,该电子设备1000还可以包括输入/输出(I/O)接口1058。电子设备1000可以操作基于存储在存储器1032的操作***,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的获取设备信息的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1032,上述程序指令可由电子设备1000的处理器1022执行以完成上述的获取设备信息的方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (10)

1.一种获取设备信息的方法,其特征在于,应用于第一终端,所述第一终端中的应用程序通过设备调用接口与第二终端中的外设进行远程通信,所述方法包括:
响应于接收到设备查询请求,根据预设规则,在所述第一终端中确定目标外设,其中,所述设备查询请求用于查询所述第二终端中外设的设备信息;
获取所述目标外设的设备信息;
向所述应用程序发送所述目标外设的设备信息。
2.根据权利要求1所述的方法,其特征在于,所述第一终端为虚拟终端,且所述第一终端与所述第二终端的设备调用接口通信连接,所述根据预设规则,在所述第一终端中确定目标外设,包括:
控制所述第二终端的设备调用接口获取所述第二终端中外设的设备信息;
根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设;
如果在所述第一终端中成功添加与所述外设相同的虚拟外设,则将所述虚拟外设作为所述目标外设。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果未在所述第一终端中成功添加与所述外设相同的虚拟外设,则在所述第一终端的已有外设中确定所述目标外设。
4.根据权利要求2所述的方法,其特征在于,所述根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设,包括:
判断所述第一终端中是否存在与所述第二终端中外设相同的目标外设;
如果所述第一终端中不存在与所述第二终端中外设相同的目标外设,则根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设。
5.根据权利要求1-4任一所述的方法,其特征在于,所述查询请求包括所述第二终端中外设的类型信息,所述类型信息用于表征所述第二终端中外设的设备类型,所述根据预设规则,在所述第一终端中确定目标外设,包括:
对所述查询请求进行解析,得到所述第二终端中外设的设备类型;
在所述第一终端中,确定设备类型与所述第二终端中外设的设备类型相同的目标外设。
6.一种获取设备信息的装置,其特征在于,应用于第一终端,所述第一终端中的应用程序通过设备调用接口与第二终端中的外设进行通信,所述装置包括:
确定模块,用于响应于接收到设备查询请求,根据预设规则,在所述第一终端中确定目标外设,其中,所述设备查询请求用于查询所述第二终端中外设的设备信息;
获取模块,用于获取所述目标外设的设备信息;
发送模块,用于向所述应用程序发送所述目标外设的设备信息。
7.根据权利要求6所述的装置,其特征在于,所述第一终端为虚拟终端,且所述第一终端与所述第二终端的设备调用接口通信连接,所述确定模块包括:
控制子模块,用于控制所述第二终端的设备调用接口获取所述第二终端中外设的设备信息;
添加子模块,用于根据所述第二终端中外设的设备信息,在所述第一终端中添加与所述外设相同的虚拟外设;
第一确定子模块,用于当在所述第一终端中成功添加与所述外设相同的虚拟外设时,将所述虚拟外设作为所述目标外设。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二确定子模块,用于当未在所述第一终端中成功添加与所述外设相同的虚拟外设时,在所述第一终端的已有外设中确定所述目标外设。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
CN201910551370.7A 2019-06-24 2019-06-24 获取设备信息的方法、装置、存储介质及电子设备 Active CN112131146B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910551370.7A CN112131146B (zh) 2019-06-24 2019-06-24 获取设备信息的方法、装置、存储介质及电子设备
PCT/CN2020/095376 WO2020259286A1 (zh) 2019-06-24 2020-06-10 获取设备信息的方法、装置、存储介质及电子设备
US17/620,522 US20220358055A1 (en) 2019-06-24 2020-06-10 Method and apparatus for acquiring device information, storage medium and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910551370.7A CN112131146B (zh) 2019-06-24 2019-06-24 获取设备信息的方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN112131146A true CN112131146A (zh) 2020-12-25
CN112131146B CN112131146B (zh) 2022-07-12

Family

ID=73850014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910551370.7A Active CN112131146B (zh) 2019-06-24 2019-06-24 获取设备信息的方法、装置、存储介质及电子设备

Country Status (3)

Country Link
US (1) US20220358055A1 (zh)
CN (1) CN112131146B (zh)
WO (1) WO2020259286A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220210034A1 (en) * 2020-12-31 2022-06-30 Centurylink Intellectual Property Llc Systems and methods for edge site selection and metrics capture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160232114A1 (en) * 2015-02-10 2016-08-11 Mediatek Inc. Control method and system for accessing data among different electronic devices
CN107003952A (zh) * 2016-10-18 2017-08-01 深圳前海达闼云端智能科技有限公司 设备调用方法、装置、***、电子设备和计算机程序产品
CN107077377A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 一种设备虚拟化方法、装置、***及电子设备、计算机程序产品
CN107846466A (zh) * 2017-11-15 2018-03-27 中国联合网络通信集团有限公司 云终端外部设备的映射方法、服务器、云终端及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104092715B (zh) * 2013-11-28 2016-10-19 腾讯科技(深圳)有限公司 一种同步应用程序的方法、服务器及***
CN107426414A (zh) * 2017-06-14 2017-12-01 努比亚技术有限公司 一种通过外设获取信息方法、终端及计算机可读存储介质
CN109144603B (zh) * 2018-07-24 2020-06-12 阿里巴巴集团控股有限公司 唤醒、信息推送方法和装置、计算设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160232114A1 (en) * 2015-02-10 2016-08-11 Mediatek Inc. Control method and system for accessing data among different electronic devices
CN107003952A (zh) * 2016-10-18 2017-08-01 深圳前海达闼云端智能科技有限公司 设备调用方法、装置、***、电子设备和计算机程序产品
WO2018072101A1 (zh) * 2016-10-18 2018-04-26 深圳前海达闼云端智能科技有限公司 设备调用方法、装置、***、电子设备和计算机程序产品
CN107077377A (zh) * 2016-12-29 2017-08-18 深圳前海达闼云端智能科技有限公司 一种设备虚拟化方法、装置、***及电子设备、计算机程序产品
CN107846466A (zh) * 2017-11-15 2018-03-27 中国联合网络通信集团有限公司 云终端外部设备的映射方法、服务器、云终端及***

Also Published As

Publication number Publication date
US20220358055A1 (en) 2022-11-10
CN112131146B (zh) 2022-07-12
WO2020259286A1 (zh) 2020-12-30

Similar Documents

Publication Publication Date Title
US9606817B1 (en) Systems and methods for virtualizing internet of things (IoT) devices
CN108369604B (zh) 一种多操作***共享文件***的方法、装置和电子设备
CN111314799A (zh) 终端***构架、通信***及通信方法、存储介质
US11188347B2 (en) Virtual function driver loading method and server using global and local identifiers corresponding to locations of the virtual functions
CN101980490B (zh) 虚拟交换机和物理交换机的链路建立方法及其装置
CN110908770A (zh) 虚拟机的运行及创建方法、虚拟机及虚拟机化管理平台
US11875174B2 (en) Method and apparatus for virtual machine emulator upgrading virtualization emulator
US10621124B2 (en) Method, device and computer program product for enabling SR-IOV functions in endpoint device
CN107835089B (zh) 管理资源的方法和装置
US10255099B2 (en) Guest-influenced packet transmission
US11741039B2 (en) Peripheral component interconnect express device and method of operating the same
US11416267B2 (en) Dynamic hardware accelerator selection and loading based on acceleration requirements
CN110990110A (zh) 一种基于Sriov网卡的虚拟机创建方法及装置
CN116028455A (zh) 一种数据处理方法、装置、存储介质及电子设备
US10437760B2 (en) Virtual universal serial bus peripheral controller
CN112131146B (zh) 获取设备信息的方法、装置、存储介质及电子设备
CN114756332A (zh) 基于虚拟机设备直通的数据访问方法、设备以及***
CN116418848A (zh) 网络节点的配置和访问请求的处理方法、装置
CN114237928A (zh) 容器间通信方法及装置、电子设备、计算机可读存储介质
JP6412641B2 (ja) 通信リンクの送信方法、装置及び端末
CN111124445B (zh) 一种家庭网关的升级方法及家庭网关
CN113296838A (zh) 云服务器管理方法、提供数据服务的方法及装置
US8880732B1 (en) Method and system for application isolation
US20230342208A1 (en) Systems, methods, and apparatus to identify functions for computational devices
CN114285661B (zh) 一种私有网络接入方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 1022, Floor 10, No. 1, Zhongguancun Street, Haidian District, Beijing 100085

Patentee after: Vita Technology (Beijing) Co.,Ltd.

Address before: 100085 room 02c-169, block B (second floor), a 28, information road, Haidian District, Beijing

Patentee before: Vita Technology (Beijing) Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20231011

Address after: 4th Floor, Building 5, No. 33 Leshan Road, Xuhui District, Shanghai, 200030

Patentee after: Trend Technology (Shanghai) Co.,Ltd.

Address before: 1022, Floor 10, No. 1, Zhongguancun Street, Haidian District, Beijing 100085

Patentee before: Vita Technology (Beijing) Co.,Ltd.

TR01 Transfer of patent right