daGeri
Contributor
Contributor

Virtual USB Port Enumeration

We are currently evaluating Vmware Horizion View as an alternative for industrial computers in our production area. The goal is to address locally connected USB-to-Serial(4xRS-232/RS-485) interfaces (Moxa uPort 1450i) on a thin client with specific configuration for each single port.

We managed to passthrough the devices to the virtual desktop, but we're running into trouble with the enumeration of the devices in the Horizon View Client / Agent (Vmware View Virtual USB HUB). It looks like the enumeration of the connected USB devices inside the virtual enviroment is based on the sequence they get connected to the Thin Client, but not  on the device ID of the physical USB port they are connected to.

As  the port configuration of the MOXA boxes is based on the device ID of the involved physical USB port, it's absolutely essential for us to get this information to the virtual environment, I'm wondering if there is a way to change this behaviour?

Many thanks in advance!

Best Regards,

Gerald Mueller

Tags (1)
Reply
0 Kudos
peterbrown05
VMware Employee
VMware Employee

I’d like to clarify what Windows and View’s Virtual Hub do when generating Device IDs....

Device ID are either derived from the device’s serial number, or assigned by Windows.

In the case where the device has a serial (that is it contains a query-able string serial number resource) Windows will use that string in the device (or Device Instance Path), e.g. USB\VID_xxxx&PID_xxxx\[serial no].  This can also be seen in the hardware key created for a device, e.g. 

  HKLM\SYSTEM\CurrentControlSet\Enum\USB\VID_xxxx&PID_xxxx\[serial no]

If the device does not have a serial number then Windows generates this last part of the ID using the hub/port path, e.g. USB\VID_xxxx&PID_xxxx\x&xxxxxxx&x&x.

View’s Virtual Hub emulates this behaviour.  The big difference is that the virtual hub does not have child hubs.  It has 32 virtual ports.  Your observation that the port number assigned is dependent upon the sequence the devices are redirected is right.  View’s Hub tries to give devices that it has seen before the same port assignment.  The hub stores a previously assigned port against a devices VID_PID_[serial number].  On the guest see HKLM\System\CurrentControlSet\services\vmwvhub\Parameters.

The problem here is that if devices with same VID/PID (that do not have a serial number) are redirected, View’s Hub will not be able to distinguish one from another.

Maybe this helps you check out what is happening in your environment with your device...

(thanks for moving to discussions - helps have a better to-and-fro discussion)

Reply
0 Kudos