System and method for controlling multiple computer peripheral devices using a generic driver
First Claim
1. A method for controlling a peripheral hardware device connected to a computer system, said computer system comprising a first operating system, acting as the host operating system, running on a first processor platform, and a generic device driver configured to operate on the combination of said first operating system and first processor platform, said method comprising:
- delivering said peripheral hardware device with an original peripheral hardware device driver file written for at least one of a second operating system and a second processor platform,installing the generic driver to handle all interfaces between the first operating system, the peripheral hardware device, and any software applications, all of which are configured to interact with the original peripheral device driver,extracting input to said generic device driver from said original peripheral device driver to provide the generic device driver withinformation about how to handle features and functionality of peripheral hardware device to allow the peripheral hardware device to work in the first operating system and on the first processor platform in a same way that the original peripheral hardware device would work in the second operating system and processor platform, the information about how to handle features and functionality including all application programming interface (API) calls, andinformation about how to emulate only those parts of the second operating system and the second processor platform that are required for the original peripheral device to operate on the first operating system and the first processor platform,the step of extracting comprising the steps of;
parsing said original peripheral device driver file and writing logic determined by said parsing into a parsed portable executable file;
disassembling a code section within said original peripheral device driver file using information taken from the parsed portable executable file and a disassembler appropriate to the combination of said second operating system and said second processor platform for which said original peripheral device driver was written to output a disassembled driver file; and
creating a device driver representation file comprising a representation of all information in the disassembled driver file in a format that is readable by, and can be interpreted by said generic device driver and that is different than the format of the information in the disassembled driver file, said information in the disassembled driver file including all assembly instructions in a portable executable file associated with the original peripheral device driver file,handling, by said generic device driver, using the device driver representation file, interfaces between the first operating system, the peripheral hardware device and at least one software application, all of which are configured to interact with said original peripheral device driver file,emulating, by said generic device driver, at least a part of said second operating system and said second processor that are required for the peripheral hardware device to operate on said first operating system and said first processor, andcausing the first operating system to communicate with the generic device driver to control the peripheral hardware device via system calls, kernel application programming interface calls and the device driver representation file,wherein said step of causing comprises presenting said generic device driver to said first operating system running in kernel mode as being a device driver best suited for a particular hardware device, in place of said original peripheral hardware device driver.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for controlling a peripheral hardware device connected to a computer system is disclosed, the computer system includes a first operating system, acting as the host operating system, running on a first processor platform, and a generic device driver operating on the combination of the first operating system and first processor platform. The method includes delivering the peripheral hardware device with an original peripheral hardware device driver file written for a second operating system or a second processor platform, handling, by the generic device driver, interfaces between the first operating system, the peripheral hardware device and a software application, all configured to interact with the original peripheral device driver file, and emulating, by the generic device driver, at least a part of the second operating system and the second processor that are required for the peripheral hardware device to operate on the first operating system and the first processor.
-
Citations
15 Claims
-
1. A method for controlling a peripheral hardware device connected to a computer system, said computer system comprising a first operating system, acting as the host operating system, running on a first processor platform, and a generic device driver configured to operate on the combination of said first operating system and first processor platform, said method comprising:
-
delivering said peripheral hardware device with an original peripheral hardware device driver file written for at least one of a second operating system and a second processor platform, installing the generic driver to handle all interfaces between the first operating system, the peripheral hardware device, and any software applications, all of which are configured to interact with the original peripheral device driver, extracting input to said generic device driver from said original peripheral device driver to provide the generic device driver with information about how to handle features and functionality of peripheral hardware device to allow the peripheral hardware device to work in the first operating system and on the first processor platform in a same way that the original peripheral hardware device would work in the second operating system and processor platform, the information about how to handle features and functionality including all application programming interface (API) calls, and information about how to emulate only those parts of the second operating system and the second processor platform that are required for the original peripheral device to operate on the first operating system and the first processor platform, the step of extracting comprising the steps of; parsing said original peripheral device driver file and writing logic determined by said parsing into a parsed portable executable file; disassembling a code section within said original peripheral device driver file using information taken from the parsed portable executable file and a disassembler appropriate to the combination of said second operating system and said second processor platform for which said original peripheral device driver was written to output a disassembled driver file; and creating a device driver representation file comprising a representation of all information in the disassembled driver file in a format that is readable by, and can be interpreted by said generic device driver and that is different than the format of the information in the disassembled driver file, said information in the disassembled driver file including all assembly instructions in a portable executable file associated with the original peripheral device driver file, handling, by said generic device driver, using the device driver representation file, interfaces between the first operating system, the peripheral hardware device and at least one software application, all of which are configured to interact with said original peripheral device driver file, emulating, by said generic device driver, at least a part of said second operating system and said second processor that are required for the peripheral hardware device to operate on said first operating system and said first processor, and causing the first operating system to communicate with the generic device driver to control the peripheral hardware device via system calls, kernel application programming interface calls and the device driver representation file, wherein said step of causing comprises presenting said generic device driver to said first operating system running in kernel mode as being a device driver best suited for a particular hardware device, in place of said original peripheral hardware device driver. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer readable medium storing a computer program capable of being executed by a computer processor, the computer program for controlling a peripheral hardware device connected to a computer system, said computer system comprising a first operating system, acting as the host operating system, running on a first processor platform, and a generic device driver configured to operate on the combination of said first operating system and first processor platform, and comprising instructions for performing the following steps:
-
delivering said peripheral hardware device with an original peripheral hardware device driver file written for at least one of a second operating system and a second processor platform, installing the generic driver to handle all interfaces between the first operating system, the peripheral hardware device, and any software applications, all of which are configured to interact with the original peripheral device driver, extracting input to said generic device driver from said original peripheral device driver to provide the generic device driver with information about how to handle features and functionality of the peripheral hardware device to allow the peripheral hardware device to work in the first operating system and on the first processor platform in a same way that the original peripheral hardware device would work in the second operating system and processor platform, the information about how to handle features and functionality including all application programming interface (API) calls, and information about how to emulate only those parts of the second operating system and the second processor platform that are required for the original peripheral device to operate on the first operating system and the first processor platform, the step of extracting comprising the steps of; parsing said original peripheral device driver file and writing logic determined by said parsing into a parsed portable executable file; disassembling a code section within said original peripheral device driver file using information taken from the parsed portable executable file and a disassembler appropriate to the combination of said second operating system and said second processor platform for which said original peripheral device driver was written to output a disassembled driver file; and creating a device driver representation file comprising a representation of all information in the disassembled driver file in a format that is readable by, and can be interpreted by said generic device driver and that is different than the format of the information in the disassembled driver file, said information in the disassembled driver file including all assembly instructions in a portable executable file associated with the original peripheral device driver file, handling, by said generic device driver, using the device driver representation file, interfaces between the first operating system, the peripheral hardware device and at least one software application, all of which are configured to interact with said original peripheral device driver file, emulating, by said generic device driver, at least a part of said second operating system and said second processor that are required for the peripheral hardware device to operate on the said first operating system and said first processor, causing the first operating system to communicate with the generic device driver to control the peripheral hardware device via system calls, kernel application programming interface calls and the device driver representation file, and presenting said generic device driver to said first operating system running in kernel mode as being a device driver best suited for a particular hardware device, in place of said original peripheral hardware device driver. - View Dependent Claims (8, 9)
-
-
10. A computer system comprising:
-
a peripheral hardware device; a first computer processor having an input connected to the peripheral hardware device, a memory storing a first operating system, acting as the host operating system, running on the first processor, and a generic device driver file configured to operate on the combination of said first operating system and the first processor, an original peripheral hardware device driver file stored on said memory for controlling said peripheral hardware device written for at least one of a second operating system and a second processor, wherein said generic device driver file controls interfaces between the first operating system, the peripheral hardware device and at least one software application, all of which are configured to interact with said original peripheral device driver file, wherein said generic device driver file contains computer instruction code configured to; emulate only a part of said second operating system and said second processor that are required for the peripheral hardware device to operate on the said first operating system and said first processor, handle all interfaces between the first operating system, the peripheral hardware device, and any software applications, all of which are configured to interact with the original peripheral device driver, extracting input to said generic device driver from said original peripheral device driver to provide the generic device driver with information about how to handle features and functionality of the peripheral hardware device to allow the peripheral hardware device to work in the first operating system and on the first processor platform in a same way that the original peripheral hardware device would work in the second operating system and processor platform, the information about how to handle features and functionality including all application programming interface (API) calls, and information about how to emulate parts of the second operating system and the second processor platform that are required for the original peripheral device to operate on the first operating system and the first processor platform, by parsing said original peripheral device driver file and writing logic determined by said parsing into a parsed portable executable file; disassembling a code section within said original peripheral device driver file using information taken from the parsed portable executable file and a disassembler appropriate to the combination of said second operating system and said second processor platform for which said original peripheral device driver was written to output a disassembled driver file; and creating a device driver representation file comprising a representation of all information in the disassembled driver file in a format that is readable by, and can be interpreted by said generic device driver and that is different than the format of the information in the disassembled driver file, said information in the disassembled driver file including all assembly instructions in a portable executable file associated with the original peripheral device driver file; and causing the first operating system to communicate with the generic device driver to control the peripheral hardware device via system calls, kernel application programming interface calls and the device driver representation file, wherein said step of causing comprises instructions, which when executed on the computer processor, present said generic device driver file to said first operating system running in kernel mode as being a device driver best suited for a particular hardware device, in place of said original peripheral hardware device driver file. - View Dependent Claims (11, 12, 13, 14, 15)
-
Specification