微软Windows操作系统文件版本是否包含所有早期的修补程序?

查看Microsoft修补程序时,以下措辞使我绊倒。

此修补程序的英文版具有下表中列出的文件属性(或更新的文件属性)。

这是否意味着对于适当的操作系统,任何后续版本的文件将包含修复?

在这种特定情况下(此问题是由Windows 2003 CTCP修补程序发芽)以下版本的tcpip.sys包括修补程序KB949316。

 Windows Server 2003 Service Pack 2, x86-based versions File name File version File size Date Time Platform Tcpip.sys 5.2.3790.4241 390,144 21-Feb-2008 10:42 x86 

此特定服务器上的tcpip.sys版本是5.2.3790.4573 。 这是否意味着我的文件版本特别包含此修补程序实现的function?

(因为我们正在谈论一个特定的修补程序,我还注意到,这个特定的包括一个registry项。是实现此修复程序只安装修补程序包或手动添加registry项的最佳方法?

我不知道这是否回答你的具体问题…但我喜欢这个问题,足以研究它,发现这一点:

http://blogs.msdn.com/b/ntdebugging/archive/2008/10/21/windows-hotfixes-and-updates-how-do-they-work.aspx

具体(如果链接死了):

安装修补程序

默认情况下,Windows系统上的所有组件都将在每个主要版本之后的GDR分支上启动。 从Windows Update安装GDR组件的更新时,会使用GDR版本进行升级。

当您安装特定的修补程序时,修补程序包中的文件和组件将迁移到LDR分支。 此时,该特定组件被标记为LDR组件。 如果您通过此组件安装了更新的更新,则Windows维修技术将自动从LDR分支安装相应的最新版本。 这是可能的,因为每个更新包都包含组件的GDR和LDR版本。

一旦组件被标记为LDR组件,回到GDR分支的唯一方法就是卸载该组件的所有修补程序,或者移到下一个可用的服务包。

如果用户安装了Hotfix,然后又安装了下一个Service Pack,会发生什么情况? 那么,在这种情况下,它取决于修补程序和它的build立时间。

  1. 如果修补程序是在Service Pack之前构build的,则该组件将移至Service Pack中包含的GDR版本。

  2. 如果修补程序是在Service Pack之后构build的,则该组件将被迁移到该组件的post-service pack版本,并将保留在原来所在的同一分支上。

为了使这个工作,这些包包含RTM GDR版本,RTM修补程序分支和每个二进制文件的SP1修补程序和GDR版本。

为Windows构build的所有修补程序都是通过分支进行累积的,即新的更新将包含新的修补程序以及该分支的所有以前的修复程序。 参考上面的图表,安装修复#4可以修复GDR分支上的#2和#4。 如果组件位于LDR分支上,则用户将得到修复#1-4。

最后,服务技术必须处理需要旧版修补程序function的情况(例如,上图中的“修复#1”),但是您可能已经安装了“修复#4”,这可能是一个重要的安全更新。 会发生什么情况是当安装了修复程序的GDR分支时,它还会在系统上放置相同修补程序的修补程序版本的副本。 当您运行Hotfix#1的安装程序时,它会检测到已经安装了该文件的较新版本,但它也检测到它需要将其迁移到先前存储在系统上的二进制文件的修补程序版本。 结果是,您最终得到Fix#4的修补程序二进制文件,该修补程序包含您需要的修复程序以及一组累积的安全修复程序。

希望能帮助你。

是的,你的版本比qfe版本更大,这意味着你已经修补了,regkey只适用于xp。