# US 2017/0289313 A1 · Combining redirected usb interfaces into a single composite device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0289313 A1
- Document ID: US20170289313A1
- Status: Published application
- Kind: A1
- Application number: 15/087,145
- Filed: 2016-03-31
- Published: 2017-10-05
- Earliest claimed: 2016-03-31
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Gokul Thiruchengode Vajravel
- Web page: https://patentgrep.com/patent/US20170289313A1

## CPC

- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- G06F 13/385: {for adaptation of a particular data processing system to different peripheral devices}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

When client-side USB redirection techniques redirect an interface as a simple device, multiple redirected interfaces can be combined on the server side into a single composite device. When redirecting an interface, the client-side proxy can include an interface hint identifying the interface number in the device arrival notification sent to the server-side agent. Upon receiving multiple device arrival notifications that each include an interface hint, the agent can recombine the appropriate information to generate composite device information which will represent a composite device that includes each interface. The agent can then provide this composite device information to the virtual bus driver to initiate the process of loading the appropriate drivers for the composite device. Accordingly, even though each redirected interface of the composite device is reported to the server-side agent individually, the operating system on the server will still see a composite device.

## Claims

### Claim 1

A method for combining multiple redirected USB interfaces into a single composite device, the method comprising:
detecting, at a client-side proxy, that a plurality of interfaces of a composite device are to be redirected to a server;
creating, for each of the plurality of interfaces, a device arrival notification that includes device information pertaining to the interface;
adding an interface hint to each device arrival notification, the interface hint identifying an interface number of the corresponding interface within the composite device; and
sending the plurality of device arrival notifications to an agent on the server.

### Claim 2 (depends on 1)

The method of claim 1, wherein the plurality of interfaces of the composite device are less than all the interfaces of the composite device such that at least one interface of the composite device is not redirected.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
receiving, by the agent on the server, the plurality of device arrival notifications;
detecting, for each device arrival notification, the presence of the interface hint in the device arrival notification; and
generating composite device information that includes the device information from each of the device arrival notifications such that the composite device information defines each of the plurality of interfaces as interfaces of a composite device on the server.

### Claim 4 (depends on 3)

The method of claim 3, wherein the device information pertaining to the interface that is included in each device arrival notification comprises a device descriptor that includes a device class field that is assigned a class code of the interface.

### Claim 5 (depends on 4)

The method of claim 4, wherein generating composite device information comprises generating a new device descriptor that includes a device class field that is assigned a class code representing a composite device.

### Claim 6 (depends on 5)

The method of claim 5, wherein generating composite device information comprises, for each device arrival notification:
generating a new interface descriptor pertaining to the new device descriptor;
extracting the class code of the interface from the device descriptor included in the device arrival notification; and
assigning the class code of the interface to an interface class field defined in the new interface descriptor.

### Claim 7 (depends on 6)

The method of claim 6, wherein generating composite device information comprises:
generating a new configuration descriptor that includes a number of interfaces field; and
setting the value of the number of interfaces field based on the number of device arrival notifications.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
detecting, at the client-side proxy, that a device is to be redirected;
creating an additional device arrival notification that includes device information pertaining to the device; and
sending the additional device arrival notification without adding an interface hint to the additional device arrival notification.

### Claim 9 (depends on 3)

The method of claim 3, further comprising:
receiving an additional device arrival notification;
detecting that the additional device arrival notification does not include an interface hint; and
routing the additional device arrival notification to a virtual bus driver on the server.

### Claim 10

A method for combining multiple redirected USB interfaces into a single composite device, the method comprising:
receiving, by an agent on a server, a plurality of device arrival notifications, each device arrival notification including device information pertaining to a redirected interface of a composite device;
detecting, for each device arrival notification, the presence of an interface hint in the device arrival notification; and
generating composite device information that includes the device information from each of the device arrival notifications such that the composite device information defines each of the interfaces as interfaces of a composite device on the server.

### Claim 11 (depends on 10)

The method of claim 10, wherein the device information pertaining to a redirected interface of a composite device represents the redirected interface as a simple device.

### Claim 12 (depends on 10)

The method of claim 10, wherein the interface hint in each device arrival notification defines an interface number assigned to the corresponding interface.

### Claim 13 (depends on 10)

The method of claim 10, wherein the device information pertaining to a redirected interface of a composite device comprises a device descriptor that includes a device class field that is assigned a class code of the interface.

### Claim 14 (depends on 13)

The method of claim 13, wherein generating composite device information that includes the device information from each of the device arrival notifications comprises:
generating a new device descriptor that includes a device class field that is assigned a class code representing a composite device.

### Claim 15 (depends on 14)

The method of claim 14, wherein generating composite device information that includes the device information from each of the device arrival notifications further comprises:
for each device arrival notification, generating a new interface descriptor that includes an interface class field, and assigning the class code of the corresponding interface to the interface class field.

### Claim 16 (depends on 15)

The method of claim 15, wherein generating composite device information that includes the device information from each of the device arrival notifications further comprises:
generating a new configuration descriptor that includes a number of interfaces field; and
setting the value of the number of interfaces field based on the number of device arrival notifications.

### Claim 17 (depends on 10)

The method of claim 10, further comprising:
receiving an additional device arrival notification that includes device information;
detecting that the additional device arrival notification does not include an interface hint; and
routing the device information from the additional device arrival notification to a virtual bus driver.

### Claim 18 (depends on 10)

The method of claim 10, further comprising:
routing the composite device information to a virtual bus driver to cause one or more drivers registered for the interfaces of the composite device to be loaded.

### Claim 19

One or more computer storage media storing computer executable instructions which when executed in a computing system implement a method for combining multiple redirected USB interfaces into a single composite device, the method comprising:
detecting, at a client-side proxy, that a plurality of interfaces of a composite device are to be redirected to a server;
creating, for each of the plurality of interfaces, a device arrival notification that includes a device descriptor having a device class field that is assigned a class code of the interface;
adding an interface hint to each device arrival notification, the interface hint identifying an interface number of the corresponding interface within the composite device;
sending the plurality of device arrival notifications to an agent on the server;
in response to detecting the interface hints included in the device arrival notifications, creating, by the agent, a new device descriptor that includes a device class field that is assigned a class code representing a composite device and an interface descriptor for each device arrival notification, each interface descriptor being assigned the class code of the corresponding interface.

### Claim 20 (depends on 19)

The computer storage media of claim 19, wherein the method further comprises:
creating, by the agent, a new configuration descriptor that includes a number of interfaces field that is assigned a value based on the number of device arrival notifications.
