CN113961253B - 驱动程序调用方法、装置、电子设备和存储介质 - Google Patents
驱动程序调用方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113961253B CN113961253B CN202111153266.6A CN202111153266A CN113961253B CN 113961253 B CN113961253 B CN 113961253B CN 202111153266 A CN202111153266 A CN 202111153266A CN 113961253 B CN113961253 B CN 113961253B
- Authority
- CN
- China
- Prior art keywords
- driver
- target
- data structure
- calling
- module
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 139
- 238000004458 analytical method Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 description 38
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种驱动程序调用方法、装置、电子设备和存储介质,所述方法可以应用在第一驱动模块,所述的方法包括:接收第二驱动模块的调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息;依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序;将目标驱动程序作为调用结果反馈给第二驱动模块。本申请实施例可以并依据调用请求中的数据结构,确定第一驱动模块中与第二驱动模块对应的驱动程序,从而可以减小出现调用的驱动程序与第二驱动模块不兼容等问题,从而提升系统的安全性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种驱动程序调用方法、一种驱动程序调用装置、一种电子设备和一种存储介质。
背景技术
多活驱动程序对系统稳定性有着重要意义。多活驱动程序是指在驱动模块中,同一时刻有多份功能相同的驱动程序生效,上层程序可以自由决定使用哪一份驱动程序。同时,这些驱动程序具备动态加载/移除和热升级的能力,但每份驱动程序内部可能有细微差别,如有些版本的程序中包含了漏洞修复补丁(bugfix),有些版本的数据结构增加过新字段等。
外部的驱动模块在调用内部驱动模块中的多活驱动程序时,往往会选择查询驱动程序的地址并直接调用此地址上的驱动程序。
但是,采用上述的调用方式,在一个地址中会存在多个版本的驱动程序,外部的驱动模块可能会调用到不兼容的驱动程序,导致系统安全性降低。
发明内容
本申请实施例提供了一种驱动程序调用方法,以提示系统的安全性。
相应的,本申请实施例还提供了一种驱动程序调用装置、一种电子设备和一种存储介质,用以保证上述系统的实现及应用。
为了解决上述问题,本申请实施例公开了一种驱动程序调用方法,应用在第一驱动模块,所述的方法包括:接收第二驱动模块的调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息;依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序;将目标驱动程序作为调用结果反馈给第二驱动模块。
可选的,所述数据结构信息包括目标字段和目标字段的第一位置信息,所述对数据结构信息进行数据结构归属分析,包括:获取第一驱动模块中各驱动程序对应的数据结构体,并确定目标字段在数据结构体中的第二位置信息;依据所述第一位置信息和所述第二位置信息,确定偏移量;依据所述偏移量确定数据结构信息对应的目标驱动程序。
可选的,所述第一驱动模块包括多个版本的驱动程序,所述依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,包括:将调用请求转发给第一驱动程序;通过第一驱动程序,对数据结构信息进行数据结构归属分析,确定对应的目标驱动程序。
可选的,所述将目标驱动程序作为调用结果反馈给第二驱动模块,包括:判断目标驱动程序是否为第一驱动程序,得到判断结果;在判断结果为第一判断结果时,将第一驱动程序作为调用结果反馈给第二驱动模块;在判断结果为第二判断结果时,将调用请求转发给目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。
可选的,所述接收第二驱动模块的调用请求,包括:提供调用接口,并通过调用接口接收第二驱动模块发出的调用请求。
可选的,所述将目标驱动程序作为调用结果反馈给第二驱动模块,包括:通过调用接口,将目标驱动程序作为调用结果反馈给第二驱动模块。
可选的,所述方法还包括:接收对目标驱动程序发送驱动锁定指令,以将目标驱动程序锁定,以防止目标驱动程序被移除;接收驱动解锁指令,以将目标驱动程序解锁。
可选的,所述方法还包括:反馈关联标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加关联标识;在目标驱动程序的数据结构体中添加关联标识,以便依据调用请求中的关联标识,调用目标驱动程序。
可选的,所述方法还包括:反馈调用标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加调用标识;新建关联关系数据结构体,并在关联关系数据结构体中建立调用标识与目标驱动程序的关联关系,以便依据调用请求中的调用标识确定目标驱动程序。
为了解决上述问题,本申请实施例公开了一种驱动程序调用方法,应用在第二驱动模块,所述的方法包括:获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息,所述第一驱动模块用于确定与数据结构信息对应的目标驱动程序,并将目标驱动程序作为调用结果反馈;通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
为了解决上述问题,本申请实施例公开了一种驱动程序调用方法,应用在第一驱动模块,所述的方法包括:接收第二驱动模块的调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息;依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序;将目标驱动程序作为调用结果反馈给第二驱动模块。
为了解决上述问题,本申请实施例公开了一种驱动程序调用方法,应用在第二驱动模块,所述的方法包括:获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息,所述第一驱动模块用于依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序,并将目标驱动程序作为调用结果反馈;通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
为了解决上述问题,本申请实施例公开了一种驱动程序调用方法,所述的方法包括:外部驱动模块向内部驱动模块发出调用请求,所述调用请求包含有内部驱动模块中待调用的驱动程序的数据结构信息;内部驱动模块依据数据结构信息,确定对应的目标驱动程序;内部驱动模块将目标驱动程序作为调用结果反馈给外部驱动模块;外部驱动模块执行目标驱动程序。
为了解决上述问题,本申请实施例公开了一种驱动程序调用方法,所述的方法包括:外部驱动模块向内部驱动模块发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据对历史调用请求确定,所述历史调用请求包含有数据结构信息,所述数据结构信息用于确定对应的目标驱动程序;内部驱动模块依据驱动程序标识,确定对应的目标驱动程序;内部驱动模块将目标驱动程序作为调用结果反馈给外部驱动模块;外部驱动模块执行目标驱动程序。
为了解决上述问题,本申请实施例公开了一种驱动程序调用装置,所述的装置包括:调用请求接收模块,用于接收第二驱动模块的调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息;驱动程序获取模块,用于依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序;调用结果反馈模块,用于将目标驱动程序作为调用结果反馈给第二驱动模块。
为了解决上述问题,本申请实施例公开了一种驱动程序调用装置,所述的装置包括:调用请求发送模块,用于获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息,所述第一驱动模块用于确定与数据结构信息对应的目标驱动程序,并将目标驱动程序作为调用结果反馈;调用结果接收模块,用于通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
为了解决上述问题,本申请实施例公开了一种驱动程序调用装置,所述的装置包括:调用请求获取模块,用于接收第二驱动模块的调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息;驱动程序确定模块,用于依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序;驱动程序反馈模块,用于将目标驱动程序作为调用结果反馈给第二驱动模块。
为了解决上述问题,本申请实施例公开了一种驱动程序调用装置,所述的装置包括:调用请求输出模块,用于获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息,所述第一驱动模块用于依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序,并将目标驱动程序作为调用结果反馈;驱动程序将输入模块,用于通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
为了解决上述问题,本申请实施例公开了一种驱动程序调用装置,所述的装置包括:外部调用请求接收模块,用于外部驱动模块向内部驱动模块发出调用请求,所述调用请求包含有内部驱动模块中待调用的驱动程序的数据结构信息;内部驱动程序确定模块,用于内部驱动模块依据数据结构信息,确定对应的目标驱动程序;内部驱动程序反馈模块,用于内部驱动模块将目标驱动程序作为调用结果反馈给外部驱动模块;内部驱动程序执行模块,用于外部驱动模块执行目标驱动程序。
为了解决上述问题,本申请实施例公开了一种驱动程序调用装置,所述的装置包括:外部调用请求获取模块,用于外部驱动模块向内部驱动模块发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据对历史调用请求确定,所述历史调用请求包含有数据结构信息,所述数据结构信息用于确定对应的目标驱动程序;内部驱动程序获得模块,用于内部驱动模块依据驱动程序标识,确定对应的目标驱动程序;内部驱动程序输出模块,用于内部驱动模块将目标驱动程序作为调用结果反馈给外部驱动模块;驱动程序执行模块,用于外部驱动模块执行目标驱动程序。
为了解决上述问题,本申请实施例公开了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如上述实施例中任一项所述的方法。
为了解决上述问题,本申请实施例公开了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如上述实施例中任一项所述的方法。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例中,第一驱动模块可以理解为被调用的一方,第二驱动模块可以理解为调用的一方,第二驱动模块可以向第一驱动模块发送调用请求,调用请求中包含有待调用的驱动程序的数据结构信息,第一驱动模块可以依据数据结构信息进行数据结构归属分析,确定与数据结构信息对应的目标驱动程序,并将目标驱动程序作为调用结果反馈给第二驱动模块。本申请实施例可以在调用请求中添加待调用的驱动程序的数据结构信息,并依据数据结构确定第一驱动模块中与第二驱动模块对应的驱动程序,从而可以减小出现调用的驱动程序与第二驱动模块不兼容等问题,从而提升系统的安全性。
附图说明
图1是本申请一个实施例的驱动程序调用方法的流程示意图;
图2是本申请另一个实施例的驱动程序调用方法的流程示意图;
图3是本申请再一个实施例的驱动程序调用方法的流程示意图;
图4是本申请再一个实施例的驱动程序调用方法的流程示意图;
图5是本申请再一个实施例的驱动程序调用方法的流程示意图;
图6是本申请再一个实施例的驱动程序调用方法的流程示意图;
图7是本申请再一个实施例的驱动程序调用方法的流程示意图;
图8是本申请再一个实施例的驱动程序调用方法的流程示意图;
图9是本申请一个实施例的驱动程序调用装置的结构示意图;
图10是本申请另一个实施例的驱动程序调用装置的结构示意图;
图11是本申请一个实施例提供的示例性装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例可应用于跨驱动模块的多活驱动程序的调用场景,驱动程序可以理解为对数据进行数据转换、数据计算、数据分析等数据处理过程的函数,驱动模块包含有多个版本的驱动程序,多个版本的驱动程序对应的功能相同,形成多活驱动程序。
本申请实施例中,外部驱动模块可以调用内部驱动模块的多活驱动程序中的目标驱动程序,实现跨模块的目标驱动程序调用,具体的,外部的驱动模块可以向内部的驱动模块发出调用请求,内部的驱动模块依据调用请求中携带的待调用的驱动程序的数据结构信息,确定对应的目标驱动程序,并将目标驱动程序作为调用结果反馈给外部驱动模块,通过外部驱动模块来执行目标驱动程序,实现对数据的数据处理过程。本申请实施例可以在调用请求中添加待调用的驱动程序的数据结构信息,并依据数据结构确定内部驱动模块中与外部驱动模块对应的驱动程序,从而可以减小出现调用的驱动程序与外部驱动模块不兼容等问题的概率,从而提升系统的安全性。
具体来说,在如图1所示的示例中,内部驱动模块还可以称为第一驱动模块,第一驱动模块可以理解为被调用的一方;外部驱动模块还可以称为第二驱动模块,第二驱动模块可以理解为调用的一方。第一驱动模块可以提供调用接口,第二驱动模块在进行驱动程序调用时,可以查找第一驱动模块的调用接口,并锁定第一驱动模块。其中,第一驱动模块在被外部驱动模块调用时,可能刚好接收到移除指令,若是在第一驱动模块调用过程中,第一驱动模块被移除,会出现系统安全性问题,因此,本申请实施例可以向第一驱动模块发送驱动锁定指令,以锁定第一驱动模块,并在第二驱动模块调用完成后,可以向第一驱动模块发送驱动解锁指令,以解除对第一驱动模块的锁定。第二驱动模块在调用过程中,可以通过第一驱动模块的调用接口,向第一驱动模块发出调用请求,调用请求中可以包含有待调用的驱动程序的数据结构信息,数据结构信息对驱动程序所对应的数据结构体中的数据结构的描述。数据结构体还可以称为结构体(struct),用于描述不同类型数据的数据对象(驱动程序)。
第一驱动模块可以依据调用请求中的数据结构信息和各驱动程序对应的数据结构体进行分析,确定与数据结构信息对应的目标数据结构体,并确定对应的目标驱动程序。其中,数据结构信息可以包括目标字段和目标字段的第一位置信息,目标字段可以理解为数据结构体中包含的字段,本申请实施例可以分析目标字段在数据结构体中的第二位置信息,并将第一位置信息和第二位置信息进行比较,确定偏移量,并依据偏移量来确定目标数据结构体,从而确定目标驱动程序。其中,在对驱动程序进行版本升级的过程中,对驱动程序的升级可以理解为向驱动程序的数据结构体中增加字段、减少字段,因此,本申请实施例可以通过目标字段在数据结构体中位置的变化来判断驱动程序对应的版本,进而确定与调用请求中的数据结构信息对应的目标驱动程序。
确定目标驱动程序之后,可以将目标驱动程序作为调用结果反馈给第二驱动模块。其中,第一驱动模块可以通过多个驱动程序中的一个驱动程序对数据结构信息进行归属分析,以确定相应的目标驱动程序。然后在目标驱动程序为本驱动程序时,将本驱动程序作为调用结果反馈给第二驱动模块;在目标驱动程序为本驱动程序以外的其他驱动程序时,转发调用请求给目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。
在依据数据结构信息和驱动程序的数据结构体进行数据结构归属匹配之后,可以确定调用请求与驱动程序之间的对应关系,因此,在下一次调用目标驱动程序时,本申请实施例可以在调用请求中添加标识,以通过标识来确定对应的目标驱动程序,从而可以节省进行数据结构归属匹配的过程,能够更加简单快速的进行驱动程序的调用。相应的,为了对应调用请求中的标识,在一个可选的示例中,本申请实施例可以在第一驱动模块中的驱动程序的数据结构体中添加关联标识,以通过关联标识来将数据结构体与调用请求中的标识对应。在另一个可选的示例中,本申请实施例还可以新建关联关系数据结构体,并在关联关系数据结构体中建立调用请求中的标识与目标驱动程序之间的关联关系,以便依据关联关系数据结构体,确定调用请求中的标识对应的目标驱动程序,以便进行目标驱动程序的调用。
本申请实施例可以应用在跨驱动模块进行多活驱动程序调用的场景中,举例来说,从云端与终端交互场景来看,本申请实施例可以应用在云端(或称服务端)的一侧,服务端可以理解为对数据进行处理并与终端进行交互的设备,服务端可以配置不同版本的驱动程序,以分别对应终端设备中不同版本的应用程序,从而通过不同版本的驱动程序为终端的应用程序提供数据处理的服务。再举例来说,从处理的数据上进行划分,本申请实施例可以应用在各种对数据进行处理的场景中,例如,本申请实施例可以应用在电商场景中,以调用相应的驱动程序对电商相关数据(如商品图像、商品物流信息等)进行处理。再例如,本申请实施例还可以应用在教育场景中,以调用相应的驱动程序对教育相关数据(如练习题、课程表等)进行处理。再例如,本申请实施例还可以应用在医疗场景中,以调用相应的驱动程序对医疗相关数据(如病例信息)进行处理。再例如,本申请实施例还可以应用在交通场景中,以调用相应的驱动程序对交通相关数据(如交通视频数据、交通违规数据等)进行数据处理。
本申请实施例提供一种驱动程序调用方法,可以跨驱动模块实现多活驱动程序的调用,本方法可以应用在第一驱动模块,第一驱动模块可以理解为被调用的一方,第一驱动模块可以接收第二驱动模块的调用请求,并将对应的目标驱动程序作为调用结果反馈给第二驱动模块,具体的,如图2所示,所述方法包括:
步骤202、接收第二驱动模块的调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息。第二驱动模块在需要调用第一驱动模块中的驱动程序时,可以生成调用请求,并在调用请求中添加待调用的驱动程序的数据结构信息,以便第一驱动模块依据数据结构信息来确定对应的目标驱动程序。其中,第一驱动模块可以提供调用接口,第二驱动模块可以通过调用接口来调用第一驱动模块中的驱动程序,具体的,作为一个可选的实施例,所述接收第二驱动模块的调用请求,包括:提供调用接口,并通过调用接口接收第二驱动模块发出的调用请求。本申请实施例中的第一驱动模块可以通过调用接口来进行数据交互,以接收调用请求以及反馈调用结果给第二驱动模块。
第一驱动模块在接收到调用请求之后,可以在步骤204中,依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序。并在步骤206中,将目标驱动程序作为调用结果反馈给第二驱动模块。其中,第一驱动模块可以通过调用接口将调用结果反馈给第二驱动模块,具体的,作为一个可选的实施例,所述将目标驱动程序作为调用结果反馈给第二驱动模块,包括:通过调用接口,将目标驱动程序作为调用结果反馈给第二驱动模块。
第一驱动模块可以获取各驱动程序对应的数据结构体,并依据数据结构体和数据结构信息,确定调用请求对应的驱动程序,具体的,作为一个可选的实施例,所述数据结构信息包括目标字段和目标字段的第一位置信息,所述对数据结构信息进行数据结构归属分析,包括:获取第一驱动模块中各驱动程序对应的数据结构体,并确定目标字段在数据结构体中的第二位置信息;依据所述第一位置信息和所述第二位置信息,确定偏移量;依据所述偏移量确定数据结构信息对应的目标驱动程序。在对驱动程序进行版本升级的过程中,对驱动程序的升级可以理解为向驱动程序的数据结构体中增加字段、减少字段,因此,本申请实施例可以通过目标字段在数据结构体中位置的变化(偏移量大小)来区分不同版本的驱动程序,从而确定与数据结构信息匹配的数据结构体,以确定相应的目标驱动程序。
本申请实施例可以通过第一驱动模块中的任一个驱动程序进行数据结构归属分析,以确定目标驱动程序。具体的,作为一个可选的实施例,所述第一驱动模块包括多个版本的驱动程序,所述依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,包括:将调用请求转发给第一驱动程序;通过第一驱动程序,对数据结构信息进行数据结构归属分析,确定对应的目标驱动程序。第一驱动模块可以包括多个版本的(功能相同)驱动程序,如可以包括第一驱动程序、第二驱动程序、第三驱动程序等,本申请实施例可以将调用接口接收到的调用请求转发给第一驱动程序,并通过第一驱动程序进行数据结构归属分析,确定对应的目标驱动程序。
其中,目标驱动程序可能为第一驱动程序、第二驱动程序和第三驱动程序中的任一个,因此,在确定目标驱动程序之后,可以判断目标驱动程序是否为第一驱动程序,以依据判断结果进行相应的处理,具体的,作为一个可选的实施例,所述将目标驱动程序作为调用结果反馈给第二驱动模块,包括:判断目标驱动程序是否为第一驱动程序,得到判断结果;在判断结果为第一判断结果时,将第一驱动程序作为调用结果反馈给第二驱动模块;在判断结果为第二判断结果时,将调用请求转发给目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。在目标驱动程序为第一驱动程序本身时,可以将第一驱动程序作为调用结果反馈给第二驱动模块;在目标驱动程序为第一驱动程序以外的其他驱动程序时(如第二驱动程序或第三驱动程序),可以将调用请求转发给目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。
在第二驱动模块调用第一驱动模块中的驱动程序时,第一驱动模块中的驱动程序可能接收到卸载指令(或称移除指令),因此,第一驱动模块中的驱动程序可能会被移除,因此,本申请实施例可以在调用第一驱动模块中的驱动程序时,将驱动程序锁定,并在调用完成后,解锁驱动程序,具体的,作为一个可选的实施例,所述方法还包括:接收对目标驱动程序发送驱动锁定指令,以将目标驱动程序锁定,以防止目标驱动程序被移除;接收驱动解锁指令,以将目标驱动程序解锁。本申请实施例可以为驱动程序设置调用次数阈值,在驱动程序被第一驱动模块调用的调用次数达到调用次数阈值时,可以将驱动程序移除。相应的,在第二驱动模块调用第一驱动模块中的目标驱动程序时,第二驱动模块可以向第一驱动模块发送驱动锁定指令,驱动锁定指令可以增大目标驱动程序的调用次数阈值(如增加一次),从而防止目标驱动程序在被第二驱动模块的调用过程中被移除。在目标驱动程序调用完成后,第二驱动模块可以向第一驱动模块发送驱动解锁指令,驱动解锁指令可以减小目标驱动程序的调用次数阈值(如减少一次),以解除对目标驱动程序的锁定,在目标驱动程序的调用次数达到调用次数阈值,且接收到卸载指令时,使得目标驱动程序可以被卸载。
在确定了调用请求中的数据结构信息对应的目标驱动程序之后,在下一次调用时,可以为调用请求添加标识,并为驱动程序添加标识,以通过标识的匹配来更加快速的确定相应的驱动程序。具体的,作为一个可选的实施例,所述方法还包括:反馈关联标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加关联标识;在目标驱动程序的数据结构体中添加关联标识,以便依据调用请求中的关联标识,调用目标驱动程序。对于驱动程序对应的数据结构体来说,部分驱动程序的数据结构体是可扩展(可调整)的,因此,本申请实施例可以向可扩展的数据结构体中添加关联标识,并向第二驱动模块反馈关联标识,第二驱动模块在发送调用目标驱动程序的调用请求时,可以在调用请求中添加关联标识,第一驱动模块可以依据调用请求中的关联标识和驱动程序的数据结构体中的关联标识,确定调用请求对应的目标驱动程序,以对目标驱动程序进行调用。
另外,本申请实施例除了可以向驱动程序的数据结构体中添加关联标识之外,还可以新建数据结构体,以存储调用标识与驱动程序之间的关联关系,以便依据关联关系来确定调用请求对应的驱动程序,具体的,作为一个可选的实施例,所述方法还包括:反馈调用标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加调用标识;新建关联关系数据结构体,并在关联关系数据结构体中建立调用标识与目标驱动程序的关联关系,以便依据调用请求中的调用标识确定目标驱动程序。部分驱动程序的数据结构体是不可扩展的,相应的,本申请实施例可以新建关联关系数据结构体,以在关联关系数据结构体中添加调用标识与驱动程序之间的关联关系,并反馈调用标识给第二驱动模块,第二驱动模块可以在下一次调用目标驱动程序时,向调用请求中添加调用标识,以便第一驱动模块依据调用标识和关联关系数据结构体中存储的关联关系,确定调用请求对应的目标驱动程序。
本申请实施例中,第一驱动模块可以理解为被调用的一方,第二驱动模块可以理解为调用的一方,第二驱动模块可以向第一驱动模块发送调用请求,调用请求中包含有待调用的驱动程序的数据结构信息,第一驱动模块可以依据数据结构信息进行数据结构归属分析,确定与数据结构信息对应的目标驱动程序,并将目标驱动程序作为调用结果反馈给第二驱动模块。本申请实施例可以在调用请求中添加待调用的驱动程序的数据结构信息,并依据数据结构确定第一驱动模块中与第二驱动模块对应的驱动程序,从而可以减小出现调用的驱动程序与第二驱动模块不兼容等问题,从而提升系统的安全性。
在上述实施例的基础上,本申请实施例还提供一种驱动程序调用方法,可以应用在第一驱动模块,如图3所示,所述方法包括:
步骤302、接收对目标驱动程序发送驱动锁定指令,以将目标驱动程序锁定,以防止目标驱动程序被移除。
步骤304、提供调用接口,并通过调用接口接收第二驱动模块发出的调用请求。所述调用请求包含有待调用的驱动程序的数据结构信息;所述数据结构信息包括目标字段和目标字段的第一位置信息。
步骤306、获取第一驱动模块中各驱动程序对应的数据结构体,并确定目标字段在数据结构体中的第二位置信息。
步骤308、依据所述第一位置信息和所述第二位置信息,确定偏移量。
步骤310、依据所述偏移量确定数据结构信息对应的目标驱动程序。
步骤312、通过调用接口,将目标驱动程序作为调用结果反馈给第二驱动模块。在确定了调用请求对应的驱动程序之后,在下次调用驱动程序时,可以向驱动程序中添加标识,以便通过标识更加快速的确定待调用的驱动程序。作为一个可选的实施例,所述方法还包括:反馈关联标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加关联标识;在目标驱动程序的数据结构体中添加关联标识,以便依据调用请求中的关联标识,调用目标驱动程序。作为另一个可选的实施例,所述方法还包括:反馈调用标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加调用标识;新建关联关系数据结构体,并在关联关系数据结构体中建立调用标识与目标驱动程序的关联关系,以便依据调用请求中的调用标识确定目标驱动程序。
步骤314、接收驱动解锁指令,以将目标驱动程序解锁。
本申请实施例中,第一驱动模块可以理解为被调用的一方,第二驱动模块可以理解为调用的一方。在进行调用之前,第二驱动模块可以向第一驱动模块发送驱动锁定指令,以锁定第一驱动模块中的驱动程序。在进行调用的过程中,第二驱动模块可以查询第一驱动模块的调用接口,并通过调用接口向第一驱动模块发送调用请求,调用请求包含有数据结构信息,数据结构信息包括目标字段和目标字段的第一位置信息;第一驱动模块可以获取驱动程序对应的数据结构体,并确定目标字段在数据结构体中的第二位置信息,之后依据第一位置信息和第二位置信息,确定偏移量,并依据偏移量来确定数据结构信息对应的目标驱动程序。确定目标驱动程序之后,第一驱动模块可以将目标驱动程序作为调用结果反馈给第二驱动模块。第二驱动模块在调用之后,可以向第一驱动模块发送驱动解锁指令,以解除对目标驱动程序的锁定。
在上述实施例的基础上,本申请实施例还提供一种驱动程序调用方法,可以应用在第二驱动模块,第二驱动模块可以理解为发出调用请求以调用目标驱动程序的一方,第二驱动模块可以向第一驱动模块发出带有待调用的驱动程序的数据结构信息的调用请求,第一驱动模块依据数据结构信息来确定待调用的目标驱动程序并作为调用结果反馈给第二驱动模块,具体的,如图4所示,所述方法包括:
步骤402、获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息,所述第一驱动模块用于确定与数据结构信息对应的目标驱动程序,并将目标驱动程序作为调用结果反馈。
步骤404、通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
本实施例的实施方式与上述实施例的实施方式类似,具体实施方式可以参考上述实施例的具体实施方式,此处不再赘述。
本申请实施例中,第一驱动模块可以理解为被调用的一方,第二驱动模块可以理解为调用的一方,第一驱动模块可以提供调用接口,第二驱动模块在调用驱动程序时,可以查询第一驱动模块对应的调用接口,并通过调用接口向第一驱动模块发送调用请求,调用请求中包含有待调用的驱动程序的数据结构信息,第一驱动模块可以依据数据结构信息进行数据结构归属分析,确定与数据结构信息对应的目标驱动程序,并通过调用接口将目标驱动程序作为调用结果反馈给第二驱动模块。第二驱动模块接收待目标驱动程序之后,可以执行目标驱动程序,以对数据进行处理。
在上述实施例的基础上,本申请实施例还提供一种驱动程序调用方法,可以应用在第一驱动模块,第一驱动模块可以接收第二驱动模块发出的调用请求,调用请求中包含有驱动程序标识,第一驱动模块可以依据驱动程序标识来确定相应的驱动程序,并将驱动程序作为调用结果反馈给第二驱动模块,具体的,如图5所示,所述方法包括:
步骤502、接收第二驱动模块的调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息。
步骤504、依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序。
步骤506、将目标驱动程序作为调用结果反馈给第二驱动模块。
本实施例的实施方式与上述实施例的实施方式类似,具体实施方式可以参考上述实施例的具体实施方式,此处不再赘述。
本申请实施例中的调用过程可以划分为两次,第一次调用是通过历史调用请求来调用驱动程序,第二次调用是通过调用请求来调用驱动程序,在第一次调用的过程中,第二驱动模块可以在历史调用请求中添加待调用的驱动程序的数据结构信息,第一驱动模块依据数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,之后,第一驱动模块可以生成驱动程序标识,以便在下次调用时,通过驱动程序标识来快速确定待调用的驱动程序。因此,在第二次调用的过程中,第二驱动模块可以在调用请求中添加驱动程序标识,第一驱动模块可以通过驱动程序标识,快速的确定待调用的目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。
在上述实施例的基础上,本申请实施例还提供一种驱动程序调用方法,可以应用在第二驱动模块,第二驱动模块可以向第一驱动模块发送调用请求,调用请求中包含有驱动程序的驱动程序标识,第一驱动模块依据驱动程序标识来确定待调用的驱动程序,以将驱动程序作为调用结果反馈给第二驱动模块,具体的,如图6所示,所述方法包括:
步骤602、获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息,所述第一驱动模块用于依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序,并将目标驱动程序作为调用结果反馈。
步骤604、通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
本实施例的实施方式与上述实施例的实施方式类似,具体实施方式可以参考上述实施例的具体实施方式,此处不再赘述。
本申请实施例中的调用过程可以划分为两次,第一次调用是通过历史调用请求来调用驱动程序,第二次调用是通过调用请求来调用驱动程序,在第一次调用的过程中,第二驱动模块可以在历史调用请求中添加待调用的驱动程序的数据结构信息,第一驱动模块依据数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,之后,第一驱动模块可以生成驱动程序标识,以便在下次调用时,通过驱动程序标识来快速确定待调用的驱动程序,其中,驱动程序标识可以理解为上述方法实施例中的关联标识和调用标识。因此,在第二次调用的过程中,第二驱动模块可以在调用请求中添加驱动程序标识,第一驱动模块可以通过驱动程序标识,快速的确定待调用的目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。
在上述实施例的基础上,本申请实施例还提供一种驱动程序调用方法,可以应用在服务端,服务端包含有外部驱动模块和内部驱动模块,外部驱动模块向内部驱动模块发送调用请求,调用请求包含有待调用的驱动程序的数据结构信息,内部驱动模块依据数据结构信息来确定待调用的驱动程序,并将驱动程序反馈给外部驱动模块,具体的,如图7所示,所述方法包括:
步骤702、外部驱动模块向内部驱动模块发出调用请求,所述调用请求包含有内部驱动模块中待调用的驱动程序的数据结构信息。
步骤704、内部驱动模块依据数据结构信息,确定对应的目标驱动程序。
步骤706、内部驱动模块将目标驱动程序作为调用结果反馈给外部驱动模块。
步骤708、外部驱动模块执行目标驱动程序。
本实施例的实施方式与上述实施例的实施方式类似,具体实施方式可以参考上述实施例的具体实施方式,此处不再赘述。
本申请实施例中,内部驱动模块可以理解为被调用的一方,外部驱动模块可以理解为调用的一方,内部驱动模块可以提供调用接口,外部驱动模块在调用驱动程序时,可以查询内部驱动模块对应的调用接口,并通过调用接口向内部驱动模块发送调用请求,调用请求中包含有待调用的驱动程序的数据结构信息,内部驱动模块可以依据数据结构信息进行数据结构归属分析,确定与数据结构信息对应的目标驱动程序,并通过调用接口将目标驱动程序作为调用结果反馈给外部驱动模块。外部驱动模块接收待目标驱动程序之后,可以执行目标驱动程序,以对数据进行处理。
在上述实施例的基础上,本申请实施例还提供一种驱动程序调用方法,可以应用在服务端,服务端包含有外部驱动模块和内部驱动模块,外部驱动模块向内部驱动模块发送调用请求,调用请求包含有待调用的驱动程序的驱动程序标识,内部驱动模块依据确定程序标识来确定待调用的驱动程序,并将驱动程序反馈给外部驱动模块,具体的,如图8所示,所述方法包括:
步骤802、外部驱动模块向内部驱动模块发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据对历史调用请求确定,所述历史调用请求包含有数据结构信息,所述数据结构信息用于确定对应的目标驱动程序。
步骤804、内部驱动模块依据驱动程序标识,确定对应的目标驱动程序。
步骤806、内部驱动模块将目标驱动程序作为调用结果反馈给外部驱动模块。
步骤808、外部驱动模块执行目标驱动程序。
本实施例的实施方式与上述实施例的实施方式类似,具体实施方式可以参考上述实施例的具体实施方式,此处不再赘述。
本申请实施例中的调用过程可以划分为两次,第一次调用是通过历史调用请求来调用驱动程序,第二次调用是通过调用请求来调用驱动程序,在第一次调用的过程中,外部驱动模块可以在历史调用请求中添加待调用的驱动程序的数据结构信息,内部驱动模块依据数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,之后,内部驱动模块可以生成驱动程序标识,以便在下次调用时,通过驱动程序标识来快速确定待调用的驱动程序。因此,在第二次调用的过程中,外部驱动模块可以在调用请求中添加驱动程序标识,内部驱动模块可以通过驱动程序标识,快速的确定待调用的目标驱动程序,以将目标驱动程序作为调用结果反馈给外部驱动模块。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
在上述实施例的基础上,本实施例还提供了一种驱动程序调用装置,参照图9,具体可以包括如下模块:
调用请求接收模块902,用于接收第二驱动模块的调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息。
驱动程序获取模块904,用于依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序。
调用结果反馈模块906,用于将目标驱动程序作为调用结果反馈给第二驱动模块。
综上,本申请实施例中,第一驱动模块可以理解为被调用的一方,第二驱动模块可以理解为调用的一方,第二驱动模块可以向第一驱动模块发送调用请求,调用请求中包含有待调用的驱动程序的数据结构信息,第一驱动模块可以依据数据结构信息进行数据结构归属分析,确定与数据结构信息对应的目标驱动程序,并将目标驱动程序作为调用结果反馈给第二驱动模块。本申请实施例可以在调用请求中添加待调用的驱动程序的数据结构信息,并依据数据结构确定第一驱动模块中与第二驱动模块对应的驱动程序,从而可以减小出现调用的驱动程序与第二驱动模块不兼容等问题,从而提升系统的安全性。
在上述实施例的基础上,本实施例还提供了一种数据处理装置,具体可以包括如下模块:
锁定指令接收处理模块,用于接收对目标驱动程序发送驱动锁定指令,以将目标驱动程序锁定,以防止目标驱动程序被移除。
调用请求接收处理模块,用于提供调用接口,并通过调用接口接收第二驱动模块发出的调用请求。所述调用请求包含有待调用的驱动程序的数据结构信息;所述数据结构信息包括目标字段和目标字段的第一位置信息。
第二位置获取处理模块,用于获取第一驱动模块中各驱动程序对应的数据结构体,并确定目标字段在数据结构体中的第二位置信息。
偏移量获取处理模块,用于依据所述第一位置信息和所述第二位置信息,确定偏移量。
确定程序定位处理模块,用于依据所述偏移量确定数据结构信息对应的目标驱动程序。
调用结果反馈处理模块,用于通过调用接口,将目标驱动程序作为调用结果反馈给第二驱动模块。在确定了调用请求对应的驱动程序之后,在下次调用驱动程序时,可以向驱动程序中添加标识,以便通过标识更加快速的确定待调用的驱动程序。作为一个可选的实施例,所述装置还包括:关联标识反馈处理模块,用于反馈关联标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加关联标识;关联标识添加处理模块,用于在目标驱动程序的数据结构体中添加关联标识,以便依据调用请求中的关联标识,调用目标驱动程序。作为另一个可选的实施例,所述装置还包括:调用标识反馈处理模块,用于反馈调用标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加调用标识;关联关系建立处理模块,用于新建关联关系数据结构体,并在关联关系数据结构体中建立调用标识与目标驱动程序的关联关系,以便依据调用请求中的调用标识确定目标驱动程序。
解锁指令接收处理模块,用于接收驱动解锁指令,以将目标驱动程序解锁。
本申请实施例中,第一驱动模块可以理解为被调用的一方,第二驱动模块可以理解为调用的一方。在进行调用之前,第二驱动模块可以向第一驱动模块发送驱动锁定指令,以锁定第一驱动模块中的驱动程序。在进行调用的过程中,第二驱动模块可以查询第一驱动模块的调用接口,并通过调用接口向第一驱动模块发送调用请求,调用请求包含有数据结构信息,数据结构信息包括目标字段和目标字段的第一位置信息;第一驱动模块可以获取驱动程序对应的数据结构体,并确定目标字段在数据结构体中的第二位置信息,之后依据第一位置信息和第二位置信息,确定偏移量,并依据偏移量来确定数据结构信息对应的目标驱动程序。确定目标驱动程序之后,第一驱动模块可以将目标驱动程序作为调用结果反馈给第二驱动模块。第二驱动模块在调用之后,可以向第一驱动模块发送驱动解锁指令,以解除对目标驱动程序的锁定。
在上述实施例的基础上,本实施例还提供了一种驱动程序调用装置,参照图10,具体可以包括如下模块:
调用请求发送模块1002,用于获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息,所述第一驱动模块用于确定与数据结构信息对应的目标驱动程序,并将目标驱动程序作为调用结果反馈。
调用结果接收模块1004,用于通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
综上,本申请实施例中,第一驱动模块可以理解为被调用的一方,第二驱动模块可以理解为调用的一方,第一驱动模块可以提供调用接口,第二驱动模块在调用驱动程序时,可以查询第一驱动模块对应的调用接口,并通过调用接口向第一驱动模块发送调用请求,调用请求中包含有待调用的驱动程序的数据结构信息,第一驱动模块可以依据数据结构信息进行数据结构归属分析,确定与数据结构信息对应的目标驱动程序,并通过调用接口将目标驱动程序作为调用结果反馈给第二驱动模块。第二驱动模块接收待目标驱动程序之后,可以执行目标驱动程序,以对数据进行处理。
在上述实施例的基础上,本实施例还提供了一种驱动程序调用装置,具体可以包括如下模块:
调用请求获取模块,用于接收第二驱动模块的调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息。
驱动程序确定模块,用于依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序。
驱动程序反馈模块,用于将目标驱动程序作为调用结果反馈给第二驱动模块。
综上,本申请实施例中的调用过程可以划分为两次,第一次调用是通过历史调用请求来调用驱动程序,第二次调用是通过调用请求来调用驱动程序,在第一次调用的过程中,第二驱动模块可以在历史调用请求中添加待调用的驱动程序的数据结构信息,第一驱动模块依据数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,之后,第一驱动模块可以生成驱动程序标识,以便在下次调用时,通过驱动程序标识来快速确定待调用的驱动程序。因此,在第二次调用的过程中,第二驱动模块可以在调用请求中添加驱动程序标识,第一驱动模块可以通过驱动程序标识,快速的确定待调用的目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。
在上述实施例的基础上,本实施例还提供了一种驱动程序调用装置,具体可以包括如下模块:
调用请求输出模块,用于获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息,所述第一驱动模块用于依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序,并将目标驱动程序作为调用结果反馈。
驱动程序将输入模块,用于通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
本申请实施例中的调用过程可以划分为两次,第一次调用是通过历史调用请求来调用驱动程序,第二次调用是通过调用请求来调用驱动程序,在第一次调用的过程中,第二驱动模块可以在历史调用请求中添加待调用的驱动程序的数据结构信息,第一驱动模块依据数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,之后,第一驱动模块可以生成驱动程序标识,以便在下次调用时,通过驱动程序标识来快速确定待调用的驱动程序,其中,驱动程序标识可以理解为上述方法实施例中的关联标识和调用标识。因此,在第二次调用的过程中,第二驱动模块可以在调用请求中添加驱动程序标识,第一驱动模块可以通过驱动程序标识,快速的确定待调用的目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。
在上述实施例的基础上,本实施例还提供了一种驱动程序调用装置,具体可以包括如下模块:
外部调用请求接收模块,用于外部驱动模块向内部驱动模块发出调用请求,所述调用请求包含有内部驱动模块中待调用的驱动程序的数据结构信息。
内部驱动程序确定模块,用于内部驱动模块依据数据结构信息,确定对应的目标驱动程序。
内部驱动程序反馈模块,用于内部驱动模块将目标驱动程序作为调用结果反馈给外部驱动模块。
内部驱动程序执行模块,用于外部驱动模块执行目标驱动程序。
本申请实施例中,内部驱动模块可以理解为被调用的一方,外部驱动模块可以理解为调用的一方,内部驱动模块可以提供调用接口,外部驱动模块在调用驱动程序时,可以查询内部驱动模块对应的调用接口,并通过调用接口向内部驱动模块发送调用请求,调用请求中包含有待调用的驱动程序的数据结构信息,内部驱动模块可以依据数据结构信息进行数据结构归属分析,确定与数据结构信息对应的目标驱动程序,并通过调用接口将目标驱动程序作为调用结果反馈给外部驱动模块。外部驱动模块接收待目标驱动程序之后,可以执行目标驱动程序,以对数据进行处理。
在上述实施例的基础上,本实施例还提供了一种驱动程序调用装置,具体可以包括如下模块:
外部调用请求获取模块,用于外部驱动模块向内部驱动模块发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据对历史调用请求确定,所述历史调用请求包含有数据结构信息,所述数据结构信息用于确定对应的目标驱动程序。
内部驱动程序获得模块,用于内部驱动模块依据驱动程序标识,确定对应的目标驱动程序。
内部驱动程序输出模块,用于内部驱动模块将目标驱动程序作为调用结果反馈给外部驱动模块。
驱动程序执行模块,用于外部驱动模块执行目标驱动程序。
本申请实施例中的调用过程可以划分为两次,第一次调用是通过历史调用请求来调用驱动程序,第二次调用是通过调用请求来调用驱动程序,在第一次调用的过程中,外部驱动模块可以在历史调用请求中添加待调用的驱动程序的数据结构信息,内部驱动模块依据数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,之后,内部驱动模块可以生成驱动程序标识,以便在下次调用时,通过驱动程序标识来快速确定待调用的驱动程序。因此,在第二次调用的过程中,外部驱动模块可以在调用请求中添加驱动程序标识,内部驱动模块可以通过驱动程序标识,快速的确定待调用的目标驱动程序,以将目标驱动程序作为调用结果反馈给外部驱动模块。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例中各方法步骤的指令(instructions)。
本申请实施例提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得电子设备执行如上述实施例中一个或多个所述的方法。本申请实施例中,所述电子设备包括服务器、终端设备等设备。
本公开的实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的装置,该装置可包括服务器(集群)、终端等电子设备。图11示意性地示出了可被用于实现本申请中所述的各个实施例的示例性装置1100。
对于一个实施例,图11示出了示例性装置1100,该装置具有一个或多个处理器1102、被耦合到(一个或多个)处理器1102中的至少一个的控制模块(芯片组)1104、被耦合到控制模块1104的存储器1106、被耦合到控制模块1104的非易失性存储器(NVM)/存储设备1108、被耦合到控制模块1104的一个或多个输入/输出设备1110,以及被耦合到控制模块1104的网络接口1112。
处理器1102可包括一个或多个单核或多核处理器,处理器1102可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,装置1100能够作为本申请实施例中所述服务端、终端等设备。
在一些实施例中,装置1100可包括具有指令1114的一个或多个计算机可读介质(例如,存储器1106或NVM/存储设备1108)以及与该一个或多个计算机可读介质相合并被配置为执行指令1114以实现模块从而执行本公开中所述的动作的一个或多个处理器1102。
对于一个实施例,控制模块1104可包括任意适当的接口控制器,以向(一个或多个)处理器1102中的至少一个和/或与控制模块1104通信的任意适当的设备或组件提供任意适当的接口。
控制模块1104可包括存储器控制器模块,以向存储器1106提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
存储器1106可被用于例如为装置1100加载和存储数据和/或指令1114。对于一个实施例,存储器1106可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,存储器1106可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,控制模块1104可包括一个或多个输入/输出控制器,以向NVM/存储设备1108及(一个或多个)输入/输出设备1110提供接口。
例如,NVM/存储设备1108可被用于存储数据和/或指令1114。NVM/存储设备1108可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备1108可包括作为装置1100被安装在其上的设备的一部分的存储资源,或者其可被该设备访问可不必作为该设备的一部分。例如,NVM/存储设备1108可通过网络经由(一个或多个)输入/输出设备1110进行访问。
(一个或多个)输入/输出设备1110可为装置1100提供接口以与任意其他适当的设备通信,输入/输出设备1110可以包括通信组件、音频组件、传感器组件等。网络接口1112可为装置1100提供接口以通过一个或多个网络通信,装置1100可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi、2G、3G、4G、5G等,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1102中的至少一个可与控制模块1104的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,装置1100可以但不限于是:服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。在各个实施例中,装置1100可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,装置1100包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,检测装置中可采用主控芯片作为处理器或控制模块,传感器数据、位置信息等存储到存储器或NVM/存储设备中,传感器组可作为输入/输出设备,通信接口可包括网络接口。
本申请实施例还提供了一种电子设备,包括:处理器;和存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如本申请实施例中一个或多个所述的方法。
本申请实施例还提供了一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如本申请实施例中一个或多个所述的方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种驱动程序调用方法、一种驱动程序调用装置、一种电子设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种驱动程序调用方法,其特征在于,应用在第一驱动模块,所述的方法包括:
接收第二驱动模块的调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息,所述数据结构信息包括目标字段和目标字段的第一位置信息;
依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序;
将目标驱动程序作为调用结果反馈给第二驱动模块;
其中,所述依据所述数据结构信息进行数据结构归属分析,包括:
获取第一驱动模块中各驱动程序对应的数据结构体,并确定目标字段在数据结构体中的第二位置信息;
依据所述第一位置信息和所述第二位置信息,确定偏移量;
依据所述偏移量确定数据结构信息对应的目标驱动程序。
2.根据权利要求1所述的方法,其特征在于,所述第一驱动模块包括多个版本的驱动程序,所述依据所述数据结构信息进行数据结构归属分析,确定对应的目标驱动程序,包括:
将调用请求转发给第一驱动程序;
通过第一驱动程序,对数据结构信息进行数据结构归属分析,确定对应的目标驱动程序。
3.根据权利要求2所述的方法,其特征在于,所述将目标驱动程序作为调用结果反馈给第二驱动模块,包括:
判断目标驱动程序是否为第一驱动程序,得到判断结果;
在判断结果为第一判断结果时,将第一驱动程序作为调用结果反馈给第二驱动模块;
在判断结果为第二判断结果时,将调用请求转发给目标驱动程序,以将目标驱动程序作为调用结果反馈给第二驱动模块。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收对目标驱动程序发送驱动锁定指令,以将目标驱动程序锁定,以防止目标驱动程序被移除;
接收驱动解锁指令,以将目标驱动程序解锁。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
反馈关联标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加关联标识;
在目标驱动程序的数据结构体中添加关联标识,以便依据调用请求中的关联标识,调用目标驱动程序。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
反馈调用标识给第二驱动模块,以便第二驱动模块在下次调用目标驱动程序时,在数据结构信息中添加调用标识;
新建关联关系数据结构体,并在关联关系数据结构体中建立调用标识与目标驱动程序的关联关系,以便依据调用请求中的调用标识确定目标驱动程序。
7.根据权利要求1所述的方法,其特征在于,所述接收第二驱动模块的调用请求,包括:
提供调用接口,并通过调用接口接收第二驱动模块发出的调用请求。
8.根据权利要求7所述的方法,其特征在于,所述将目标驱动程序作为调用结果反馈给第二驱动模块,包括:
通过调用接口,将目标驱动程序作为调用结果反馈给第二驱动模块。
9.一种驱动程序调用方法,其特征在于,应用在第二驱动模块,所述的方法包括:
获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有待调用的驱动程序的数据结构信息,所述第一驱动模块用于依据对数据结构信息的数据归属分析确定对应的目标驱动程序,并将目标驱动程序作为调用结果反馈,所述数据结构信息包括目标字段和目标字段的第一位置信息,其中,所述对数据结构信息的数据归属分析确定对应的目标驱动程序包括:获取第一驱动模块中各驱动程序对应的数据结构体,并确定目标字段在数据结构体中的第二位置信息,依据所述第一位置信息和所述第二位置信息,确定偏移量,依据所述偏移量确定数据结构信息对应的目标驱动程序;
通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
10.一种驱动程序调用方法,其特征在于,应用在第一驱动模块,所述的方法包括:
接收第二驱动模块的调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息,所述数据结构信息包括目标字段和目标字段的第一位置信息,其中,数据结构信息对应的目标驱动程序依据偏移量确定,所述偏移量依据所述第一位置信息和目标字段在数据结构体中的第二位置信息确定,所述数据结构体是第一驱动模块中各驱动程序对应的数据结构体;
依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序;
将目标驱动程序作为调用结果反馈给第二驱动模块。
11.一种驱动程序调用方法,其特征在于,应用在第二驱动模块,所述的方法包括:
获取第一驱动模块的调用接口,并向调用接口发出调用请求,所述调用请求包含有目标驱动程序的驱动程序标识,所述驱动程序标识依据历史调用请求确定,所述历史调用请求包含有待调用的目标驱动程序的数据结构信息,所述第一驱动模块用于依据驱动程序标识,确定第一驱动模块中对应的目标驱动程序,并将目标驱动程序作为调用结果反馈,所述数据结构信息包括目标字段和目标字段的第一位置信息,其中,数据结构信息对应的目标驱动程序依据偏移量确定,所述偏移量依据所述第一位置信息和目标字段在数据结构体中的第二位置信息确定,所述数据结构体是第一驱动模块中各驱动程序对应的数据结构体;
通过第一驱动模块的调用接口,接收返回的目标驱动程序,并执行所述目标驱动程序。
12.一种电子设备,其特征在于,包括:处理器;和
存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1-11中任一项所述的方法。
13.一个或多个机器可读介质,其上存储有可执行代码,当所述可执行代码被执行时,使得处理器执行如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153266.6A CN113961253B (zh) | 2021-09-29 | 2021-09-29 | 驱动程序调用方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153266.6A CN113961253B (zh) | 2021-09-29 | 2021-09-29 | 驱动程序调用方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961253A CN113961253A (zh) | 2022-01-21 |
CN113961253B true CN113961253B (zh) | 2024-04-09 |
Family
ID=79463288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111153266.6A Active CN113961253B (zh) | 2021-09-29 | 2021-09-29 | 驱动程序调用方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961253B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795452B (zh) * | 2023-07-20 | 2024-04-02 | 龙芯中科(北京)信息技术有限公司 | 驱动程序兼容性的确定方法、装置及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6041363A (en) * | 1996-03-29 | 2000-03-21 | Sun Microsystems, Inc, | Imbedding virtual device driver (VxD) calls in a dynamic link library (DLL) |
GB2347766A (en) * | 1999-03-12 | 2000-09-13 | Ibm | Internet based printing using a web browser |
JP2015082139A (ja) * | 2013-10-21 | 2015-04-27 | 株式会社リコー | 駆動用プログラム、装置駆動方法及び情報処理装置 |
US9395968B1 (en) * | 2006-06-30 | 2016-07-19 | American Megatrends, Inc. | Uniquely identifying and validating computer system firmware |
CN106020915A (zh) * | 2016-06-12 | 2016-10-12 | 北京金山安全软件有限公司 | 驱动程序安装方法及装置 |
CN106055340A (zh) * | 2016-06-12 | 2016-10-26 | 北京金山安全软件有限公司 | 驱动程序控制方法及装置 |
CN111309387A (zh) * | 2020-01-22 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 一种驱动加载的方法及装置、电子设备、存储介质 |
CN111427619A (zh) * | 2020-03-26 | 2020-07-17 | 深圳市镭神智能系统有限公司 | 一种驱动程序自适配方法、装置、更新方法、设备及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256441B2 (en) * | 2012-10-24 | 2016-02-09 | Intel Corporation | System and method providing forward compatibility between a driver module and a network interface |
-
2021
- 2021-09-29 CN CN202111153266.6A patent/CN113961253B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6041363A (en) * | 1996-03-29 | 2000-03-21 | Sun Microsystems, Inc, | Imbedding virtual device driver (VxD) calls in a dynamic link library (DLL) |
GB2347766A (en) * | 1999-03-12 | 2000-09-13 | Ibm | Internet based printing using a web browser |
US9395968B1 (en) * | 2006-06-30 | 2016-07-19 | American Megatrends, Inc. | Uniquely identifying and validating computer system firmware |
JP2015082139A (ja) * | 2013-10-21 | 2015-04-27 | 株式会社リコー | 駆動用プログラム、装置駆動方法及び情報処理装置 |
CN106020915A (zh) * | 2016-06-12 | 2016-10-12 | 北京金山安全软件有限公司 | 驱动程序安装方法及装置 |
CN106055340A (zh) * | 2016-06-12 | 2016-10-26 | 北京金山安全软件有限公司 | 驱动程序控制方法及装置 |
CN111309387A (zh) * | 2020-01-22 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 一种驱动加载的方法及装置、电子设备、存储介质 |
CN111427619A (zh) * | 2020-03-26 | 2020-07-17 | 深圳市镭神智能系统有限公司 | 一种驱动程序自适配方法、装置、更新方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113961253A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10785088B2 (en) | Management method and management apparatus of internet of things and internet of things system | |
CN104756080A (zh) | 扩展主机设备的功能 | |
CN110727581B (zh) | 崩溃定位方法与电子设备 | |
CN113961253B (zh) | 驱动程序调用方法、装置、电子设备和存储介质 | |
CN111079125A (zh) | 一种应用程序调用第三方库动态提升权限的方法及装置 | |
CN110609686A (zh) | 数据系统生成方法、装置、计算机设备、存储介质 | |
CN114265713B (zh) | Rdma事件管理方法、装置、计算机设备及存储介质 | |
CN111294377B (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN110635961B (zh) | 服务器的压测方法、装置和系统 | |
CN113254075B (zh) | 指令执行方法、指令执行装置、电子设备及存储介质 | |
CN111625443A (zh) | 一种压力测试方法、装置、设备和存储介质 | |
CN113297305A (zh) | 会话状态处理方法、装置、设备和存储介质 | |
CN115328580B (zh) | 应用移植环境下注册表操作的处理方法、装置和介质 | |
CN111475230B (zh) | 应用的功能配置方法、装置和电子设备 | |
US20180262707A1 (en) | Method for Processing Ordered Broadcast and Electronic Device | |
CN109992298B (zh) | 审批平台扩充方法、装置、审批平台及可读存储介质 | |
CN111143089A (zh) | 一种应用程序调用第三方库动态提升权限的方法及装置 | |
CN109150815B (zh) | 资源处理方法、装置和机器可读介质 | |
CN113296897B (zh) | 一种分布式事务的处理方法、装置、设备和机器可读介质 | |
CN117149476A (zh) | 故障上报方法及相关装置 | |
CN113296911B (zh) | 集群调用方法、集群调用装置、电子设备及可读存储介质 | |
CN110968471A (zh) | 一种程序崩溃问题上报方法、存储介质、电子设备及系统 | |
CN112738181B (zh) | 集群外部ip接入的方法、装置及服务器 | |
CN113760490B (zh) | 对微服务处理的方法、装置、电子设备及存储介质 | |
CN114153512A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40066799 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |