Virtual USB Tools - Advanced USB to TCP/IP network configurations for your USB usage scenario
Download Virtual USB Tools Hide this button

Overview

HHD Software Virtual USB Tools is a software solution for sharing or transferring USB devices over the TCP/IP network. It works by creating a virtual USB device on a client computer that acts exactly like the original USB device physically connected to a server computer.

The product consists of two components:

Virtual USB Server
This component must be installed on a server computer, that is, on a computer that has physically connected USB devices you want to share.
Virtual USB Client
This component must be installed on a client computer, the one you want to bring shared USB devices to.

Virtual USB Tools Features

The following key features are implemented by Virtual USB Tools:

Server Component

Once installed on a server computer, the product is ready to share any supported local USB device. The user may use Server UI Configuration Utility, Server Command-line Utility or built-in Server API to manage shared devices.

All devices are identified by their internal string identifiers. These identifiers are assigned by operating system and usually consist of Vendor ID, Model ID, serial number and/or connection location information.

NOTE

Please note that operating system can assign a different identifier to the same USB device connected to a different USB port. In such a case, Virtual USB Tools will also treat it as a different device.

Optionally, a secret authentication key may be assigned at the time an USB device is shared. The client will need to provide the same key when he connects in order for a connection attempt to be successful.

When USB device is shared, nothing happens on a server computer until a client connects. As soon as a successful connection is established, a shared USB device is blocked on a server computer and exclusive access is granted to a connected client. No programs running on a server computer can access shared USB device.

When client disconnects for any reason, or when the shared USB device is explicitly “unshared” on a server computer, the device is reset and becomes accessible on a server computer again.

Client Component

After the client component is installed on a client computer, a virtual USB host controller appears on it. The user may use Client UI Configuration Utility, Client Command-line Utility or built-in Client API to add new remote devices. A client specifies the name or IP address of a remote server, the device identifier and an optional authentication key in order to identify remote device. If the customer uses the UI configuration utility, he can use the server auto-discovery feature and also can see a list of devices shared by a server.

After the remote device is added, the client updates its configuration and begins establishing connection to a server. If connection attempt is unsuccessful (no network connectivity, shared USB device is disconnected on a server or mismatched authentication key), it waits for 1 second and then retries. Each time the interval it waits is doubled (that is, next time the wait is 2 seconds, 4 seconds and so on), until it reaches 30 seconds.

If connection is successful, a virtual USB device appears on a client computer. The OS will then proceed with normal device discovery, optionally loading and installing device drivers (if this is the first time this device is “connected” on a client computer). Current remote USB device status is reflected in configuration utility and is also available through the API.

If for any reason the remote device becomes unavailable, a “surprise device removal” is emulated on a client computer and Virtual USB Client starts trying to establish a new connection, as described above. As soon as the remote device becomes available again, the process repeats.