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

合并的注册表项中的虚拟删除制造技术

技术编号:5470336 阅读:248 留言:0更新日期:2012-04-11 18:40
诸如注册表项或值等元素通过为元素创建删除标记来虚拟地删除。两组或多组单独的实际注册表项/值作为一个合并的(虚拟的)注册表来呈现给在竖井中运行的进程。操作系统通过监视由计算机或计算机系统上的竖井中的进程做出的注册表项或值系统请求并过滤掉与删除标记相关联的元素来提供注册表的合并视图。特殊处理响应于检测到特定类型的注册表项或值系统访问请求来调用,这些注册表项或值系统访问请求的类型包括但不限于:枚举、打开、创建、重命名或删除。

【技术实现步骤摘要】
【国外来华专利技术】合并的注册表项中的虚拟删除站旦冃豕注册表是在包括微软WINDOWS 9x、 WINDOWS CE、 WINDOWS NT、WINDOWS 2000和WINDOWS XP在内的某些操作系统中使用的中央分层数据库。注册表用于存储针对一个或多个用户、应用程序和硬件设备来配置系统所需的信息。注册表包括WINDOWS在操作期间不断引用的信息,诸如每一个用户的简档、安装在计算机上的应用程序、每一个应用程序可创建的文档类型、文件夹和应用程序图标的属性页设置、系统上存在什么硬件、正在使用的端口等。有时期望呈现由两个或多个实际项构成的注册表项的逻辑视图。有时也期望允许对于注册表目录的不同部分的不同访问级别。例如,可能期望允许应用程序A删除特定注册表项但不允许应用程序B删除该注册表项,或允许应用程序A对于特定项添加其自己的值。本专利技术的各实施例解决了这些和其他需求。概述两组或多组单独的实际注册表项作为单个(虚拟)注册表呈现给在被称为竖井(silo)的受控执行环境中运行的应用程序。通常可用于对注册表中的项和项值执行的所有操作都可对合并的注册表执行,然而,操作系统控制对合并的注册表中的项的访问级别。操作系统通过注册表过滤器驱动程序或其他内核级操作系统代码来提供注册表的合并视图。注册表过滤器模型为单个回调提供指示调用该回调的原因的通知码。回调处理程序可被实现为具有用于处理各种通知的代码的大型开关语句。触发特殊处理的逋知类型的示例包括枚举子项、枚举项值、査询项、查询值、设置项值、修改项的安全性、加载项、关闭项、创建或打开项、删除项、删除值或重命名项。对注册表项或值的虚拟删除的需求在包括以下条件在内的各种情形中可能变成必要的或期望的 做出删除注册表项或值的请求的用户基于与该项/值相关联的ACL- (访问控制列表)具有删除该项或值的许可。 . 合并项的专用构成位置经由其访问掩码具有删除许可。对于接收到对其的删除请求的合并项启用删除语义支持。 当满足所有以上条件时,可在专用位置中为正被虚拟地删除的注册表项或 值创建删除标记。从竖井的观点来看,所标记的注册表项或值已被删除。因此, 在请求特定类型的注册表项/值访问操作时可能需要特殊的虚拟删除处理。触发 特殊虚拟删除处理的请求类型的示例包括枚举、打开、创建、重命名、删除项 以及删除值。附图简述 在附图中附图说明图1是示出其中可以实现本专利技术各方面的示例性计算环境的框图2是根据本专利技术的某些实施例的用于合并注册表项或值的系统的框图3是根据本专利技术的某些实施例的用于合并注册表项或值的方法的流程图4是根据本专利技术的某些实施例的图3的方法的一部分的流程图; 图5是根据本专利技术的某些实施例的对于打开/创建请求的虚拟删除处理的 流程图6是根据本专利技术的某些实施例的对于枚举请求的虚拟删除处理的流程图7是根据本专利技术的某些实施例的对于删除请求的虚拟删除处理的流程图8是根据本专利技术的某些实施例的对于查询的虚拟删除处理的流程图。详细描述 概览有时期望呈现由两个或多个实际项构成的注册表项的逻辑视图。例如,可 能期望提供现有注册表项和新的空项之间的合并。由一进程创建新注册表项和 值将进入最初空的项,但来自现有注册表的所有状态将对于该进程可见。这允许进程存储其单独项中的"专用"改变,但不修改注册表的共享的"公共"部 分。然而,通常当前已知的操作系统向所有进程提供注册表项的相同视图。因此,在许多系统中,在操作系统进程层以及操作系统本身的机器边界处 存在系统中有限的密封点,但在这些层之间,使用诸如访问控制列表(ACL) 以及与运行应用程序的用户的身份相关联的特权等安全控制来控制对注册表 项或值的进程访问。因为对系统资源的访问与运行应用程序的用户的身份而不 是与应用程序本身相关联,所以应用程序可访问该应用程序不需要的注册表项 或值,如以上示例所展示的。因为多个应用程序可能能够修改同一个注册表项 或值,所以可能导致应用程序之间的不兼容。也可能产生安全问题,因为一个 应用程序可能恶意或故意干扰另一应用程序的操作。此处被称为竖井的操作系统内隔离/密封机制允许对在使用操作系统的单 个实例的单个计算机上运行的进程进行分组和隔离。操作系统的单个实例将系统的处理空间分为多个并排和/或嵌套的执行环境(竖井),从而允许对某些注 册表项的受控共享以及对其他项的访问限制。操作系统通过为每一个竖井创建 不同的注册表视图来控制注册表项共享和访问。该视图对于在竖井中运行的进 程表现为单个目录,该单个目录是两组或多组构成项的并集。即,对于应用程 序可用的项取决于该应用程序在哪个竖井中运行并且在一竖井中运行的应用 程序"看见"的注册表通过表面上合并两组或多组项来创建。服务于计算机或计 算机系统的单个OS映像由此提供注册表的不同视图以控制哪个进程、进程组、 应用程序或应用程序组可使用哪些项以及应用程序是否能够读取或读写项。对 项的访问以及对项的访问程度因此直接关联于或基于进程、应用程序、进程组、 应用程序组被放置的竖井而不是仅由用户特权来确定。对注册表的合并支持可经由注册表过滤器驱动程序或其他内核级操作系 统代码来实现。在某些实施例中注册表过滤器模型为单个回调提供指示调用该 回调的原因的通知码。在某些实施例中回调处理程序因此是具有用于处理各种 通知的代码的大型开关语句。接收特殊处理的通知包括枚举注册表项、枚举注 册表项的值、査询关于注册表项的信息、查询值、设置项值、修改项的安全性、 加载项、关闭项、创建项、重命名项以及删除项或删除项值。创建项通知在调 用者想要创建或打开注册表项时接收。驱动程序检查正被访问的项的名称并确定是否需要特殊处理。如果发出请求的进程不在竖井中,则无需特殊处理。如 果发出请求的进程在竖井中,则检索发出该请求的竖井的合并项元数据。如果 正被访问的项名在合并项中,则执行特殊处理。如果在专用位置处存在项(竖 井专用的注册表项),则在转发该请求时使用该专用位置。如果在专用位置处 不存在项,则检查公共位置来寻找该项。如果在公共位置处存在项(全局注册 表项),则在转发该请求时使用该公共位置。如果在公共或专用位置处不存在 项,则返回信息以使得或者可返回错误(即,指示无法打开不存在的项的错误) 或者可创建该项。如果正被访问的项名不在合并项中,则不执行特殊处理。如果执行特殊处理,则将元数据与该项相关联。如果元数据在创建项操作期间与请求相关联并且打开该项的请求是成功-的,则将该元数据附加到该项。当项被关闭时,删除与该项相关联的任何元数 据。当客户机应用程序试图枚举打开的项的子项值时,调用特殊处理程序。检 索与该项相关联的任何元数据。如果找到元数据,并且该元数据指示该项是合并项,则将存在于每一个构成项中的项列表的内容返回给调用者。在某些实施例中用于查询项的注册表API通过传入索引并返回结果来实 现。对于给定索引,考虑构成项的内容,确定对于该索引应返回什么,并返回 该内容。跟踪枚举期间的每一个构成目录中的当前位置,并且每次都返回适当 的下一个值。即,返回来自一个构成项的所有结果。在还未枚举相同的项名的 情况下返回后续项的结果。如果调用者査看当前索引之下的索引,则重置内部 高速缓存的索引并重启处理。可枚举项中的子项或项中的值。子项或值如所请 求地返回给调用者本文档来自技高网...

【技术保护点】
一种用于执行合并注册表项中的注册表元素的虚拟删除的系统,包括: 为在竖井(202)中运行的进程(216、217)提供多组注册表项(206、204)或值的竖井专用合并视图(212)的操作系统(214),其中所述操作系统(214)通过监视 发自在所述竖井(202)中运行的进程(216、217)的注册表项或值访问请求(240)并且响应于检测到注册表项或值删除请求,执行为所述注册表项或值删除请求中所标识的元素创建删除标记的回调处理来创建所述竖井专用合并视图(212),其中为其创建所述删除标记的元素从所述多组注册表项(206、204)或值的竖井专用合并视图(212)中过滤,所述竖井专用合并视图(212)对于在所述竖井(202)中运行的进程(216、217)表现为包括所述多组注册表项或值中的条目的单个注册表。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:JL哈文斯FJ史密斯YA哈利迪M泰鲁利
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利