IP Library Granted Patent US 7,865,910
Granted Patent B2
US 7,865,910 · App. 11/495,873 · Granted Jan 4, 2011

Bypassing class drivers through virtual driver enablement

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,865,910
App. No.
11/495,873
Granted
Jan 4, 2011
Kind
B2
Abstract

A virtual driver is enabled and a class driver is bypassed to provide at least one functionality different than that of the bypassed class driver. A filter driver is initialized in the stack of a class driver in order to bypass the class driver. The filter driver receives inputs associated with the input device and/or application emulating an input device and passes the input data to a virtual driver. The virtual driver provides data to an operating system for functionality that is at least partially different than that of the bypassed class driver.

Claims (53)

1. A computer-implemented method for bypassing a class driver, the method comprising:

receiving a signature of an input device, wherein the signature is associated with a digitizer;

recognizing the digitizer as a mouse class device;

in response to recognizing the digitizer as a mouse class device, initializing a driver stack having a mouse class driver;

determining whether the driver stack is associated with a filter driver;

when the driver stack is associated with the filter driver,

initializing the filter driver in the driver stack below the mouse class driver to bypass the mouse class driver,

initializing a virtual driver to communicate with the filter driver and at least one configuration manager, wherein initializing the virtual driver includes opening an output report of the virtual driver for access by the filter driver, opening an input report of the virtual driver, and providing a handle of the input report to the at least one configuration manager;

receiving input data from the digitizer recognized as the mouse class device;

bypassing the mouse class driver by routing the input data through the filter driver to the output report of the virtual driver;

causing the virtual driver to specialize the input data according to at least one function of the virtual driver;

providing the specialized input data to the at least one configuration manager; and

causing a computer processor to process the specialized input data to recognize the specialized input data for an application in communication with the configuration manager.

2. The computer-implemented method of claim 1 , wherein the digitizer is at least one of a hardware digitizer and an emulated digitizer.

3. The computer-implemented method of claim 1 , wherein the signature is a flag indicator.

4. The computer-implemented method of claim 1 , wherein the input data from the digitizer is recognized as a mouse input.

5. The computer-implemented method of claim 1 , wherein causing the virtual driver to specialize the input data includes transforming coordinates associated with an input location of the input data.

6. The computer-implemented method of claim 1 , wherein causing the virtual driver to specialize the input data includes compensating for an offset associated with the input data.

7. The computer-implemented method of claim 1 , wherein causing the virtual driver to specialize the input data includes executing a data smoothing function to correct noise associated with the input data.

8. A computer-readable storage medium having computer executable instructions for bypassing a class driver, the instructions for performing operations comprising:

receiving a signature of an input device, wherein the signature is associated with an input device having a first class type;

recognizing the input device as an input device having a second class type;

in response to recognizing the input device as a device having a second class type, initializing a driver stack having a second class type driver;

determining whether the driver stack is associated with a filter driver;

when the driver stack is associated with the filter driver,

initializing the filter driver in the driver stack below the second class type driver to bypass the second class type driver,

initializing a virtual driver to communicate with the filter driver and at least one configuration manager;

receiving input data from the input device recognized as the input device having the second class type; and

bypassing the second class type driver by routing the input data through the filter driver to the virtual driver, wherein the input data is specialized by at least one of the filter driver and the virtual driver.

9. The computer-readable storage medium of claim 8 , wherein the first class type is a touch input class.

10. The computer-readable storage medium of claim 8 , wherein the second class type is a mouse class.

11. The computer-readable storage medium of claim 8 , wherein the input device is at least of a hardware input device and an emulated input device.

12. The computer-readable storage medium of claim 8 , wherein the input data is specialized by transforming coordinates associated with an input location of the input data.

13. The computer-readable storage medium of claim 8 , wherein the input data is specialized by compensating for an offset associated with the input data.

14. The computer-readable storage medium of claim 8 , wherein the input data is specialized by executing a data smoothing function to correct noise associated with the input data.

15. A system for bypassing a class driver, the system comprising:

at least one processor; and

at least one memory having computer executable instructions stored thereon, wherein the computer executable instructions are configured for performing operations, comprising:

receiving a signature of an input device;

recognizing the input device as a mouse class device;

in response to recognizing the input device as a mouse class device, initializing a driver stack having a mouse class driver;

determining whether the driver stack is associated with a filter driver;

when the driver stack is associated with the filter driver,

initializing the filter driver in the driver stack below the mouse class driver to bypass the mouse class driver,

initializing a virtual driver to communicate with the filter driver and at least one configuration manager;

receiving input data from the input device recognized as the mouse class device;

bypassing the mouse class driver by routing the input data through the filter driver to the virtual driver; and

causing specialization of the input data by at least one of the filter driver and the virtual driver.

16. The system of claim 15 , wherein the input device is at least one of a hardware digitizer and an emulated digitizer.

17. The system of claim 16 , wherein the input data from the digitizer is recognized as a mouse input.

18. The system of claim 15 , wherein causing specialization of the input data includes transforming coordinates associated with an input location of the input data.

19. The system of claim 15 , wherein causing specialization of the input data includes compensating for an offset associated with the input data.

20. The system of claim 15 , wherein causing specialization of the input data includes executing a data smoothing function to correct noise associated with the input data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2006
From: DUROJAIYE, OLUMUYIWA M.; DODGE, STEVEN P.; SCOTT, BRYAN D.; HOLAN, DORON J.; YAKUB, ELIYAS; TOWNSEND, REED L.; TSANG, MICHAEL
To: MICROSOFT CORPORATION
Reel/Frame 018506/0604 →