Extensible private driver interface
First Claim
1. A method of operating a computer comprising a first operating system component and a hardware device driver comprising a standard interface and at least one private interface, the hardware device driver driving a hardware device of the computer, the standard interface implementing standard command objects and the private interface implementing non-standard command objects designated by a vendor that produced the hardware device, wherein arbitrary user mode components communicate with arbitrary device drivers by passing command objects to the operating system component, the method comprising:
- responding to an interface inquiry command object from the operating system component on the computer, the interface inquiry command object being directed to the hardware device driver, wherein the responding is performed by the operating system component and comprises generating in the operating system component a data structure related to the hardware device driver, the data structure comprising private interface identification information and at least one non-standard command object implemented by the private interface, the private interface identification information identifying the at least one private interface of the hardware device driver to receive the non-standard command object;
receiving, by the operating system component, the non-standard command object from the user mode component, and using the data structure to address the non-standard command object to the at least one private interface of the hardware device driver identified by the private interface identification information; and
in response to receiving the at least one non-standard command object through the private interface, configuring the hardware device driver based at least in part on the non-standard command object.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer with an extensible framework for facilitating communication between a software component installed on the computer and a device driver that executes functions in response to vendor-specific command objects (e.g., OIDs). The framework defines data structures and a standardized format for defining and implementing private interfaces. After selecting a private interface that is commonly supported by a software component and a driver, a private communication path may be established by an operating system component to facilitate the transfer of command information from the software component to the driver. The private communication path allows commands packaged as OIDs to be routed from software components to intended drivers. By defining private interfaces which route commands from software components to intended drivers, the extensible framework mitigates potential incompatibilities that may arise when drivers created by different vendors include OIDs with the same OID value.
19 Citations
16 Claims
-
1. A method of operating a computer comprising a first operating system component and a hardware device driver comprising a standard interface and at least one private interface, the hardware device driver driving a hardware device of the computer, the standard interface implementing standard command objects and the private interface implementing non-standard command objects designated by a vendor that produced the hardware device, wherein arbitrary user mode components communicate with arbitrary device drivers by passing command objects to the operating system component, the method comprising:
-
responding to an interface inquiry command object from the operating system component on the computer, the interface inquiry command object being directed to the hardware device driver, wherein the responding is performed by the operating system component and comprises generating in the operating system component a data structure related to the hardware device driver, the data structure comprising private interface identification information and at least one non-standard command object implemented by the private interface, the private interface identification information identifying the at least one private interface of the hardware device driver to receive the non-standard command object; receiving, by the operating system component, the non-standard command object from the user mode component, and using the data structure to address the non-standard command object to the at least one private interface of the hardware device driver identified by the private interface identification information; and in response to receiving the at least one non-standard command object through the private interface, configuring the hardware device driver based at least in part on the non-standard command object. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer readable storage device having a plurality of computer-executable components that, when executed on a computer, comprise:
-
a software module generating a data structure having a vendor identifier, a unique identifier for a private interface, version information, and at least one command object; a device driver to drive a hardware device, the device driver comprising a standard interface and the private interface for executing at least one function defined by the at least one private command object in response to receiving the private command object through the private interface identified by the unique identifier, the standard interface implementing command objects defined by a driver interface specification, the private interface implementing private command objects, including the private command object, not defined by the driver interface specification, the private command objects implemented by the device driver having been specified by a producer of the hardware device; and an operating system that when executing provides, in accordance with the driver interface specification, a private communication path between the software module and the device driver, the private communication path being established for facilitating communicating the command information from the software module via the private interface to the device driver, the operating system using the unique identifier to route the private command object to the private interface. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A computing device comprising:
-
a driver framework, an operating system component, a hardware device, and a user mode component; the driver framework implementing a standard driver interface specification to provide arbitrary user mode components with access to arbitrary device drivers managed by the driver framework, the driver framework managing a device driver for the hardware device; the device driver comprising a standard interface according to the standard driver interface specification, the device driver further comprising a private interface not specified by the standard driver interface specification, the standard interface providing standard command objects specified by the standard driver interface specification for the arbitrary user mode components to invoke corresponding functions of the hardware device, the private interface providing non-standard command objects not specified by the standard driver interface specification for the arbitrary user mode components to invoke corresponding functions of the hardware device; the operating system component querying the device driver, via the driver framework, to obtain and store an identifier of the private interface and indicia of the non-standard command objects; and the operating system component receiving a non-standard command object from a user mode component, and in response, according to the stored indicia, sending the identifier of the private interface and the non-standard command object to the driver framework which in turn uses the identifier of the private interface to route the non-standard command object to the private interface. - View Dependent Claims (13, 14, 15, 16)
-
Specification