The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Aug. 24, 2010
Filed:
Dec. 02, 2002
Garret J. Buban, Carnation, WA (US);
Paul V. Donlan, Bellevue, WA (US);
Adrian Marinescu, Issaquah, WA (US);
Thomas D. Mcguire, Austin, TX (US);
David B. Probert, Woodinville, WA (US);
Hoi H. Vo, Bellevue, WA (US);
Zheng Wang, Bellevue, WA (US);
Garret J. Buban, Carnation, WA (US);
Paul V. Donlan, Bellevue, WA (US);
Adrian Marinescu, Issaquah, WA (US);
Thomas D. McGuire, Austin, TX (US);
David B. Probert, Woodinville, WA (US);
Hoi H. Vo, Bellevue, WA (US);
Zheng Wang, Bellevue, WA (US);
Microsoft Corporation, Redmond, WA (US);
Abstract
A system and method for automatically updating software components on a running computer system without requiring any interruption of service. A software module is hotpatched by loading a patch into memory and modifying an instruction in the original module to jump to the patch. A coldpatching technique places a coldpatch version of the module on disk for subsequent loading by processes, after hotpatching occurred. The coldpatch has the entry points to its functions at the same relative locations within the module as the hotpatch, which facilitates subsequent hotpatching. A hotpatch and coldpatch are automatically generated by deriving differences between changed and original binary files, and establishing the point to insert the jump. Validation is performed to ensure that the hotpatch is applied to the correct version, and that the coldpatch is replacing the correct version. Version management is also provided to control the number of patches via support rules.