Apparatus and method for swapping devices while a computer is running
First Claim
1. A method for enumerating a first device present in a computer system to make the first device recognizable to the computer system, the computer system having a memory and an operating system which uses a data structure stored in the memory for establishing a working configuration of the computer system, the data structure having one or more device nodes corresponding to devices present in the computer system, said data structure being separate from a registry of the operating system, the method comprising the steps of:
- providing an indication to the operating system that the first device has been inserted into the computer system while the computer system is in operation;
enumerating a first device controller for controlling the first device in response to the indication;
initializing a first device controller driver associated with the first device controller in response to the enumeration of the first device controller;
locating, with the initialized first device controller driver, an enumerator associated with the first device controller; and
enumerating the first device with the located enumerator, wherein the first device controller driver is only capable of locating the enumerator associated with the first device controller when the first device controller driver is initialized.
7 Assignments
0 Petitions
Accused Products
Abstract
A system for exchanging devices installed in a computer system allows users to make an exchange of devices while the computer system is running or in a sleeping state. The system is able to recognize, access and use the newly added device without restarting or rebooting the computer system.
83 Citations
31 Claims
-
1. A method for enumerating a first device present in a computer system to make the first device recognizable to the computer system, the computer system having a memory and an operating system which uses a data structure stored in the memory for establishing a working configuration of the computer system, the data structure having one or more device nodes corresponding to devices present in the computer system, said data structure being separate from a registry of the operating system, the method comprising the steps of:
-
providing an indication to the operating system that the first device has been inserted into the computer system while the computer system is in operation;
enumerating a first device controller for controlling the first device in response to the indication;
initializing a first device controller driver associated with the first device controller in response to the enumeration of the first device controller;
locating, with the initialized first device controller driver, an enumerator associated with the first device controller; and
enumerating the first device with the located enumerator, wherein the first device controller driver is only capable of locating the enumerator associated with the first device controller when the first device controller driver is initialized. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
powering on the first device after the first device has been connected to the computer system; and
connecting any data signals which are transmitted between the first device and the first device controller.
-
-
8. The method according to claim 1, prior to the step of connecting the first device, further comprising the steps of:
-
determining whether a second device in the computer system is currently being accessed;
removing the device node corresponding to the second device and a device node corresponding to a controller for controlling the second device from the data structure;
isolating any data signals which are transmitted between the second device and the second device controller from being transmitted from the second device controller to the second device; and
powering off the second device.
-
-
9. The method according to claim 8, wherein the step of removing the device nodes corresponding to the second device and the second device controller includes the substep of unloading all drivers associated with the second device and the second device controller.
-
10. The method according to claim 8, wherein the first device controller and the second device controller are the same controller.
-
11. The method according to claim 8, further comprising the step of connecting the isolated data signals to the first device.
-
12. The method according to claim 1, wherein the first device is one of a floppy drive, a hard drive, and a CD-ROM drive.
-
13. The method according to claim 1, wherein the first device controller is one of an IDE drive controller and a floppy drive controller.
-
14. The method according to claim 8, wherein the second device is one of a floppy drive, a hard drive, and a CD-ROM drive.
-
15. The method according to claim 8, wherein the second device controller is one of an IDE drive controller and a floppy drive controller.
-
16. A computer program product, comprising:
-
a computer usable medium having computer readable program code modules embodied therein for enumerating a first device present in a computer system to make the first device recognizable to the computer system, the computer system having a memory and an operating system which uses a data structure stored in the memory for establishing a working configuration of the computer system, the data structure having one or more device nodes corresponding to devices present in the computer system, said data structure being separate from a registry of the operating system, the computer program product comprising;
a first enumeration module for enumerating a first device controller for controlling the first device after inserting the first device into the computer system while the computer system is in operation;
an initialization module for initializing a first device controller driver associated with the first device controller in response to the enumeration of the first device controller;
a locator module for identifying, with the initialized first device controller driver, an enumerator associated with the first device controller; and
a second enumeration module for enumerating the first device with the located enumerator associated with the first device controller, wherein the first device controller driver is only capable of locating the enumerator associated with the first device controller when the first device controller driver is initialized. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
a power module for powering on the first device after the first device has been connected to the computer system; and
a switch module for connecting any data signals which are transmitted between the first device and the first device controller.
-
-
23. The computer program product according to claim 16, further comprising:
-
a query module for determining whether a second device in the computer system is currently being accessed;
a removal module for removing the device node corresponding to the second device and a device node corresponding to a controller for controlling the second device from the data structure;
an isolation module for isolating any data signals which are transmitted between the second device and the second device controller from being transmitted from the second device controller to the second device;
a power module for powering off the second device, such that the second device can be removed from the computer system.
-
-
24. The computer program product according to claim 23, wherein the first device controller and the second device controller are the same controller.
-
25. The computer program product according to claim 23, further comprising a switch module for connecting the isolated data signals to the first device.
-
26. The computer program product according to claim 23, wherein the removal module includes a submodule for unloading all drivers associated with the second device and the second device controller.
-
27. The computer program product according to claim 16, wherein the first device is one of a floppy drive, a hard drive, and a CD-ROM drive.
-
28. The computer program product according to claim 16, wherein the first device controller is one of an IDE drive controller and a floppy drive controller.
-
29. The computer program product according to claim 23, wherein the second device is one of a floppy drive, a hard drive, and a CD-ROM drive.
-
30. The computer program product according to claim 23, wherein the second device controller is one of an IDE drive controller and a floppy drive controller.
-
31. A computer system for enumerating a first device present in a computer system to make the first device recognizable to the computer system, the computer system having a memory and an operating system which uses a data structure stored in the memory for establishing a working configuration of the computer system, the data structure having one or more device nodes corresponding to devices present in the computer system, said data structure being separate from a registry of the operating system, the computer system comprising:
-
a first component to provide an indication to the operating system that the first device has been inserted into the computer system while the computer system is in operation;
a second component to enumerate a first device controller for controlling the first device in response to the indication;
a third component to enumerate a first device controller driver associated with the first device controller in response to the enumeration of the first device controller;
a fourth component to locate, with the initialized first device controller driver, an enumerator associated with the first device controller; and
a fifth component to enumerate the first device with the located enumerator, wherein the first device controller driver is only capable of locating the enumerator associated with the first device controller when the first device controller driver is initialized.
-
Specification