Patent ID: 7690003

Claim:
A computer-readable storage medium having computer-executable instructions for performing steps for delivering data from a device driver to an application, comprising: executing the device driver having a data queue, the execution of the device driver controlled by a device driver thread; executing the application, the execution of the application controlled by an application thread; the device driver populating the data queue with data items, the data items being requested by the application for synchronous delivery from the device driver to the application, the device driver in communication with the data queue; determining an amount of data items in the data queue; if the amount of data items in the data queue meets or exceeds a threshold, the device driver synchronously delivering one or more data items from the data queue to the application in response to a synchronous data request from the application; and if the amount of data items in the data queue is below the threshold, stopping execution of the application thread and boosting an execution priority of the device driver thread, the boosted device driver thread populating the data queue with new data items; wherein the device driver comprises an Http.sys driver and the data items include Web requests received from a Transport Driver Interface (TDI) driver; wherein a Transport Driver Interface (TDI) driver for receiving the Web requests to be processed by the application, the TDI driver placing the received Web requests in a buffer for retrieval by the Https.sys driver, the Http.sys driver forwarding the received Web requests to the application upon execution of a receive call; wherein the computer-executable instructions further comprise instructions for modifying thread scheduling of a computer system with an API function, wherein the application calls the API function to promote the execution priority of the Http.sys driver thread and stop the execution of the application thread.