WebUSB Access for Redirected USB Devices in VDI

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtual desktop infrastructure (VDI) environments, USB device redirection technologies face challenges in enabling WebUSB access for redirected USB devices, as many USB devices are not designed to use the Winusb.sys function driver, limiting browser-based access to these devices.

Innovation Solution

A server-side agent modifies the device descriptors during enumeration to force the loading of Winusb.sys as the function driver, enabling WebUSB access by reporting a subsequent USB standard version and simulating the presence of a Microsoft OS feature descriptor with a compatible ID of WINUSB, thereby integrating the device into the WebUSB API.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If USB device redirection is implemented in VDI environments, then USB devices become accessible within virtual desktops, but WebUSB access is not enabled for redirected devices because they do not use the Winusb.sys function driver

Engineering Contradiction:
ImproveWebUSB access capabilityVSAvoiddevice descriptor modification
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a server-side agent as an intermediary component that intercepts and modifies device descriptors during USB device enumeration. This agent acts as a mediator between the redirected USB device and the Windows USB subsystem, forcing the Winusb.sys function driver to be loaded regardless of the device's original driver configuration, thereby enabling WebUSB access without modifying the actual USB device hardware or firmware

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent modifies specific parameters within the device descriptor structure, particularly changing the bcdUSB version parameter from the original value to 0x0210 or higher. This parameter change triggers the Windows USB subsystem to load the Winusb.sys function driver, which provides WebUSB API support. The modification transforms the device's interface parameters to enable compatibility with WebUSB requirements

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If device descriptors are modified to force Winusb.sys loading, then WebUSB access is enabled, but the original device descriptor information is altered

Engineering Contradiction:
ImproveWebUSB compatibilityVSAvoidoriginal device descriptor
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The server-side agent performs preliminary modification of the device descriptor during the USB device enumeration process, before the device is fully recognized by the Windows subsystem. By intercepting the enumeration process and modifying the descriptor at this early stage, the agent ensures that the Winusb.sys driver is loaded with the correct device information intact, preventing information loss while enabling WebUSB compatibility

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a modified copy of the device descriptor that includes the necessary changes to enable Winusb.sys loading, while preserving the original device's functional characteristics. The server-side agent works with a copy of the descriptor structure, modifying only the necessary fields (bcdUSB version, MS OS feature descriptor) without altering the core device identification and functional parameters

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If Winusb.sys is forced as the function driver, then any USB device can be accessed via WebUSB API, but devices not designed for Winusb.sys may have compatibility issues

Engineering Contradiction:
ImproveUniversal WebUSB accessVSAvoiddevice driver compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies universality by forcing the Winusb.sys function driver to be loaded for all redirected USB devices, regardless of their original driver configuration or intended usage. This universal approach enables any USB device to be accessed through the WebUSB API from a browser, providing multi-functional access capability. The server-side agent ensures that the driver loading process respects device capabilities while maintaining universal accessibility

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10489311B1Managing webUSB support for local and redirected USB devices
Publication Date: 2019.11.26 DELL PROD LP
  • US10489311B1 patent drawing
  • US10489311B1 patent drawing
  • US10489311B1 patent drawing

AI summary

WebUSB access can be managed for local and redirected USB devices. To enable WebUSB access to a redirected USB device, the server-side agent can force the Winusb.sys function driver to be loaded on the device stack of the USB device by modifying the device's descriptors that are reported during enumeration. To enable WebUSB access to a local USB device, a hook driver can perform similar modifications during enumeration to thereby force the Winusb.sys function driver to be loaded as the function driver on the device stack. The agent or hook driver can also block WebUSB access to a USB device by removing the WebUSB platform capability descriptor during enumeration and/or by blocking requests to access the USB device that originate from a browser process.