Patents by Inventor Thomas D. McGuire

Thomas D. McGuire has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7784044
    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.
    Type: Grant
    Filed: December 2, 2002
    Date of Patent: August 24, 2010
    Assignee: Microsoft Corporation
    Inventors: Garret J. Buban, Paul V. Donlan, Adrian Marinescu, Thomas D. McGuire, David B. Probert, Hoi H. Vo, Zheng Wang
  • Patent number: 7644111
    Abstract: In a content delivery scheme for target files, one or more recipes for each of the target files are encoded in an index. The index uses a framework that is able to represent content delivery schemes involving static containers, dynamic containers, self-contained containers, containers that are not self-contained, containers with internal delta dependency and containers with no internal delta dependency.
    Type: Grant
    Filed: May 2, 2006
    Date of Patent: January 5, 2010
    Assignee: Microsoft Corporation
    Inventors: Taqi Jaffri, Alexander V. Petrov, Michael V. Sliger, Thomas D. McGuire
  • Patent number: 7546594
    Abstract: A system and method for managing the installation of files on a computing device are provided. A client computing device obtains installation information identifying a version of a baseline installation component stored on the client computing device. The installation information also includes an installation component delta patch that is merged with the baseline installation component to generate an updated installation component. The updated installation component is utilized to install one or more files on the client computing device. Upon completion of the installation, the updated installation component can be deleted.
    Type: Grant
    Filed: December 15, 2003
    Date of Patent: June 9, 2009
    Assignee: Microsoft Corporation
    Inventors: Thomas D. McGuire, Derek P. Menzies, Michael V. Sliger, Derek Cheng, Mazhar Mohammed, Manojkumar Shende
  • Patent number: 7509636
    Abstract: A system and method for updating one or more files on a computing device are provided. A client computing device obtains update information including an index identifying particular delta patches with specific versions of installed files. Upon selecting which of the applicable updates will be implemented, an update agent on the client computing device performs an inventory to identify which version a file to be updated is installed on the machine. The update agent selects a corresponding delta patch and transmits the request to an update service.
    Type: Grant
    Filed: December 15, 2003
    Date of Patent: March 24, 2009
    Assignee: Microsoft Corporation
    Inventors: Thomas D. McGuire, Derek P. Menzies, Michael V. Sliger, Derek Cheng, Mazhar Mohammed, Peter A. Williams, Gary Henderson
  • Publication number: 20070260653
    Abstract: Information that describes two or more content delivery solutions for a particular set of target files is received in a computing environment. The solutions are associated with a container at least portions of which can be delivered to the computing environment. The container is dynamic and has internal delta dependency. An expansion mechanism at the computing environment, upon determining that more than one of the solutions is achievable in the computing environment, selects one of the achievable solutions for implementation.
    Type: Application
    Filed: July 21, 2006
    Publication date: November 8, 2007
    Applicant: Microsoft Corporation
    Inventors: Taqi Jaffri, Alexander V. Petrov, Michael V. Sliger, Thomas D. McGuire
  • Patent number: 6938109
    Abstract: Rather than comparing an old file with a new file to generate a set of patching instructions, and then compressing the patching instructions to generate a compact patch file for transmission to a user, a patch file is generated in a single operation. A compressor is pre-initialized in accordance with the old version of the file (e.g. in an LZ77 compressor, the history window is pre-loaded with the file). The pre-initialized compressor then compresses the new file, producing a patch file from which the new file can be generated. At the user's computer, a parallel process is performed, with the user's copy of the old file being used to pre-initialize a decompressor to which the patch file is then input. The output of the decompressor is the new file. The patch files generated and used in these processes are of significantly reduced size when compared to the prior art.
    Type: Grant
    Filed: April 28, 2000
    Date of Patent: August 30, 2005
    Assignee: Microsoft Corporation
    Inventors: Michael V. Sliger, Thomas D. McGuire, Jonathan A. Forbes
  • Publication number: 20040107416
    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.
    Type: Application
    Filed: December 2, 2002
    Publication date: June 3, 2004
    Applicant: Microsoft Corporation
    Inventors: Garret J. Buban, Paul V. Donlan, Adrian Marinescu, Thomas D. McGuire, David B. Probert, Hoi H. Vo, Zheng Wang
  • Patent number: 6496974
    Abstract: Rather than comparing an old file with a new file to generate a set of patching instructions, and then compressing the patching instructions to generate a compact patch file for transmission to a user, a patch file is generated in a single operation. A compressor is pre-initialized in accordance with the old version of the file (e.g. in an LZ77 compressor, the history window is pre-loaded with the file). The pre-initialized compressor then compresses the old file, producing a patch file from which the new file can be generated, as a single process. At the user's computer, a parallel process is performed, with the user's copy of the old file being used to pre-initialize a decompressor to which the patch file is then input. The output of the decompressor is the new file, again produced as a single process. The patch files generated and used in these processes are of significantly reduced size when compared to the prior art.
    Type: Grant
    Filed: April 28, 2000
    Date of Patent: December 17, 2002
    Assignee: Microsoft Corporation
    Inventors: Michael V. Sliger, Thomas D. McGuire, Jonathan A. Forbes
  • Patent number: 6493871
    Abstract: A method and system for downloading software update data for installing a revised software product on a client computer minimizes the amount of update data to be transmitted over the network by downloading only those files needed to put the client computer in the state for installing the product. In the beginning of the downloading process, the client computer obtains from a setup server an initial setup package that includes a setup program and a list of files required for installing the software product. The setup program running on the client computer then determines whether some current or earlier versions of those files required for installation already exist on the client computer, and compiles a request list of files needed for updating the client computer. The client computer sends the request list to a download server, which maintains a collection of update files and patches. In response to the request list, the download server downloads updating files to the client.
    Type: Grant
    Filed: September 16, 1999
    Date of Patent: December 10, 2002
    Assignee: Microsoft Corporation
    Inventors: Thomas D. McGuire, Michael V. Sliger, Daniel C. Welch, Rajendra H. Vishnumurty, Gabriel J. Aul, Oliver I. Wallace, Gregory W. Nichols, Alan B. Auerbach
  • Patent number: 6466999
    Abstract: A data compressor uses data known to exist on a destination computer for compressing an input data stream by encoding portions of the input data stream as references to matching portions of the known data. The known data is preprocessed to better correlate with the input data stream. The preprocessing includes identifying and modifying internal references in the known data, such as relative offsets and addresses of jump and call instructions in executable code or cross references and hyperlinks in documents. The preprocessing is driven by generating a set of data that describes specific individual modifications or alternatively indicates relationships between the known data and the input data stream, such as code or data block motion, from which individual modifications can be deterministically made.
    Type: Grant
    Filed: March 31, 1999
    Date of Patent: October 15, 2002
    Assignee: Microsoft Corporation
    Inventors: Michael V. Sliger, Thomas D. McGuire, Richard M. Shupak
  • Patent number: 6449764
    Abstract: Rather than comparing an old file with a new file to generate a set of patching instructions, and then compressing the patching instructions to generate a compact patch file for transmission to a user, a patch file is generated in a single operation. A compressor is pre-initialized in accordance with the old version of the file (e.g. in an LZ77 compressor, the history window is pre-loaded with the file), or other reference file available on the user's computer for purpose other than serving as a decompression aid. The pre-initialized compressor then compresses the old file, producing a patch file from which the new file can be generated. At the user's computer, a parallel process is performed, with the user's copy of the old file being used to pre-initialize a decompressor to which the patch file is then input. The output of the decompressor is the new file. The patch files generated and used in these processes are of significantly reduced size when compared to the prior art.
    Type: Grant
    Filed: April 28, 2000
    Date of Patent: September 10, 2002
    Assignee: Microsoft Corporation
    Inventors: Michael V. Sliger, Thomas D. McGuire, Jonathan A. Forbes
  • Patent number: 6243766
    Abstract: Rather than comparing an old file with a new file to generate a set of patching instructions, and then compressing the patching instructions to generate a compact patch file for transmission to a user, a patch file is generated in a single operation. A compressor is pre-initialized in accordance with the old version of the file (e.g. in an LZ77 compressor, the history window is pre-loaded with the file). The pre-initialized compressor then compresses the old file, producing a patch file from which the new file can be generated. At the user's computer, a parallel process is performed, with the user's copy of the old file being used to pre-initialize a decompressor to which the patch file is then input. The output of the decompressor is the new file. The patch files generated and used in these processes are of significantly reduced size when compared to the prior art.
    Type: Grant
    Filed: April 28, 2000
    Date of Patent: June 5, 2001
    Assignee: Microsoft Corporation
    Inventors: Michael V. Sliger, Thomas D. McGuire, Jonathan A. Forbes
  • Patent number: 6216175
    Abstract: Rather than comparing an old file with a new file to generate a set of patching instructions, and then compressing the patching instructions to generate a compact patch file for transmission to a user, a patch file is generated in a single operation. A compressor is pre-initialized in accordance with the old version of the file (e.g. in an LZ77 compressor, the history window is pre-loaded with the file). The pre-initialized compressor then compresses the old file, producing a patch file from which the new file can be generated. At the user's computer, a parallel process is performed, with the user's copy of the old file being used to pre-initialize a decompressor to which the patch file is then input. The output of the decompressor is the new file. The patch files generated and used in these processes are of significantly reduced size when compared to the prior art.
    Type: Grant
    Filed: June 8, 1998
    Date of Patent: April 10, 2001
    Assignee: Microsoft Corporation
    Inventors: Michael V. Sliger, Thomas D. McGuire
  • Patent number: 5862362
    Abstract: A network failure simulation tool provides simulation of a network failure suitable for automated software testing under software control. The tool intercepts packets being sent or received by a computer on a network by redirecting the packets from a network I/O architecture to substitute packet handlers. The tool also resumes normal network operation by again directing packets through actual packet handlers of the computer's network I/O architecture. Commands are provided for controlling suspension and resumption of network operation by the tool from an automated software testing program.
    Type: Grant
    Filed: October 5, 1995
    Date of Patent: January 19, 1999
    Assignee: Microsoft Corporation
    Inventors: Sivaramakichenane Somasegar, Thomas D. McGuire
  • Patent number: 5732265
    Abstract: An encoder and method, such as for use in CD-ROM pre-mastering software, optimizes storage on a computer readable recording medium by eliminating redundant storage of identical data streams for duplicate files. The encoder and method detect whether two files have equivalent data streams, and encodes such duplicate files as a single data stream referenced by the respective directory entries of the files. In the illustrated embodiment, the encoder and method detect duplicate files based on file size and a cyclic redundancy check calculated on the file's data stream or portion thereof.
    Type: Grant
    Filed: November 2, 1995
    Date of Patent: March 24, 1998
    Assignee: Microsoft Corporation
    Inventors: Frederick J. Dewitt, Thomas D. McGuire