Device redirection for remote systems

US9858126B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9858126-B2
Application numberUS-97066010-A
CountryUS
Kind codeB2
Filing dateDec 16, 2010
Priority dateDec 16, 2010
Publication dateJan 2, 2018
Grant dateJan 2, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present disclosure provides systems and method for redirecting control of a client side connected USB device from the client to the server in a remote system. Specifically, the present disclosure creates a simulated USB device at the server. The simulated USB device is treated as a proxy for a redirected USB device at the client. The client side redirected USB device is not treated as the USB device but, rather, acts as a pass through to facilitate communication between requesting applications and the client connected device. The simulated USB device allows an application to send requests for a local device to the simulated USB device at the server. The simulated USB device then processes the requests and forwards the requests to the local device connected to the client.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer implemented method for redirecting control of a device connected to a first data processing system to a second data processing system that is in communication with the first data processing system, the method comprising: discovering that the device is connected to the first data processing system; determining that control of the device should be redirected to the second data processing system assigning a globally unique identifier to the device; subsequent to determining that the device is identified by the globally unique identifier, installing a device driver at the first data processing system instead of installing an actual device driver for the device at the first data processing system; creating an instance of the device at the first data processing system; conveying a device parameter For configuring a simulated device from the device driver to the second data processing system, wherein the simulated device is identical to the instance of the device at the first data processing system and is configured to trigger the second data processing system to install an actual device driver at the second data processing system; receiving a first request and a second request at the device driver from the second data processing system, wherein the first request and the second request each comprise instructions for the device and the first request is associated with a first processing time and the second request is associated with a second processing time and the first processing time is earlier than the second processing time; sending the first request to the device at the first processing time; and sending the second request to the device at the second processing time. 2. The computer implemented method of claim 1 , wherein the method further comprises: subsequent to discovering the device, determining whether the device could be redirected; subsequent to determining that the device could be redirected, providing the device to a user for selection in a device selection window. 3. The computer implemented method of claim 1 , wherein the globally unique identifier is GUID common to an interface. 4. The computer implemented method of claim 1 , wherein the globally unique identifier is assigned at a filter driver outside of a hub driver. 5. The computer implemented method of claim 1 , further comprising: subsequent to creating the instance of the device, creating a generic device driver. 6. The computer implemented method of claim 1 , further comprising: compressing the device parameter using a remote desktop protocol. 7. The computer implemented method of claim 1 , wherein conveying the device parameter comprises sending the device parameter to an application that communicatively connects the second data processing system and the first data processing system. 8. The computer implemented method of claim 7 , wherein communicative connectivity is established by creating a virtual channel. 9. The computer implemented method of claim 1 , further comprising: subsequent to receiving the first request, determining, by the device driver, if additional information needs to be incorporated into the first request for the device to understand the first request. 10. The computer implemented method of claim 1 , further comprising: subsequent to receiving the second request at the device driver, determining, by the generic device driver, if additional information needs to be incorporated into the second request for the device to understand the second request. 11. The computer implemented method of claim 1 wherein the device is a USB device. 12. The computer implemented method of claim 1 wherein the device is a firewire device. 13. The computer implemented method of claim 1 wherein the first data processing system is a client computer. 14. The computer implemented method of claim 1 wherein the second data processing system is a server computer. 15. The computer implemented method of claim 1 wherein the device driver at the first data processing system is a generic device driver. 16. The computer implemented method of claim 1 further comprising simultaneously receiving the first request and the second request at the first data processing system. 17. The computer implemented method of claim 1 further comprising transforming an identifier associated with the device to the globally unique identifier for the device. 18. The computer implemented method of claim 17 , further comprising formatting the first request and the second request as USB requests. 19. A computer implemented method of controlling a device connected to a first computer by a second computer, the method comprising: identifying that the device has been selected for redirection; receiving one or more device parameters from a generic device driver on the first computer, wherein the generic device driver is based on a globally unique identifier for the device; using, wherein the device parameters are used to create a simulated device on the second computer; installing a device-specific driver for the device at the second computer based on the simulated device; sending a first request and second request for the device to the generic device driver on the first computer, wherein the first request and the second request comprise instructions for the device and each of the first request and second request is associated with a processing time and the processing time for the first request is earlier than the processing time of the second request; in response to sending the second request, receiving faked feedback for allowing a third request to be sent to the generic device driver on the first computer before the second request is received by the first computer. 20. The computer implemented method of claim 19 , further comprising compressing the first request received using a remote desktop protocol. 21. The computer implemented method of claim 19 wherein the driver is a USB driver. 22. The computer implemented method of claim 19 wherein the first computer is a client. 23. The computer implemented method of claim 19 wherein the second computer is a server. 24. A remote system comprising: a first data processing system; a second data processing system in communication with the first data processing system; a device connected to the first data processing system, wherein the device is associated with an identifier, and wherein the identifier of the device is transformed into a globally unique identifier when the device is selected for redirection; an instance of the device at the first data processing system, wherein the instance of the device is not treated as an actual device; a generic driver at the first data processing system, wherein the generic driver is configured to communicate with the instance of the device and a first application at the first data processing system; a simulated device at the second data processing system, wherein the simulated device is identical to the instance of the of the device and is treated as the actual device, and wherein the simulated device is configured to use one or more parameters specific to the device received from the generic driver and to send a first request to the instance of the device; a real driver at the second data processing system communicatively coupled to the simulated device; and a second application at the second data processing system communicatively coupled to the simulated devic

Assignees

Inventors

Classifications

  • G06F9/54Primary

    Interprogram communication · CPC title

  • Plug-and-play [PnP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9858126B2 cover?
The present disclosure provides systems and method for redirecting control of a client side connected USB device from the client to the server in a remote system. Specifically, the present disclosure creates a simulated USB device at the server. The simulated USB device is treated as a proxy for a redirected USB device at the client. The client side redirected USB device is not treated as the U…
Who is the assignee on this patent?
Dai Chung Lang, Stoyanov Vladimir, Chik Joy, and 2 more
What technology area does this patent fall under?
Primary CPC classification G06F9/54. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 02 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).