CN107885653B - 一种数据处理系统、方法及装置 - Google Patents
一种数据处理系统、方法及装置 Download PDFInfo
- Publication number
- CN107885653B CN107885653B CN201610877539.4A CN201610877539A CN107885653B CN 107885653 B CN107885653 B CN 107885653B CN 201610877539 A CN201610877539 A CN 201610877539A CN 107885653 B CN107885653 B CN 107885653B
- Authority
- CN
- China
- Prior art keywords
- function
- game
- tested
- detected
- creating
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供了一种数据处理方法,通过获取所述待检测游戏所使用的功能特性;确定与所述功能特性对应的应用接口函数为目标接口函数;将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。可见,本方案在进行游戏测试时,采用接口函数的比对方式,无需对硬件显卡一一进行测试,解决现有游戏测试需消耗大量人力物力成本的问题。
Description
技术领域
本申请互联网技术领域,更具体地说,涉及一种弹幕显示系统、方法及装置。
背景技术
随着科技的快速发展,网络应用也越来越多样化,游戏业务得到了用户的追捧。
通常,游戏运营商在推出一款游戏之前,需要对该游戏进行各方面的测试,以满足游戏的流畅度要求。在测试游戏的兼容性时,通常是通过在不同的硬件上运行该游戏,并将该游戏的所有场景进行模拟运行。
而本案发明人通过研究发现,现有技术中需要将市面上主流的显卡都进行测试,消耗大量的人力资源,并且,每个显卡的测试都需要占用一定的时间,显卡的种类数量越多,测试所需的时间也越多。除此,测试时,需要购买上述显卡,众所周知,某些高端显卡价格昂贵,因此现有技术的测试方式会导致硬件成本高。
发明内容
有鉴于此,本申请提供了一种数据处理系统、方法及装置,用于解决现有游戏测试需消耗大量人力物力成本的问题。
为了实现上述目的,现提出的方案如下:
一种数据处理方法,应用于后台服务器,该方法包括:
获取所述待检测游戏所使用的功能特性;
确定与所述功能特性对应的应用接口函数为目标接口函数;
将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;
基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。
一种数据处理装置,包括:
获取模块,用于获取所述待检测游戏所使用的功能特性;
第一确定模块,用于确定与所述功能特性对应的应用接口函数为目标接口函数;
比对模块,用于将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;
第二确定模块,用于基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。
一种数据处理系统,包括任意一项上述的数据处理装置。
本申请实施例提供了一种数据处理方法,通过获取所述待检测游戏所使用的功能特性;确定与所述功能特性对应的应用接口函数为目标接口函数;将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。可见,本方案在进行游戏测试时,采用接口函数的比对方式,无需对硬件显卡一一进行测试,解决现有游戏测试需消耗大量人力物力成本的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请示例的一种实施环境架构示意图;
图2为本申请实施例公开的一种数据处理系统的信令流程图;
图3为本申请实施例公开的一种数据处理系统的函数编码图;
图4为本申请实施例公开的一种数据处理系统的流程图;
图5为本申请实施例公开的一种数据处理系统的虚表示意图;
图6为本申请实施例公开的一种数据处理装置的函数编码图;
图7为本申请实施例公开的一种数据处理装置的虚表调用示意图;
图8为本申请实施例公开的一种数据处理方法的产品示意图;
图9为本申请实施例公开的一种数据处理方法的产品示意图;
图10为本申请实施例公开的一种数据处理装置的结构示意图;
图11为本申请实施例公开的一种数据处理系统的硬件架构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据处理方法,通过获取所述待检测游戏所使用的功能特性;确定与所述功能特性对应的应用接口函数为目标接口函数;将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。可见,本方案在进行游戏测试时,采用接口函数的比对方式,无需对硬件显卡一一进行测试,解决现有游戏测试需消耗大量人力物力成本的问题。
请参阅图1,图1为本发明实施例提供的数据处理系统的结构框图,本发明实施例提供的数据处理方法可基于图1所示系统实现,参照图1,本发明实施例提供的数据处理系统可以包括:后台服务器11以及至少一个业务客户端10。
需要说明的是,后台服务器11可以为网络侧设置的用于与业务客户端10进行数据交互的设备,后台服务器11可以为单台服务器,也可以为由多台服务器组成的服务器群组或者是一个云计算服务中心。
至少一个业务客户端10为用户侧的用于发送业务请求的设备,如手机、平板电脑、笔记本电脑等。
基于图1所示系统,图2示出了本发明实施例提供的一种数据处理系统的信令流程图,该虚拟资源配置系统包括:包括至少一个业务客户端和后台服务器,结合图1和图2所示,该信令交互过程可以包括:
步骤S100、获取所述待检测游戏所使用的功能特性。
具体的,DirectX是一个提供给用户的多媒体开发的功能库,本质上是一系列专为多媒体以及游戏开发的应用程序接口,其包含了Direct3D、Direct2D、DirectCompute等等多个不同用途的子部分。由于这一系列API皆以Direct字样开头,所以在DirectX中,只要把X字母替换为任何一个特定API的名字,就成为了这一API系列的统称。需要说明的是,在本方案中DirectX优选为第11代版本,即DX11。
其中,应用接口函数API为一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,无需访问源码或理解内部工作机制的细节。
需要说明的是,DirectX的不同功能所需要的最低硬件要求是不同的,FeatureLevel可以表示该特性可以支持的最低版本。如,D3D11可以在D3D10或D3D9的硬件上执行,D3D10可以在D3D9的硬件上执行,但不能在D3D11的硬件上执行。
在本步骤中,获取待检测游戏所使用的功能特性可以通过获取待检测游戏运行时所述调用的创建函数,根据数据库预先存储的功能特性与创建函数的对应关系表,确定与所述创建函数对应的功能特性为所述待检测游戏所使用的功能特性。
具体的,在获取待检测游戏运行时所调用的创建函数需要先对DirectX的功能进行分类,生成功能类。通常,将DirectX的功能划分为四大类,分别为:ID3D11Device,IDXGISwapChain,ID3D11DeviceContext以及IDXGIFactory。需要说明的是,在本方案实施例中公开的这四个分类是DX11中主要常用函数的类,当然,还可以根据实际的需求对DX11的功能进行分类,并不局限于上述四类。
在上述分类的基础上,本方案还对每个功能类创建了创建函数,如,ID3D11Device类的创建函数是D3D11CreateDevice。接下来,以这个ID3D11Device类展示通过虚表替换的Hook技术,即Hook所述功能类的创建函数的步骤,如下;
S1、获取所述创建函数的地址信息。
在本方案中,可以通过GetProcAddress获取D3D11CreateDevice的地址。
S2、根据跳转函数,将跳转指令写入所述创建函数的预定义位置。
当根据所述地址信息调用所述创建函数时,所述跳转指令指示调用预定义函数。
具体的,调用DetourFunc函数(跳转函数)进行Hook。其中,DetourFunc函数如图3所示,将跳转命令写入到函数体的预定义位置,在本方案中为函数体的最前方。当函数被调用时,会被这个跳转指令跳转到预定义函数MyFunction。其跳转流程图如图4所示,从图中不难看出,本方案在创建函数的前方添加了跳转指令(JMP指令),在根据创建函数的地址信息找到创建函数后,跳转指令使得流程跳转到MyFunction函数中,在预定义函数调用完成后通过另外一个跳转指令,再跳转到创建函数D3D11CreateDevice的函数体中,这一过程的目的是为了获取对创建函数的处理权限。
除此,在所述跳转指令指示调用预定义函数之后,还包括:
S4、在所述预定义函数中创建每个所述功能类的功能子类。
其中,本实施例采用虚函数表替换的方式实现对功能类的全函数hook。以ID3D11Device为例,在跳转指令指示调用预定义函数之后,在MyFunction的函数体中进行ID3D11Device类的Hook。具体的,先编写一个功能子类hkID3D11Device继承ID3D11Device。需要说明的是,虚函数表是类的内存空间上第一块区域,存储有父类的函数地址。功能类即为功能子类的父类,其结构表如图5所示。
S5、获取d3dll.h文件中所述功能类对应的应用接口函数。
此步骤的目的是为了重新搭建应用接口函数,因为微软的功能接口不能编辑处理,因此,本方案重新搭建接口函数,以便于后续的调用。具体的,根据d3d11.h文件中ID3D11Device类的所有api接口,全部重新实现这些API。因为这些接口全部都是纯虚函数,而hkID3D11Device类是ID3D11Device的子类,所以本方案需要实现全部的接口。
S6、根据虚函数表,获取所述功能子类的应用接口函数,所述虚函数表存储有所述功能类对应的创建函数的地址信息。
其中,所述根据虚函数表,获取所述功能子类的应用接口函数可以通过如下步骤实现:
将所述功能类对应的创建函数的地址信息替换为所述功能子类的函数地址,在待检测游戏调用所述创建函数时,根据所述功能子类的函数地址,调用与所述功能子类对应的应用接口函数。
具体的,在预定义函数MyFunction中的操作代码如图6所示。可见,根据上述步骤可以实现对DX11中全函数的hook。这样,在游戏调用任何功能类中的接口函数API时,都会调用本方案的功能子类中对应的接口函数,如图7所示。
在上述实施例的基础上,本实施例在所述获取所述待检测游戏所使用的功能特性之前,还包括:
在注册表的指定位置添加触发文件,当待检测游戏运行时,加载所述触发文件,所述触发文件用于触发服务器获取所述待检测游戏所使用的功能特性。
具体的,可以在注册表中的指定位置添加触发文件MyDLL的名字。这样在任何exe启动的时候均会主动加载中个DLL,实现注入。
其路径如下可以为:
SOFTWARE\\Wow6432Node\\Microsoft\\WindowsNT\\CurrentVersion\\Windows中AppInit_DLLs键,在值中加入MyDLL.dll即可。
步骤S200、确定与所述功能特性对应的应用接口函数为目标接口函数。
在上述实施例中,将DX的功能进行了分类,并设置了与这些功能对应的应用接口函数API。
例如,DX可以分为如下功能分类:Shader Model,Tiled resources,ConservativeRasterization,Rasterizer Order Views,Typed Unordered Access View Loads,DirectCompute/Compute Shader,Geometry Shader等等,然后每个功能分类对应至少一个API。
具体的,以一个游戏需要使用功能特性为Geometry Shader为例,后台服务器首先查找到Geometry Shader对应的API:CreateGeometryShader。然后在DX的功能分类中查找是否包含CreateGeometryShader,如果包含,则定义该功能特性为这个游戏需要的功能特性。
具体的,所述预先获取的待测试显卡支持的接口函数的过程为:根据预设函数,判断所述待测试显卡的各功能特性满足第一预设条件的接口函数为所述待测试显卡支持的接口函数。
在本方案中可以使用CheckFeatureLevel函数以及CheckMultisampleQualityLevels函数,获得全部特性在当前显卡中的支持情况,最后将结果输出到csv中,并保存到数据服务器DB中。
步骤S300、将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对。
在本方案中,后台服务器预置了各个显卡能支持的功能特性,如显卡NVIDIAGeForce 7600GT可以支持ShaderModel2.0、Texture Resource Arrays4.0以及Double-precision Shaders2.0。
具体的,在测试某一游戏的显卡兼容性的实例中,如检测“极品飞车”能否在型号为NVIDIA GeForce 7600GT的这个显卡上运行,步骤S100首先获取极品飞车需要使用的功能特性,如ShaderModel4.0、Texture Resource Arrays6.0以及Double-precisionShaders1.0。然后步骤S200查找与该功能特性对应的接口函数。
那么,步骤S300则是对游戏需使用的功能特性对应的接口函数和待测试显卡(NVIDIA GeForce 7600GT)的接口函数进行比对,即将ShaderModel4.0、Texture ResourceArrays6.0、Double-precision Shaders1.0的接口函数和ShaderModel2.0、TextureResource Arrays4.0、Double-precision Shaders2.0的接口函数进行比对。
步骤S400、基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。
优选的,所述将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对,包括:
判断所述待测试显卡的接口函数是否包含所述待检测游戏的目标接口函数,如果不包含,确定所述待检测游戏与所述待检测显卡不兼容;
如果包含,判断所述待检测显卡的接口函数对应的功能特性等级是否满足所述待检测游戏的目标接口函数对应的功能特性等级,如果满足,确定所述待检测游戏与所述待检测显卡兼容;如果不满足,确定所述待检测游戏与所述待检测显卡不兼容。
上文介绍了Feature Level为某一特性可以支持的最低版本。结合上述举例,可知,显卡NVIDIA GeForce 7600GT不能完全支持“极品飞车”这个游戏,因为ShaderModel和Texture Resource Arrays特征参数不能满足游戏的要求。
即极品飞车游戏所需要的功能特性为ShaderModel4.0、Texture ResourceArrays6.0以及Double-precision Shaders1.0,而,显卡NVIDIA GeForce 7600GT具备的功能特性为ShaderModel2.0、Texture Resource Arrays4.0、Double-precisionShaders2.0。
相比较可知,游戏需要的ShaderModel的版本为4.0,而显卡支持的ShaderModel版本为2.0,所以该显卡不能支持该游戏的该项功能。
步骤S500、展示所述比对结果。
在此基础上,后台服务器还可以将上述不能支持游戏的特征参数进行存储并发给业务客户端进行显示。
除此,如图8所示,本实施例提供了一种业务客户端的显示界面,该界面可以由用户选择待检测的游戏以及待检测的显卡,然后进行接口函数的特征比对,除此,该界面还能在后台服务器在预先获取待测试显卡的接口函数时,根据预设函数,判断所述待测试显卡的各功能特性满足第一预设条件的接口函数为所述待测试显卡支持的接口函数,然后进行显示,如图9所示。
除此,还可以基于本方案的思想,采取对高端显卡的功能特性进行屏蔽的方式,实现对显卡的模拟,如,A显卡支持十个功能特性,B显卡支持四个功能特性,那么,可以采用硬件为A的显卡,屏蔽六个功能特性,来模拟B显卡的功能。
可见,本申请实施例提供了一种数据处理方法,通过获取所述待检测游戏所使用的功能特性;确定与所述功能特性对应的应用接口函数为目标接口函数;将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。可见,本方案在进行游戏测试时,采用接口函数的比对方式,无需对硬件显卡一一进行测试,解决现有游戏测试需消耗大量人力物力成本的问题。
下面对本申请实施例提供的数据处理装置进行描述,下文描述的数据处理装置与上文描述的数据处理系统相互对应参照。
请参阅图10,为本实施例提供的一种数据处理装置的结构示意图,包括:
获取模块100,用于获取所述待检测游戏所使用的功能特性;
第一确定模块200,用于确定与所述功能特性对应的应用接口函数为目标接口函数;
比对模块300,用于将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;
第二确定模块400,用于基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。
可选的,所述获取模块包括:
获取单元,用于获取待检测游戏运行所调用的创建函数;
确定单元,用于根据数据库预先存储的功能特性与创建函数的对应关系表,确定与所述创建函数对应的功能特性为所述待检测游戏所使用的功能特性。
可选的,所述获单元包括:
分类子单元,用于对DirectX的功能进行分类,生成功能类;
创建子单元,用于对每个所述功能类配置创建函数;
处理子单元,用于Hook所述功能类的创建函数。
可选的,所述处理子单元包括:
第一获取子单元,用于获取所述创建函数的地址信息;
写入子单元,用于根据跳转函数,将跳转指令写入所述创建函数的预定义位置;
当根据所述地址信息调用所述创建函数时,所述跳转指令指示调用预定义函数。
可选的,所述处理子单元还包括:
创建子单元,用于在所述预定义函数中创建每个所述功能类的功能子类;
第二获取子单元,用于获取d3dll.h文件中所述功能类对应的应用接口函数;
第三获取子单元,用于根据虚函数表,获取所述功能子类的应用接口函数,所述虚函数表存储有所述功能类对应的创建函数的地址信息。
可选的,所述第三获取子单元包括:
替换子单元,用于将所述功能类对应的创建函数的地址信息替换为所述功能子类的函数地址,在待检测游戏调用所述创建函数时,根据所述功能子类的函数地址,调用与所述功能子类对应的应用接口函数。
可选的,还包括:
触发模块,用于在注册表的指定位置添加触发文件,当待检测游戏运行时,加载所述触发文件,所述触发文件用于触发服务器获取所述待检测游戏所使用的功能特性。
可选的,还包括:
第三确定模块,用于根据预设函数,判断所述待测试显卡的各功能特性满足第一预设条件的接口函数为所述待测试显卡支持的接口函数。
可选的,所述比对模块包括:
判断单元,用于判断所述待测试显卡的接口函数是否包含所述待检测游戏的目标接口函数,如果不包含,确定所述待检测游戏与所述待检测显卡不兼容;
如果包含,判断所述待检测显卡的接口函数对应的功能特性等级是否满足所述待检测游戏的目标接口函数对应的功能特性等级,如果满足,确定所述待检测游戏与所述待检测显卡兼容;如果不满足,确定所述待检测游戏与所述待检测显卡不兼容。
其工作原理请参见系统实施例。
本发明实施例提供的服务器的硬件结构可如图11所示,包括:处理器1,通信接口2,存储器3和通信总线4;
其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;
处理器1,用于执行程序;
存储器3,用于存放程序;
程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:
获取所述待检测游戏所使用的功能特性;
确定与所述功能特性对应的应用接口函数为目标接口函数;
将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;
基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。
综上所述,本申请实施例提供了一种数据处理方法,通过获取所述待检测游戏所使用的功能特性;确定与所述功能特性对应的应用接口函数为目标接口函数;将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。可见,本方案在进行游戏测试时,采用接口函数的比对方式,无需对硬件显卡一一进行测试,解决现有游戏测试需消耗大量人力物力成本的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (19)
1.一种数据处理方法,其特征在于,应用于后台服务器,该方法包括:
获取待检测游戏所使用的功能特性,其中包括:获取待检测游戏运行所调用的创建函数;根据数据库预先存储的功能特性与创建函数的对应关系表,确定与所述创建函数对应的功能特性为所述待检测游戏所使用的功能特性;
确定与所述功能特性对应的应用接口函数为目标接口函数;
将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;
基于比对结果,确定所述待测试显卡是否支持所述待检测游戏。
2.根据权利要求1所述的数据处理方法,其特征在于,所述获取待检测游戏运行所调用的创建函数包括:
对DirectX的功能进行分类,生成功能类;
对每个所述功能类配置创建函数;
Hook所述功能类的创建函数。
3.根据权利要求2所述的数据处理方法,其特征在于,所述Hook所述功能类的创建函数包括:
获取所述创建函数的地址信息;
根据跳转函数,将跳转指令写入所述创建函数的预定义位置;
当根据所述地址信息调用所述创建函数时,所述跳转指令指示调用预定义函数。
4.根据权利要求3所述的数据处理方法,其特征在于,在所述跳转指令指示调用预定义函数之后,还包括:
在所述预定义函数中创建每个所述功能类的功能子类;
获取d3dll.h文件中所述功能类对应的应用接口函数;
根据虚函数表,获取所述功能子类的应用接口函数,所述虚函数表存储有所述功能类对应的创建函数的地址信息。
5.根据权利要求4所述的数据处理方法,其特征在于,所述根据虚函数表,获取所述功能子类的应用接口函数,包括:
将所述功能类对应的创建函数的地址信息替换为所述功能子类的函数地址,在待检测游戏调用所述创建函数时,根据所述功能子类的函数地址,调用与所述功能子类对应的应用接口函数。
6.根据权利要求5所述的数据处理方法,其特征在于,在所述获取所述待检测游戏所使用的功能特性之前,还包括:
在注册表的指定位置添加触发文件,当待检测游戏运行时,加载所述触发文件,所述触发文件用于触发服务器获取所述待检测游戏所使用的功能特性。
7.根据权利要求1所述的数据处理方法,其特征在于,所述预先获取的待测试显卡支持的接口函数包括:
根据预设函数,判断所述待测试显卡的各功能特性满足第一预设条件的接口函数为所述待测试显卡支持的接口函数。
8.根据权利要求1所述的数据处理方法,其特征在于,所述将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对,包括:
判断所述待测试显卡的接口函数是否包含所述待检测游戏的目标接口函数,如果不包含,确定所述待检测游戏与所述待检测显卡不兼容;
如果包含,判断所述待检测显卡的接口函数对应的功能特性等级是否满足所述待检测游戏的目标接口函数对应的功能特性等级,如果满足,确定所述待检测游戏与所述待检测显卡兼容;如果不满足,确定所述待检测游戏与所述待检测显卡不兼容。
9.一种数据处理装置,其特征在于,包括:
获取模块,用于获取待检测游戏所使用的功能特性;
第一确定模块,用于确定与所述功能特性对应的应用接口函数为目标接口函数;
比对模块,用于将所述目标接口函数与预先获取的待测试显卡支持的接口函数进行比对;
第二确定模块,用于基于比对结果,确定所述待测试显卡是否支持所述待检测游戏;
所述获取模块包括:
获取单元,用于获取待检测游戏运行所调用的创建函数;
确定单元,用于根据数据库预先存储的功能特性与创建函数的对应关系表,确定与所述创建函数对应的功能特性为所述待检测游戏所使用的功能特性。
10.根据权利要求9所述的数据处理装置,其特征在于,所述获取单元包括:
分类子单元,用于对DirectX的功能进行分类,生成功能类;
创建子单元,用于对每个所述功能类配置创建函数;
处理子单元,用于Hook所述功能类的创建函数。
11.根据权利要求10所述的数据处理装置,其特征在于,所述处理子单元包括:
第一获取子单元,用于获取所述创建函数的地址信息;
写入子单元,用于根据跳转函数,将跳转指令写入所述创建函数的预定义位置;
当根据所述地址信息调用所述创建函数时,所述跳转指令指示调用预定义函数。
12.根据权利要求11所述的数据处理装置,其特征在于,所述处理子单元还包括:
创建子单元,用于在所述预定义函数中创建每个所述功能类的功能子类;
第二获取子单元,用于获取d3dll.h文件中所述功能类对应的应用接口函数;
第三获取子单元,用于根据虚函数表,获取所述功能子类的应用接口函数,所述虚函数表存储有所述功能类对应的创建函数的地址信息。
13.根据权利要求12所述的数据处理装置,其特征在于,所述第三获取子单元包括:
替换子单元,用于将所述功能类对应的创建函数的地址信息替换为所述功能子类的函数地址,在待检测游戏调用所述创建函数时,根据所述功能子类的函数地址,调用与所述功能子类对应的应用接口函数。
14.根据权利要求13所述的数据处理装置,其特征在于,还包括:
触发模块,用于在注册表的指定位置添加触发文件,当待检测游戏运行时,加载所述触发文件,所述触发文件用于触发服务器获取所述待检测游戏所使用的功能特性。
15.根据权利要求9所述的数据处理装置,其特征在于,还包括:
第三确定模块,用于根据预设函数,判断所述待测试显卡的各功能特性满足第一预设条件的接口函数为所述待测试显卡支持的接口函数。
16.根据权利要求9所述的数据处理装置,其特征在于,所述比对模块包括:
判断单元,用于判断所述待测试显卡的接口函数是否包含所述待检测游戏的目标接口函数,如果不包含,确定所述待检测游戏与所述待检测显卡不兼容;
如果包含,判断所述待检测显卡的接口函数对应的功能特性等级是否满足所述待检测游戏的目标接口函数对应的功能特性等级,如果满足,确定所述待检测游戏与所述待检测显卡兼容;如果不满足,确定所述待检测游戏与所述待检测显卡不兼容。
17.一种数据处理系统,其特征在于,包括如权利要求9-16任意一项所述的数据处理装置。
18.一种服务器,其特征在于,包括存储器与处理器;
所述存储器用于存放程序;
所述处理器用于执行所述程序,以实现如权利要求1-8任一项所述的数据处理方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,所述程序用于在被处理器执行时,实现如权利要求1-8任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610877539.4A CN107885653B (zh) | 2016-09-30 | 2016-09-30 | 一种数据处理系统、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610877539.4A CN107885653B (zh) | 2016-09-30 | 2016-09-30 | 一种数据处理系统、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107885653A CN107885653A (zh) | 2018-04-06 |
CN107885653B true CN107885653B (zh) | 2020-12-04 |
Family
ID=61770104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610877539.4A Active CN107885653B (zh) | 2016-09-30 | 2016-09-30 | 一种数据处理系统、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107885653B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697147A (zh) * | 2018-12-24 | 2019-04-30 | 普华基础软件股份有限公司 | 一种根据设备信息自动化检测显卡兼容性的方法 |
CN111770043B (zh) * | 2019-04-01 | 2023-03-10 | 网易(杭州)网络有限公司 | 游戏数据通信方法、装置、存储介质及电子设备 |
CN111124781A (zh) * | 2019-11-30 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种显卡测试方法、装置及电子设备和存储介质 |
CN112799753B (zh) * | 2021-01-08 | 2023-04-25 | 杭州雾联科技有限公司 | 一种全屏独占屏蔽方法、装置、设备及介质 |
CN113975816B (zh) * | 2021-12-24 | 2022-11-25 | 北京蔚领时代科技有限公司 | 一种基于hook的通过DirectX接口使用显卡的显卡分配方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739289A (zh) * | 2008-11-13 | 2010-06-16 | 闪联信息技术工程中心有限公司 | 一种在Linux虚拟机中设置显示模式的方法及装置 |
CN102567166A (zh) * | 2011-12-30 | 2012-07-11 | 曙光信息产业股份有限公司 | 一种显卡测试方法及测试系统 |
CN103902444A (zh) * | 2012-12-27 | 2014-07-02 | 腾讯科技(深圳)有限公司 | 3d引擎兼容性测试方法及装置 |
CN104598351A (zh) * | 2014-02-11 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 3d引擎兼容性的测试方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053890A (zh) * | 2009-10-28 | 2011-05-11 | 鸿富锦精密工业(深圳)有限公司 | 测试显卡三维图形处理功能的系统和方法 |
-
2016
- 2016-09-30 CN CN201610877539.4A patent/CN107885653B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739289A (zh) * | 2008-11-13 | 2010-06-16 | 闪联信息技术工程中心有限公司 | 一种在Linux虚拟机中设置显示模式的方法及装置 |
CN102567166A (zh) * | 2011-12-30 | 2012-07-11 | 曙光信息产业股份有限公司 | 一种显卡测试方法及测试系统 |
CN103902444A (zh) * | 2012-12-27 | 2014-07-02 | 腾讯科技(深圳)有限公司 | 3d引擎兼容性测试方法及装置 |
CN104598351A (zh) * | 2014-02-11 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 3d引擎兼容性的测试方法和装置 |
Non-Patent Citations (1)
Title |
---|
对DirectX/COM接口的挂钩;xieqidong;《CSDN:https://blog.csdn.net/xieqidong/article/details/2391111》;20080505;1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107885653A (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885653B (zh) | 一种数据处理系统、方法及装置 | |
CN110187931B (zh) | 小程序的运行方法及装置 | |
CN104838405B (zh) | 用于应用程序的测试框架的方法和系统 | |
CN107967206B (zh) | 一种数据测试系统、请求拦截方法以及请求拦截装置 | |
CN110619210A (zh) | 一种模拟器检测方法及系统 | |
CN108920370B (zh) | 兼容性问题检测方法、装置及设备 | |
US9921827B1 (en) | Developing versions of applications based on application fingerprinting | |
CN111858296B (zh) | 接口测试方法、装置、设备和存储介质 | |
US9058427B2 (en) | Iterative generation of symbolic test drivers for object-oriented languages | |
CN114676040A (zh) | 一种测试覆盖率验证方法、装置及存储介质 | |
CN110704303A (zh) | 一种测试覆盖度信息的获取方法及装置 | |
CN113268221A (zh) | 文件匹配方法、装置、存储介质及计算机设备 | |
US11565183B2 (en) | Method and apparatus for awarding trophies | |
CN111949510B (zh) | 测试处理方法、装置、电子设备及可读存储介质 | |
CN114721926A (zh) | 一种检测代码覆盖率的方法、装置、设备及存储介质 | |
CN107273745A (zh) | 一种动态链接库形式的恶意代码的动态分析方法 | |
CN111857854A (zh) | 关机资源加载方法、装置、存储介质和电子设备 | |
CN112631949B (zh) | 一种调试方法、装置、计算机设备及存储介质 | |
CN114390105A (zh) | 基于测试的企业用户分流方法及设备 | |
CN109886327B (zh) | 一种分布式系统中Java数据的处理系统及方法 | |
CN110209402B (zh) | 应用安装方法、电子设备及计算机存储介质 | |
CN114003293A (zh) | 接口管理方法、装置、电子设备以及可读存储介质 | |
CN111367752B (zh) | 识别Android真机和模拟器的方法、装置及存储介质 | |
CN111831284A (zh) | 渲染调试方法、装置及设备 | |
CN108170603A (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 |