受约束驱动程序平台在用户模式下在沙箱中运行驱动程序的制作方法_3

文档序号:9693260阅读:来源:国知局
备执行,所述计算设备诸如图1的示例客户端设备102,其包括或者利用驱动程序安全性平台116或相当的功能性。
[0038]图3是描绘出用于采用受约束执行环境以供变形驱动程序的执行的示例过程300的流程图。向驱动程序安全性平台登记变形驱动程序(框302)。例如,驱动程序管理器模块118可以配置成识别以指定格式包装的驱动程序。包装例如可以包括合适的标识符以向驱动程序安全性平台指示驱动程序被设计用于该平台并且要经由该平台来控制。因而,在安装驱动程序之后,驱动程序管理器模块118检测包装和/或标识符并且登记驱动程序以用于经由系统处置。随后,通过具有对应约束的驱动程序安全性平台管理驱动程序的操作。
[0039]针对变形驱动程序实例化受约束执行环境(框304)并且调用变形驱动程序以执行一个或多个任务(框306)。然后,经由受约束执行环境执行变形驱动程序以执行任务(框308)。在此,驱动管理器模块118可以在执行驱动程序时建立用于特定驱动程序的受约束执行环境。受约束执行环境可以包括如之前讨论的应用容器120(例如“沙箱”)。受约束执行环境在执行期间所应用的变形驱动程序的操作上强加各种约束。例如,受约束执行环境隔离对应的驱动程序以约束对系统资源的访问。特别地,访问可以约束到与驱动程序的功能性相关联的指定任务集。驱动程序由系统调用以执行任务并且可能不能够自己发起任务。例如,受约束执行环境可以防止驱动程序自己创建对象。替代地,用于特定任务的对象由平台创建并且传递到受约束执行环境以由驱动程序使用。
[0040]驱动程序还可以经由受约束执行环境作为后台任务而执行并且可以分派有传达有限特权和访问权限的特权令牌。与受约束执行环境相关联的后台进程可以在没有平台和/或执行工作的用户的具体指引的情况下暂停。附加地,受约束执行环境拒绝不与驱动程序安全性平台相关联的应用和其它组件对变形驱动程序的访问以防止对驱动的篡改和/或劫持。
[0041]附加地,驱动程序如之前所讨论的那样在用户模式下执行并且还可以在每用户的基础上安装。因此,不同用户可以安装不同驱动程序以用于在同一客户端设备上使用和/或用于相同目的。这可以促进依照用户偏好对不同硬件或不同软件版本的使用。由于驱动程序在用户模式下被沙箱化,因此一个驱动程序的安装和卸装不会影响其他用户的体验。参照例如VPN技术,同一设备的不同用户可以采用不同VPN驱动程序来连接到不同雇主的相应VPN服务器而不会不利地相互影响。
[0042]另外,使用所描述的技术实现的驱动程序可以容易地并且完整地移除而不会留下可能导致非稳定性或非意图行为的残余文件、数据、设置和性质。这是可能的,因为受约束执行环境提供存储装置的单独化分配以供相应驱动程序的排他性使用。驱动程序可以不具有对在别处写入数据或设置的访问。因此,通过删除与驱动程序相关联的所分配存储装置中包含的数据而容易地达成清除驱动程序和状态。
[0043]图4是描绘出其中控制变形驱动程序的操作的示例过程的流程图。识别变形驱动程序与驱动程序安全性平台的关联(框402)。例如,可以如之前所讨论的那样向驱动程序安全性平台116登记变形驱动程序。驱动程序的操作随后通过驱动程序安全性平台116以受控制的方式处置。关联可以在安装时基于驱动程序以指定格式或包装进行配置而建立。如所指出的,.appx格式是可以用于使驱动程序与平台相关联的一种适当格式,尽管还构想其它文件类型、名称和标识信息。
[0044]确定针对变形驱动程序所启用的任务集(框404)。所启用的任务集可以基于作为特定类型驱动程序(例如VPN对比打印机对比抗病毒程序等)的驱动程序的标识和/或每一个特定驱动程序的单独标识(例如区分与不同制造商/提供商相关联的相同类型的驱动程序)。平台因此可以针对每一个单独的驱动程序和/或在驱动程序类型的基础上支持和启用指定任务集。任务集可以是操作系统暴露的并且使得驱动程序履行的特定订约。因而,在标识给定驱动程序之后,平台知晓驱动程序能够执行的任务种类,启用那些任务,并且可以防止驱动程序执行其它任务。
[0045]特别地,建立将变形驱动程序的操作约束到所启用的任务集的执行环境(框406)。例如,受约束执行环境可以以之前所描述的方式建立。受约束执行环境启用某些任务或订约,但是以其它方式防止驱动程序访问操作系统资源或执行没有由驱动程序安全性平台明确授权执行的任务。
[0046]然后,通过执行环境控制变形驱动程序的操作,包括调用变形驱动程序以执行所启用的任务集并且在没有由驱动程序安全性平台进行的调用的情况下暂停变形驱动程序(框408)。再次,经由受约束执行环境执行的变形驱动程序由平台调用而不是能够自己发起任务。驱动程序可以在其没有被主动地调用以执行任务时保持在暂停状态中。这可以通过后台进程211的方式发生,该后台进程211被解暂停以使得能够工作并且然后在完成工作后返回到暂停状态。因而,由驱动程序执行的工作在平台和/或用户的指引下发生。驱动程序一般不能够执行除由平台针对驱动程序所指定的那些之外的任务。驱动程序也不能够操作,除非由平台要求,这防止驱动程序自由地消耗系统资源和电池寿命。
[0047]图5是描绘出其中经由在线应用商店分发变形驱动程序的示例过程的流程图。限定驱动程序安全性平台可识别的应用包装格式以用于将插件包括在在线应用商店中(框502)。例如,诸如变形驱动程序114和来自第三方提供商的其它代码之类的插件可以编码在采用针对驱动程序安全性平台116所限定的指定格式的驱动程序包装128中。开发者可以使用指定格式来利用驱动程序安全性平台116并且信号通知平台以相应地经由平台处置其代码/驱动程序。驱动程序包装128可以配置成促进包括在应用市场中,诸如使用.appx格式或其它指定格式经由应用商店服务126。
[0048]启用访问以经由在线应用商店下载插件(框504)。然后,以限定格式将插件分发给客户端,以有效地使客户端向驱动程序安全性平台登记插件并且实现受约束执行环境来控制插件的操作(框506)。将变形驱动程序114作为供应品包括在应用市场中由于经由驱动程序安全性平台116可获得的附加安全性措施、约束和性能增益而是部分可行的,其使得更可能的是用户将从在线商店下载和安装这样的驱动程序。因而,包含指定格式的对应变形驱动程序114的驱动程序包装128可以经由应用商店服务126而使得可用。驱动程序包装128可以包含适当的标识数据以促进驱动程序安全性平台116对包装的识别。驱动程序安全性平台116配置成在安装时识别驱动程序包装128并且执行如本文所描述的操作以登记驱动程序,创建受约束执行环境,施行放置在驱动程序上的各种约束等。
[0049]已经考虑到一些示例过程,现在考虑实现依照一个或多个实施例的各种方面的示例系统和设备的讨论。
[0050]示例系统和设备
图6图示了包括代表可以实现本文描述的各种技术的一个或多个计算系统和/或设备的示例计算设备602的示例系统600。计算设备602可以例如是服务提供商的服务器、与客户端相关联的设备(例如客户端设备)、片上系统和/或任何其它适当的计算设备或计算系统。
[0051]如所图示的示例计算设备602包括通信耦合到彼此的处理系统604、一个或多个计算机可读介质606和一个或多个I/O接口 608。尽管未示出,但是计算设备602还可以包括系统总线或者将各种组件彼此耦合的其它数据和命令传递系统。系统总线可以包括不同总线结构中的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用任何各种总线架构的处理器或本地总线。还构想各种其它示例,诸如控制和数据线。
[0052]处理系统604代表使用硬件执行一个或多个操作的功能性。因此,处理系统604被图示为包括硬件元件610,硬件元件610可以配置成处理器、功能块等。这可以包括作为专用集成电路或使用一个或多个半导体形成的其它逻辑设备的硬件中的实现方案。硬件元件610不受形成它们的材料或其中所采用的处理机制的限制。例如,处理器可以包括(多个)半导体和/或晶体管(例如电子集成电路(1C))。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
[0053]计算机可读介质606被图示为包括存储器/存储装置612。存储器/存储装置612表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置612可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(R0M)、闪速存储器、光盘、磁盘等)。存储器/存储装置612可以包括固定介质(例如RAM、ROM、固定硬盘驱动器等)以及可移除介质(例如闪速存储器、可移除硬盘驱动器、光盘等)。计算机可读介质606可以以各种其它方式配置,如下文进一步描述的。
[0054](多个)输入/输出接口608代表允许用户向计算设备602录入命令和信息,并且还允许使用各种输入/输出设备将信息呈现给用户和/或其它组件或设备的功能性。输入设备的示例包括键盘、光标控制设备(例如鼠标)、用于语音操作的麦克风、扫描仪、触摸功能性(例如配置成检测物理触摸的电容或其它传感器)、相机(例如其可以采用诸如红外频率之类的可见或不可见波长以检测不涉及作为手势的触摸的运动)等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、网络卡、触觉响应设备等。因而,计算设备602可以以如下文进一步描述的各种方式配置以支持用户交互。
[0055]本文在软件、硬件元件或程序模块的一般上下文中描述各种技术。一般地,这样的模块包括例程、程序、对象、元件、组件、数据结构等
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1