Driver shimming
First Claim
Patent Images
1. A method comprising:
- for a computing device having a first operating system, the first operating system including a kernel, updating the first operating system to a second operating system, the second operating system including a kernel, the first operating system being a previous version of the second operating system;
obtaining a shim configured to enable communication between the second operating system and a driver, the driver being configured to communicate with the kernel of the first operating system in at least a manner that does not involve an a application programming interface associated with the first operating system, the driver being compatible with the first operating system, but incompatible with the second operating system absent the shim; and
routing communication between the second operating system and the driver through the obtained shim, including using the obtained shim to correct incompatibilities between the driver and the kernel of the second operating system by using the obtained shim to intercept at least some data that is used to support communication from the kernel of the second operating system to the driver without involving an application programming interface associated with the second operating system, translating at least some of the intercepted data, and providing at least some of the translated data to the driver.
2 Assignments
0 Petitions
Accused Products
Abstract
Driver shimming techniques are described. In one or more implementations, an identification is made as to which interfaces and callbacks are utilized by a shim obtained for a driver of a computing device. The identified interfaces and callbacks are wrapped by the shim of the computing device such that calls to the wrapped interfaces and callbacks are intercepted by the shim.
47 Citations
20 Claims
-
1. A method comprising:
-
for a computing device having a first operating system, the first operating system including a kernel, updating the first operating system to a second operating system, the second operating system including a kernel, the first operating system being a previous version of the second operating system; obtaining a shim configured to enable communication between the second operating system and a driver, the driver being configured to communicate with the kernel of the first operating system in at least a manner that does not involve an a application programming interface associated with the first operating system, the driver being compatible with the first operating system, but incompatible with the second operating system absent the shim; and routing communication between the second operating system and the driver through the obtained shim, including using the obtained shim to correct incompatibilities between the driver and the kernel of the second operating system by using the obtained shim to intercept at least some data that is used to support communication from the kernel of the second operating system to the driver without involving an application programming interface associated with the second operating system, translating at least some of the intercepted data, and providing at least some of the translated data to the driver. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computing device comprising:
-
one or more processors; and one or more computer readable storage media storing instructions thereon that are executable by the one or more processors to; update a first operating system on the computing device to a second operating system, the first operating system being a previous version of the second operating system, the first operating system having a kernel and the second operating system having a kernel; initiate installation of a driver that is compatible with the first operating system on the computing device, the driver being configured to communicate with the kernel of the first operating system in at least a manner that does not involve an application programming interface associated with the first operating system; identify the driver to be installed; based at least on the identification, determine whether the driver has compatibility issues with the second operating system; based at least on a determination that the driver has compatibility issues with the second operating system, determine whether a shim is available for the driver; based at least on a determination that a shim is available, obtain the determined shim for installation on the computing device; and install the shim on the computing device, thereby enabling the driver to communicate with the second operating system by routing communication between the second operating system and the driver through the shim, the shim correcting incompatibilities between the driver and the kernel of the second operating system by intercepting data used to support communication from the kernel of the second operating system to the driver without involving an application programming interface associated with the second operating system, translating at least some of the intercepted data, and providing at least some of the translated data to the driver. - View Dependent Claims (12, 13, 14)
-
-
15. One or more computer readable storage media storing instructions thereon that when executed by one or more processors cause a computing system to:
-
update a first operating system on the computing device to a second operating system, the first operating system being a previous version of the second operating system, the first operating system having a kernel and the second operating system having a kernel; initiate installation of a driver that is compatible with the first operating system on the computing device, the driver being configured to communicate with the kernel of the first operating system in at least a manner that does not involve an application programming interface associated with the first operating system; identify the driver to be installed; based at least on the identification, determine whether the driver has compatibility issues with the second operating system; based at least on a determination that the driver has compatibility issues with the second operating system, determine whether a shim is available for the driver; based at least on a determination that a shim is available, obtain the determined shim for installation on the computing device; and install the shim on the computing device, thereby enabling the driver to communicate with the second operating system by routing communication between the second operating system and the driver through the shim, the shim correcting incompatibilities between the driver and the kernel of the second operating system by intercepting data used to support communication from the kernel of the second operating system to the driver without involving an application programming interface associated with the second operating system, translating at least some of the intercepted data, and providing at least some of the translated data to the driver. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification