Peripheral devices in XenDesktop
Often, while connected to a remote session (see definitions), users need to access peripheral devices connected to their physical endpoints. For many of these devices, Citrix (or the device vendor) have build virtual channels that enable use of the device in a XenApp or XenDesktop session. These virtual channels are designed to optimize the device performance and make it available seamlessly in the session. For USB peripherals, generic USB redirection (sending raw USB data over the wire) is available as a helpful fallback for specialty devices.
This blog post will elaborate on the above statements.
- Other – this term will be used liberally to extend some of the lists below to accommodate for new technologies or use cases that might become relevant in the future.
- Peripheral device – Auxiliary device attached to or in inside (using USB or other) the User’s physical endpoint device.
- User physical endpoint device (‘device’, client or EP) – refers to the PC, Mac, laptop/macbook, mobile device or other used to connect to or establish a session.
- Session – the resource the user wants to use, this could be a Virtual desktop, a server application, a web application or other.
- Virtual Channels – Citrix technologies which enable HDX optimized use of peripheral devices in a session.
- USB generic redirection – Industry term describing the redirection of a physical USB port on a device to appear as a virtual USB port in the session. This redirection makes the USB peripheral device appear as locally connected on the session.
- Administrative settings – Settings seldom used that would clutter a Graphical User Interface (GUI) and are available to knowledgeable administrators via GPO, registry or other. Note: Per design, some Administrative settings might override or disable settings on the GUI.
HDX optimized use (Virtual Channels)
Here are some of the virtual channels available. Note that Citrix has a virtual channel SDK (https://www.citrix.com/downloads/citrix-receiver/sdks/virtual-channel-sdk.html) that has been used by device vendors to create customized virtual channels which are beyond the scope of this blog.
One important virtue of these is that allow the devices to be used both in the endpoint and in session.
Keyboard and mouse – These devices are used both in the endpoint and in the session, even at the same time, for example when accessing only server applications from an endpoint desktop.
Audio (speakers/mic) – likely to be needed on the endpoint as well as in session. HDX has a virtual channel and even synchronizes the volume. Some HDX multimedia optimizations play the sound directly on the endpoint and take advantage of the peripheral device being available in both places.
USB memory sticks, CDs, DVDs, even endpoint drives – HDX has a file access virtual channel allowing users to access ALL (or administratively selected) endpoint data storage devices.
Smart Cards – In the most secure environments (usually were smartcards are used) the smart card needs to be available on the endpoint and in session and removal of the smartcard is used for automatic lock or logoff.
Then, why USB redirection?
Here are some examples of when USB redirection might be required. Bear in mind once a USB peripheral device is redirected to a session it becomes unavailable to the user physical endpoint device until the session has disconnected and the USB device connection is returned to the endpoint. Additionally, more bandwidth is required to use the device (compared to using the virtual channel) and its use affected by roundtrip delay.
- Devices without a virtual channel – Some devices simply don’t have a virtual channel. Some examples are: gaming controllers, toys, developer access to mobile devices (e.g. Android ADB), legacy iTunes-iPhone communications, other.
- Specialty pointer devices – Space mouse, mice embedded with additional buttons. IMPORTANT NOTE: make sure you have more than one mouse on the physical endpoint device and do not redirect all the mice in order to always have control of the endpoint.
- Specialty Keyboard – If a keyboard includes other User Interface devices USB redirection might be required to take advantage of these. Note: Some keyboards include additional buttons which are simply multi-key shortcuts. These can be used with the virtual channels without having to redirect the keyboard.
- Webcam – Strongly discouraged to use USB redirection, but, an only if neccesary to access advanced camera software functions like Zoom, Pan, visual effects, etc. USE AT YOUR OWN RISK.
- Storage devices – When more than reading or writing files is required, like burning a CD/DVD, some encrypted file systems, other.
- Non-compliant peripheral devices or use cases – Citrix makes a best effort to optimize devices but we rely on these devices adhering to industry standards. If a device is non-compliant or it is used not according to the original intentions USB redirection might be the only way to use the device.
Additional links for USB redirection:
Virtual channels – list, priorities and multi-stream
Citrix Studio policies, adding Device Rules in regedit
More on Device Rules (endpoint side)
Configuring redirection for endpoints NOT using desktop viewer