Patents by Inventor Conal McGarvey
Conal McGarvey 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: 10922249Abstract: Systems and methods are described for verifying functionality of a computing device. A plurality of I/O control codes usable to configure specified actions for a device under test is received. The I/O control codes that were completed without generating an error are determined. The I/O control codes that completed without generating an error and associated binding information are recorded. The I/O control codes that completed without generating an error and associated binding information are stored in a format usable for subsequent replay of the stored I/O control codes.Type: GrantFiled: January 15, 2019Date of Patent: February 16, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Cymonique Anita Kilmer, Conal McGarvey, Andrew D. Mikesell, Sebastian Lerner, Prashant Chahar
-
Publication number: 20200226082Abstract: Systems and methods are described for verifying functionality of a computing device. A plurality of I/O control codes usable to configure specified actions for a device under test is received. The I/O control codes that were completed without generating an error are determined. The I/O control codes that completed without generating an error and associated binding information are recorded. The I/O control codes that completed without generating an error and associated binding information are stored in a format usable for subsequent replay of the stored I/O control codes.Type: ApplicationFiled: January 15, 2019Publication date: July 16, 2020Inventors: Cymonique Anita KILMER, Conal McGarvey, Andrew D. Mikesell, Sebastian Lerner, Prashant Chahar
-
Patent number: 10481969Abstract: Systems and methods to conduct data-driven, system wide tests are disclosed. Instructions for testing an operating system are associated with one or more modules associated with the computing system. When a failed test is identified, a second set of instructions that accounts for the failed test is generated and executed, in order to efficiently identify and target specific issues. Results from these fully configurable testing methods can be communicated and utilized in further applications.Type: GrantFiled: June 30, 2017Date of Patent: November 19, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Conal McGarvey, Jakob F. Lichtenberg, Andrew D. Mikesell, Remy L. De Weduwe
-
Patent number: 10261925Abstract: Enhanced techniques for detecting programming errors in device drivers are provided. The techniques disclosed herein enable a system to measure a number of aspects of IRPs including, but not limited to, data identifying processed IRPs, data indicating concurrent IRPs, data identifying a stack location associated with a status of an IRP, and individual status values, which may indicate whether IRPs have failed, succeeded or pended. The disclosed techniques enable a system to determine when and where IRPs were sent or not sent to a stack of device objects and/or to individual device objects. The disclosed techniques enable the system to measure the processing of concurrent IRPs. By the use of filters that are positioned in predetermined locations within a stack, disclosed techniques can test and monitor drivers without imposing unduly burdensome loads on the system.Type: GrantFiled: June 23, 2017Date of Patent: April 16, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Conal McGarvey, Andrew D. Mikesell
-
Publication number: 20180373654Abstract: Enhanced techniques for detecting programming errors in device drivers are provided. The techniques disclosed herein enable a system to measure a number of aspects of IRPs including, but not limited to, data identifying processed IRPs, data indicating concurrent IRPs, data identifying a stack location associated with a status of an IRP, and individual status values, which may indicate whether IRPs have failed, succeeded or pended. The disclosed techniques enable a system to determine when and where IRPs were sent or not sent to a stack of device objects and/or to individual device objects. The disclosed techniques enable the system to measure the processing of concurrent IRPs. By the use of filters that are positioned in predetermined locations within a stack, disclosed techniques can test and monitor drivers without imposing unduly burdensome loads on the system.Type: ApplicationFiled: June 23, 2017Publication date: December 27, 2018Inventors: Conal MCGARVEY, Andrew D. MIKESELL
-
Publication number: 20180225165Abstract: Systems and methods to conduct data-driven, system wide tests are disclosed. Instructions for testing an operating system are associated with one or more modules associated with the computing system. When a failed test is identified, a second set of instructions that accounts for the failed test is generated and executed, in order to efficiently identify and target specific issues. Results from these fully configurable testing methods can be communicated and utilized in further applications.Type: ApplicationFiled: June 30, 2017Publication date: August 9, 2018Inventors: Conal McGarvey, Jakob F. Lichtenberg, Andrew D. Mikesell, Remy L. De Weduwe
-
Patent number: 8826238Abstract: Various embodiments provide per group verification techniques in which code may be verified against one or more rules on a group by group basis. In one or more embodiments relationships between portions of a module to be verified can be defined. By being aware of relationships between various code portions, various embodiments can divide a module into related groups and perform verification on the basis of the groups. Multiple groups can be derived based at least in part upon the relationships. Each group can then be verified separately for compliance with one or more rules. Verification results can be output for each of the groups.Type: GrantFiled: January 22, 2009Date of Patent: September 2, 2014Assignee: Microsoft CorporationInventors: Adam Shapiro, Conal McGarvey, Vladimir A. Levin, Jakob F. Lichtenberg
-
Publication number: 20100275186Abstract: Various embodiments provide techniques to segment program code that may be the subject of static analysis. In one or more embodiments, an algorithm is applied to an abstract representation of the program code to derive segments for the program code. In at least some embodiments, multiple segments can be derived based at least in part upon of one or more “boxed” portions of the program code that are designated to remain intact within the segments. Each segment can then be subjected individually to static analysis to verify compliance with one or more prescribed behaviors. Verification results can be output for each individual segment and the individual results can be combined to obtain results for the program code overall.Type: ApplicationFiled: April 28, 2009Publication date: October 28, 2010Applicant: MICROSOFT CORPORATIONInventors: Conal McGarvey, Vladimir A. Levin, Jakob F. Lichtenberg
-
Publication number: 20100186003Abstract: Various embodiments provide per group verification techniques in which code may be verified against one or more rules on a group by group basis. In one or more embodiments relationships between portions of a module to be verified can be defined. By being aware of relationships between various code portions, various embodiments can divide a module into related groups and perform verification on the basis of the groups. Multiple groups can be derived based at least in part upon the relationships. Each group can then be verified separately for compliance with one or more rules. Verification results can be output for each of the groups.Type: ApplicationFiled: January 22, 2009Publication date: July 22, 2010Applicant: Microsoft CorporationInventors: Adam Shapiro, Conal McGarvey, Vladimir A. Levin, Jakob F. Lichtenberg
-
Publication number: 20090319997Abstract: A verification engine for verifying compliance of a module of computer-executable instructions to various specifications or guidelines can utilize precondition rules to obtain information about the module so as to select appropriate rules with which the module will be verified. The precondition rules can inform an evaluation tool, which can obtain the specified information about the module. A preprocessor can then evaluate conditional statements and select one or more rules or environment modules based on the results of the evaluation of the precondition rules. Multiple levels of dependent precondition rules can be evaluated with a drill-down approach, where each dependency chain is evaluated until a terminal level, or with a layered approach, where all terminal level precondition rules are evaluated followed by precondition rules of increasingly higher levels.Type: ApplicationFiled: June 20, 2008Publication date: December 24, 2009Applicant: Microsoft CorporationInventors: Jakob Frederik Lichtenberg, Conal McGarvey, Eleonora O. Bounimova, Vladimir A. Levin