一种兼容的接口创建方法和系统技术方案

技术编号:15746383 阅读:112 留言:0更新日期:2017-07-03 01:34
本发明专利技术实施例提供了一种兼容的接口创建方法和一种兼容的接口创建系统,涉及计算机技术领域,根据本发明专利技术将具备相同参数的内核态的接口函数和应用态接口函数,在公用接口库中创建相应的公用接口函数,编译时,为全局的函数指针变量加载对应内核态接口函数的第一对象;在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象;公用接口库根据所述函数指针变量,为公用接口函数生成调用接口,供给公共代码部分对下层内核态、用户态兼容,该调用接口则可以作为兼容的系统接口,由此解决用户态和内核态接口函数相互不兼容,开发效率低的问题,取得了使用户可采用兼容接口完成用户态和内核态代码的编译,提高开发效率的有益效果。

Compatible interface creation method and system

The embodiment of the invention provides a compatible interface creation method and a compatible interface to create a system, which relates to the technical field of computer according to the interface function and application interface function kernel state of the invention will have the same parameters, create a public interface function, the corresponding interface in the public library when compiling the first object function function pointer variable load corresponding to the global kernel interface; in the state of application examples, the first object function pointer variable load corresponding application interface function for the state of the global; public interface library according to the function pointer variable, as the public interface generation function call interface, the code of the lower part of the supply of public kernel user mode and compatibility, the interface can be used as the system interface compatibility, so as to solve the user mode and kernel interface functions are not compatible with each other The problem of low efficiency of development is that the user can use compatible interface to complete the compiling of user's state and kernel state code, so as to improve the efficiency of development.

【技术实现步骤摘要】
一种兼容的接口创建方法和系统
本专利技术涉及计算机
,特别是涉及一种兼容的接口创建方法和一种兼容的接口创建系统。
技术介绍
内核态与用户态(用户态可以理解为应用态)是操作系统的两种运行级别,Windows的设备驱动程序就是运行在内核态下,而用户应用程序都运行在用户态下。用户态的程序运行在非特权处理机模式上,其他一些被保护的子系统代码也运行在该模式上。用户态的程序不能获得系统数据的存取权,除非调用Win32API(ApplicationProgrammingInterface,应用程序编程接口)或者系统服务。内核态的驱动程序作为操作系统的一个组成部分被执行——支持一个或多个受保护的子系统的操作系统底层组件。Windows平台的内核开发上存在一种开发需求,如对于同一套逻辑,同时需要内核态的代码和用户态的代码。但是实际应用中,对于同一功能,对应该功能的内核态的接口函数和应用态的接口函数不同。因此,开发人员需要分别记录内核态形式的接口函数和应用态形式的接口函数,在编译内核态的代码时不能使用应用态的接口函数,反之在编译应用态的代码时不能使用内核态的接口函数。如此对于开发人员来说,对于相同功能存在不同的形式的接口函数,其开发更复杂,并且要完全分别开发,开发效率低。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的兼容的接口创建方法和相应的兼容的接口创建装置。依据本专利技术的一个方面,提供了一种兼容的接口创建系统,包括:内核态接口创建模块、应用态接口创建模块、公用接口库;内核态接口创建模块,适于在内核态实例中,为全局的函数指针变量加载对应内核态接口函数的第一对象;所述函数指针变量针对一对内核态接口函数和应用态接口函数;所述一对内核态接口函数和应用态接口函数具有相同的参数;应用态接口创建模块,适于在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象;公用接口库,适于根据所述函数指针变量,为公用接口函数生成调用接口;所述公用接口函数具有所述内核态接口函数和应用态接口函数相同的参数。优选地,在内核态接口创建模块和应用态接口创建模块之前还包括:全局指针定义模块,适于为每对内核态接口函数和应用态接口函数定义同一个全局的函数指针变量。优选地,所述内核态接口创建模块包括:内核实例创建模块,适于创建内核态实例;内核态初始化模块,适于在内核态实例中,获取所述函数指针变量,并为函数指针变量加载对应内核态接口函数的符号。优选地,所述应用态接口创建模块包括:应用实例创建模块,适于创建应用态实例;应用态初始化模块,适于在应用态实例中,获取所述函数指针变量,并为函数指针变量加载对应应用态接口函数的符号。优选地,内核态接口创建模块还包括:内核接口函数导出模块,适于获取所述公用接口函数的调用接口,并根据所述公用接口函数的调用接口导出内核接口函数文件;所述应用态接口创建模块还包括:应用接口函数导出模块,适于获取所述公用接口函数的调用接口,并根据所述公用接口函数的调用接口导出应用接口函数文件。优选地,还包括:应用态程序除错模块,适于通过应用态程序接口选择文件和/或、标准输入输出调试方式、和/或调试输出调试方式;所述应用态程序除错接口模拟内核态程序除错接口。根据本专利技术的另一方面,提供一种兼容的接口创建方法,包括:在内核态实例中,为全局的函数指针变量加载对应内核态接口函数的第一对象;所述函数指针变量针对一对内核态接口函数和应用态接口函数;所述一对内核态接口函数和应用态接口函数具有相同的参数在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象;根据所述函数指针变量,为公用接口函数生成调用接口;所述公用接口函数具有所述内核态接口函数和应用态接口函数相同的参数。优选地,在内核态实例中,为全局的函数指针变量加载对应内核态接口函数的第一对象和在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象之前,还包括:为每对内核态接口函数和应用态接口函数定义同一个全局的函数指针变量。优选地,所述在内核态实例中,为全局的函数指针变量加载对应内核态接口函数的第一对象包括:创建内核态实例;在内核态实例中,获取所述函数指针变量,并为函数指针变量加载对应内核态接口函数的符号。优选地,所述在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象包括:创建应用态实例;在应用态实例中,获取所述函数指针变量,并为函数指针变量加载对应应用态接口函数的符号。优选地,还包括:获取所述公用接口函数的调用接口,并根据所述公用接口函数的调用接口导出内核接口函数文件;和获取所述公用接口函数的调用接口,并根据所述公用接口函数的调用接口导出应用接口函数文件。优选地,还包括:通过应用态程序接口选择文件和/或、标准输入输出调试方式、和/或调试输出调试方式;所述应用态程序除错接口模拟内核态程序除错接口。根据本专利技术的另一方面,提供一种兼容的接口创建设备,包括:存储器,加载有多条可执行指令;处理器,执行所述多条可执行指令;所述多条可执行指令包括执行以下步骤的方法:在内核态实例中,为全局的函数指针变量加载对应内核态接口函数的第一对象;所述函数指针变量针对一对内核态接口函数和应用态接口函数;所述一对内核态接口函数和应用态接口函数具有相同的参数在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象;根据所述函数指针变量,为公用接口函数生成调用接口;所述公用接口函数具有所述内核态接口函数和应用态接口函数相同的参数。根据本专利技术的兼容的接口创建系统和方法,包括了公用接口库、内核态接口创建模块、应用态接口创建模块,将具备相同参数的内核态的接口函数和应用态接口函数,在公用接口库中创建相应的公用接口函数,该所述公用接口函数具有所述内核态接口函数和应用态接口函数相同的参数。然后编译时,在内核态实例中为全局的函数指针变量加载对应内核态接口函数的第一对象;另外在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象;然后公用接口库根据所述函数指针变量,为公用接口函数生成调用接口,供给公共代码部分对下层内核态、用户态兼容,该调用接口则可以作为兼容的系统接口,由此解决了用户态和内核态接口函数相互不兼容,导致开发复杂,开发效率低的问题,取得了可以在上层提供兼容接口给用户,以及使用户可以采用兼容接口完成用户态和内核态代码的编译,提高开发效率的有益效果。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的一种兼容的接口创建系统实施例的结构框图;图2示出了根据本专利技术一个实施例的一种兼容的接口创建系统实施例的结构框图;图2A示出了根据本专利技术一个实施例的一种兼容的接口创建系统实施例的逻辑架构图;图3本文档来自技高网...
一种兼容的接口创建方法和系统

【技术保护点】
一种兼容的接口创建系统,包括:内核态接口创建模块、应用态接口创建模块、公用接口库;内核态接口创建模块,适于在内核态实例中,为全局的函数指针变量加载对应内核态接口函数的第一对象;所述函数指针变量针对一对内核态接口函数和应用态接口函数;所述一对内核态接口函数和应用态接口函数具有相同的参数;应用态接口创建模块,适于在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象;公用接口库,适于根据所述函数指针变量,为公用接口函数生成调用接口;所述公用接口函数具有所述内核态接口函数和应用态接口函数相同的参数。

【技术特征摘要】
1.一种兼容的接口创建系统,包括:内核态接口创建模块、应用态接口创建模块、公用接口库;内核态接口创建模块,适于在内核态实例中,为全局的函数指针变量加载对应内核态接口函数的第一对象;所述函数指针变量针对一对内核态接口函数和应用态接口函数;所述一对内核态接口函数和应用态接口函数具有相同的参数;应用态接口创建模块,适于在应用态实例中,为所述全局的函数指针变量加载对应应用态接口函数的第一对象;公用接口库,适于根据所述函数指针变量,为公用接口函数生成调用接口;所述公用接口函数具有所述内核态接口函数和应用态接口函数相同的参数。2.根据权利要求1所述的方法,其特征在于,在内核态接口创建模块和应用态接口创建模块之前还包括:全局指针定义模块,适于为每对内核态接口函数和应用态接口函数定义同一个全局的函数指针变量。3.根据权利要求1或2所述的方法,其特征在于,所述内核态接口创建模块包括:内核实例创建模块,适于创建内核态实例;内核态初始化模块,适于在内核态实例中,获取所述函数指针变量,并为函数指针变量加载对应内核态接口函数的符号。4.根据权利要求1或2所述的方法,其特征在于,所述应用态接口创建模块包括:应用实例创建模块,适于创建应用态实例;应用态初始化模块,适于在应用态实例中,获取所述函数指针变量,并为函数指针变量加载对应应用态接口函数的符号。5.根据权利要求1所述的方法,其特征在于,内核态接口创建模块还包括:内核接口函数导出模块,适于获取所述公用接口函数的调用接口,并根据所述公用接口函数的调用接口导出内核接口函数文件;所述应用态接口创建模块还包括:应用接口函数导出模块,适于获取所述公用接口函数的调用接口,并根据所述公用接口函数的调用接口导出应用接口函数文件。6.根据权利要求1所述的方法,其特征在于,还包括:应用态程序除错...

【专利技术属性】
技术研发人员:路尧
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京,11

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

1