当前位置: 首页 > 专利查询>微软公司专利>正文

客户端/驱动器通信接口的自动生成制造技术

技术编号:7865526 阅读:214 留言:0更新日期:2012-10-15 00:39
各种实施例提供驱动器编写者可以使用中介表示(如,XML)来描述特定驱动器的操作集合的机制。生成工具可以随后处理中介表示并生成用以支持这些操作的客户端代码和设备驱动器代码。在一个或更多个实施例中,可以根据特定于特定设备驱动器的操作的定制模型来描述驱动器操作和支持驱动器操作的相关联元素。

【技术实现步骤摘要】
客户端/驱动器通信接口的自动生成
技术介绍
设备输入和输出控制(IOCTL)接口是一种应用可以与设备驱动器通信的机制。应用可以使用IOCTL接口向各种设备发送控制代码。每个控制代码表示驱动器要执行的操作。例如,控制代码可以要求设备驱动器返回关于相应设备的信息,或者引导驱动器执行设备上的动作,如,把盘格式化等。通常存在标准控制代码和特定于设备的控制代码。可以指定的控制代码的类型取决于正被访问的设备和应用正运行的平台。应用可以使用标准控制代码或特定于设备的控制代码在特定设备(如,软盘驱动器、硬盘驱动器、磁带驱动器、或者CD-ROM驱动器)上执行直接输入和输出操作。如今,关于验证经由IOCTL接口发送的分组存在挑战,因为很多时候分组未以除了对分组的供应商而言是已知的以外的格式来描述。此外,由于不存在使驱动器向除了某些驱动器客户端以外的实体指定与它的操作集合相关联的操作参数的标准方式,因此存在挑战。
技术实现思路
提供此
技术实现思路
以介绍简化形式的概念的选择,下面在具体实施方式中对其进一步描述。此
技术实现思路
并非意在识别要求保护主题的必要特征或关键特征,它也并非意在用来限制要求保护主题的范围。各种实施例提供一种驱动器编写者可以使用中介表示(如,XML)描述特定驱动器操作集合的机制。生成工具可以随后处理中介表示和生成用以支持这些操作的客户端代码和设备驱动器代码。在一个或更多个实施例中,可以根据特定于特定设备驱动器的操作的定制模型(schema)来描述驱动器操作和支持驱动器操作的相关联元素。可以把如定制模型所表示的描述转换成支持对于操作的特定集合从客户端至驱动器通信的代码文件的不同集合。在一个或更多个实施例中,与在所有操作上具有公共安全性相反,可以指定和应用与驱动器操作集合的各操作相关联的不同安全性需求,从而减轻人工执行驱动器中繁杂位操控的需要。附图说明全部图使用同样标记引用相似特征。图1示例了按照一个或更多个实施例可以采用本文中描述的各种原理的操作环境。图2示例了按照一个或更多个实施例包括代码生成工具形式的计算机可读指令的计算机可读存储介质。图3示例了按照一个或更多个实施例的实例代码生成工具流程。图4示例了按照一个或更多个实施例的实例运行期流程。图5示例了按照一个或更多个实施例的方法中的步骤。图6示例了按照一个或更多个实施例的方法中的步骤。具体实施方式概述各种实施例提供一种驱动器编写者可以使用中介表示(如,XML)来描述特定驱动器的操作集合的机制。生成工具可以随后处理中介表示和生成用以支持这些操作的客户端代码和设备驱动器代码。在一个或更多个实施例中,可以根据特定于特定设备驱动器的操作的定制模型来描述驱动器操作和支持驱动器操作的相关联元素。可以把如定制模型所表示的描述转换成支持对于操作的特定集合从客户端至驱动器通信的代码文件的不同集合。在一个或更多个实施例中,与在所有操作上具有公共安全性相反,可以指定和应用与驱动器操作集合的各操作相关联的不同安全性需求,从而减轻人工执行驱动器中繁杂位操控的需要。在后续讨论中,提供了题为“操作环境”的部分,其描述可以采用一个或更多个实施例的一个环境。继此之后,题为“实例模型”的部分描述了按照一个或更多个实施例的实例模型。接下来,题为“实例代码生成工具”的部分描述了按照一个或更多个实施例自动生成客户端侧和设备驱动器侧代码的代码生成工具。最后,题为“实例方法”的部分描述了按照一个或更多个实施例的实例方法。现在考虑可以实施一个或更多个实施例的实例操作环境。操作环境图1是在可操作用于采用本文中描述的技术的实例实施中环境100的示例。示例的环境100包括可以通过各种方式配置的运算设备102。在此实例中,运算设备102表示可以运用或利用如下所述生成的客户端侧(即,应用代码)和设备驱动器代码的客户端运算设备。例如,可以把运算设备102配置成便携式游戏设备、移动电话、能够在网络上通信的计算机(例如,桌面计算机、笔记本电脑、一个或更多个服务器、娱乐装备)、以通信方式耦合到显示设备的机顶盒等。因而,运算设备102的范围可以从具有大量存储器和处理器资源的全资源设备(例如,个人计算机、游戏控制台)至具有有限存储器和/或处理资源的低资源设备(例如,传统机顶盒、手持游戏控制台)。另外,虽然示出了单个运算设备102,但运算设备102可以代表多个不同设备,如,企业运用以执行操作的多个服务器、远程控制器和机顶盒组合等。运算设备102还可以包括使运算设备102的硬件执行操作的实体(例如,软件),例如,处理器、功能块等。例如,运算设备102可以包括计算机可读介质,其可以被配置成维持使运算设备、以及更具体地运算设备102的硬件执行操作的指令。因而,指令用来配置硬件以执行操作以及以此方式引起硬件的变换以执行功能。计算机可读介质可以通过各种不同配置把指令提供给运算设备102。计算机可读介质的一个这种配置是信号承载介质,因而被配置成诸如经由网络把指令(例如,作为载波)传输给运算设备的硬件。可替选地或另外,还可以如此处所示例的,把计算机可读介质配置成计算机可读存储介质104,因而并非信号承载介质。计算机可读存储介质的实例包括随机访问存储器(RAM)、只读存储器(ROM),光盘,闪存,硬盘存储器,以及可以使用磁、光学、以及其它技术存储指令和其它数据的其它存储设备。还把运算设备102示例成包括一个或更多个处理器106。处理器不受形成它们的材料或其中采用的处理机制的限制。例如,处理器可以包括半导体和/或晶体管(例如,电子集成电路(IC))。在这种上下文中,处理器可执行指令可以是电子可执行指令。可替选地,处理器的或用于处理器的、以及因而运算设备的或用于运算设备的机制可以包括但不限于量子运算、光学运算、机械运算(例如,使用纳米技术)等。另外,虽然示出了单个处理器106,但可以采用各种各样类型的处理器和/或计算机可读介质以及处理器和/或计算机可读介质的各种各样的组合。运算设备102还包括具有内核110的操作系统108。如上和下所述,计算机可读存储介质104包括诸如被配置成支持操作系统108的内核110、应用112与一个或更多个设备116之间通信的一个或更多个驱动器114以及诸如应用112的一个或更多个实体。内核110表示操作系统108的组件,该组件通常被用来把诸如处理器108和其它设备116之类的底层设备的功能性抽象为运算设备102执行的应用和其它软件。设备116可以代表运算设备102可以采用的各种不同设备。例如,设备116可以包括外围设备,如,打印机、扫描仪、硬盘驱动器等。另外,设备116可以包括诸如运算设备内部的存储器或存储设备的物件。设备116还可以表示运算设备102可以调节(leverage)的其它运算设备的功能性,如,使用移动电话作为存储设备、访问移动电话上的相片等。因而,运算设备102可以调节各种不同设备116以添加到运算设备102的功能性。为了使设备116与运算设备102、以及更具体地与运算设备的操作系统108和内核110通信,可以采用一个或更多个驱动器114。驱动器可以包括用户模式驱动器和内核模式驱动器这二者。驱动器114通常被用来抽象(abstract)相应设备116的功能性。例如,可以把驱动器114配置成一系列层,所述一系列本文档来自技高网...
客户端/驱动器通信接口的自动生成

【技术保护点】

【技术特征摘要】
2011.03.23 US 13/070,2691.一种用于生成代码的系统,包括:一个或更多个计算机可读存储介质(200),包括计算机可读指令,当执行时该计算机可读指令实施代码生成工具(202),该代码生成工具(202)被配置为:接收设备操作描述符文件(500),其表示驱动器的驱动器操作集合的中介表示,描述符文件包括能够逐操作地分配给各个驱动器操作的安全性权限;使用设备操作描述符文件来自动生成描述该设备操作描述符文件定义的接口合约的文件(502);把根据设备操作描述符文件生成的文件传递给编译器(504);接收来自编译器的导出文件(506);以及使用导出文件来生成用以允许进行客户端侧与设备驱动器侧实体之间通信的客户端侧和设备驱动器侧代码(508),包括,使用与各个驱动器操作相关联的访问控制列表来对一个或多个驱动器操作实施安全性权限。2.如权利要求1所述的系统,其中,设备操作描述符文件包括按照标准化模型创建的XML文件。3.如权利要求1所述的系统,其中,根据设备操作描述符文件生成的文件包括IDL文件。4.如权利要求1所述的系统,其中,编译器包括MIDL编译器。5.如权利要求1所述的系统,其中,客户端侧代码被配置成使得客户端数据被编组和向驱动器发送请求。6.如权利要求1所述的系统,其中,驱动器侧代码被配置成使得返回数据被编组和向相关联客户端返回编组的返回数据。7.如权利要求2所述的系统,其中,所述模型允许进行如下内容的指定:包括驱动器实施的操作集合的单个接口,其中,可以依据参数集合和属性列表来指定各操作。8.一种用于处理调用的方法,包括:在应用过程内接收与驱动器操作相关...

【专利技术属性】
技术研发人员:P斯利沃维奇
申请(专利权)人:微软公司
类型:发明
国别省市:

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

1