Patent ID: 8813098

Claim:
A client configured to interact with a local USB device comprising: a memory; a local host controller configured to: receive from a remote host controller driver of a server a transfer descriptor prototype; and receive from the remote host controller driver a completed transfer descriptor; wherein the local host controller is a standard USB host controller; an outbound interface to transmit messages to the remote host controller driver from the local host controller; an inbound interface to receive messages from the remote host controller driver for the local host controller; an assistance engine, coupled to the local host controller, the outbound interface and the inbound interface, and configured to: transform the completed transfer descriptor and the transfer descriptor prototype into a modified transfer descriptor in part by using a collection of rules; and submit the modified transfer descriptor to the local host controller without intervention from the remote host controller driver, wherein the client is a thin client that interacts with and is connected to the local USB device and wherein the local USB device is controlled by the remote host controller driver of the server via the local host controller of the thin client, wherein the server is connected to the thin client via a network, and wherein the remote host controller driver is a driver that takes messages from other drivers in a system and transfers them to hardware in a manner that is consistent with the hardware's communication requirements and transmits the transferred messages to the thin client.