Dynamic driver substitution
First Claim
1. A method of controlling access to a device in a computer system, which includes an operating system (OS) and in which access to the device takes place through a current driver, the method comprising:
- while the computer system is continuously powered on, the OS is continuously operational, and while maintaining a physical electrical connection state of the device, by executing a module of computer-executable code that is loaded in the computer system and is external to the device;
intercepting a request by the OS for a source identifier that is associated with the device and a source driver, which is initially the current driver;
dynamically causing a change of the current driver from the source driver to a substitute driver for the device by responding to the request by the OS by returning to the OS a substitute identifier that is different from the source identifier and is associated with the substitute driver, whereby the OS is caused to associate the substitute driver with the device.
1 Assignment
0 Petitions
Accused Products
Abstract
An agent loaded in a computer'"'"'s operating system (OS) simulates disconnection and reconnection of a device, with no need to actually disconnect the device logically from a computer. During simulated reconnection, when the OS requests the hardware ID of the device, the agent returns a substitute ID, which causes the OS to load a substitute driver. Substitution of the ID also allows driver substitution for a not yet logically connected device; in this cases, no simulated disconnection or reconnection is needed. Driver substitution is dynamic and reversible, with no need to restart the system or reboot the OS and substitution of a driver for one device of a type does not disturb other devices of the same type. The invention may be implemented entirely in software, with no need for hardware modifications or device customization.
-
Citations
26 Claims
-
1. A method of controlling access to a device in a computer system, which includes an operating system (OS) and in which access to the device takes place through a current driver, the method comprising:
while the computer system is continuously powered on, the OS is continuously operational, and while maintaining a physical electrical connection state of the device, by executing a module of computer-executable code that is loaded in the computer system and is external to the device; intercepting a request by the OS for a source identifier that is associated with the device and a source driver, which is initially the current driver; dynamically causing a change of the current driver from the source driver to a substitute driver for the device by responding to the request by the OS by returning to the OS a substitute identifier that is different from the source identifier and is associated with the substitute driver, whereby the OS is caused to associate the substitute driver with the device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A method of controlling access to a device that is connected to a computer system in which:
-
A) the computer includes an operating system (OS); B) access to the device takes place through a current driver; C) the device is identified by a first identifier, which the OS associates with the current driver for the device; D) the OS maintains a map of device identifiers to respective corresponding drivers; E) upon detection or notification of connection of an added device, the OS requests the identifier for the added device and associates with it the driver corresponding to the identifier for the added device, said driver thus becoming the current driver for the added device; F) upon detection or notification of disconnection of any connected device, the OS disassociates the current driver from the disconnected device; G) the method comprising installing an agent within the OS, the agent, by performing the following steps, dynamically changing the current driver for the device while the computer system is continuously powered on, the OS is continuously operational, and while maintaining a physical electrical connection state of the device; i) simulating disconnection of the device by notifying the OS of disconnection while maintaining logical connection of the device to the computer system; ii) simulating reconnection of the device, which step comprises; a) notifying the OS of connection of the device as if it were an added device; b) monitoring responses to the OS request for the identifier for the device; c) intercepting the response that contains the first identifier and substituting for that response a response that contains a substitute identifier, which is associated with a substitute driver; and d) passing the substitute identifier to the OS, the OS thereby causing the OS to assign the substitute driver as the current driver for the device. - View Dependent Claims (17)
-
-
18. A computer system for controlling access to a device in a computer, which includes an operating system and a current driver that control access to the device, the system comprising a computer program executing on the computer, wherein the computer program comprises a module of computer-executable code that is loaded in the computer system and is external to the device for:
-
intercepting a request by the OS for a source identifier that is associated with the device and a source driver, which is initially the current driver; and for dynamically causing a change of the current driver from the source driver to a substitute driver for the device by responding to the request by the OS by returning to the OS a substitute identifier that is different from the source identifier and is associated with the substitute driver, whereby the OS is caused to associate the substitute driver with the device, while the computer system is continuously powered on, the OS is continuously operational, and while maintaining a physical electrical connection state of the device. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
Specification