Jump to content
Welcome to our new Citrix community!
  • 0

Mapping a class 03 game controller into XenDesktop session simply does not work

Michael Zeisel



I have a problem mapping a game controller device into my Desktop session with XD5. I have setup the HDX policies in the Citrix Studio. Mass Storage and other devices work. Only the game cotroller won't appear in the "USB" section of the online plugIn.

First approach was to setup a policy with "Allow: " to simply allow everything. Then I thought to specify my device explicitly to the session as class 03 devices are handled proprietary considering the Citrix documentation.

Here's what I set up next:

"Allow: VID=1234 PID=1234 Class=03 Subclass=01"

no result; the USB device simply won't appear.

Am I missing an important step or can this be a CTX bug?

Please help! Many thanks,


Link to comment

8 answers to this question

Recommended Posts

  • 0


Can you try just "Allow: VID=1234 PID=1234 # My Game Controller" instead of including the class and subclass. Class 3 is HID which we block by default so there is likely a conflict here and thus the default rules will win.

Also, make sure you set this rule on both the client and the VDA so that the client knows to offer it up for redirection and the VDA knows to accept the redirection.

Hope that helps


Link to comment
  • 0

Hi Michael,

If you havent already done so, take a look at the link below. This provides full details for setting up USB and setting specific device rules including changing the VDA rules to accept those devices.


The following is taken from that link:

+Device rules are enforced on both the client and the Virtual Desktop Agent, so you must make changes on both sides otherwise devices may not be allowed through.+

+The product default rules are stored in HKLM\SOFTWARE\Citrix\PortICA\GenericUSB Type=String Name="DeviceRules"+

The default policy configuration is as follows:

{noformat}+DENY: class=02 # Communications and CDC-Control
DENY: class=09 # Hub devices
DENY: class=0a # CDC-Data
DENY: class=0b # Smartcard
DENY: class=e0 # Wireless controller
ALLOW: # Otherwise allow everything else+{noformat}

*Do not edit the product default rules*. The recommended way to change them is to use the GPO overrides described below, because these are evaluated before the default rules.

+The administrator override rules are stored in:+

HKLM\SOFTWARE\*Policies\*Citrix\PortICA\GenericUSB Type=String Name="DeviceRules"

Note the different location in the registry hive above (highlighted).



Link to comment
  • 0

Hi Andy,

I created the regkey on the virutalized client, but it still does not work;

the thing I'm a little bit confused with is that the whole key

HKLM\SOFTWARE\Policies\Citrix\PortICA\GenericUSB Type=String Name="DeviceRules"

was not existing at all (including "PortICA\GenericUSB") . I manually created it according to my device ids, but still no change.

Just to sum up what I have now:

1. HDX Policy in Citrix Studio to allow my device:

Allow: VID=1234 PID=1234 # my device

2. regkey on the virtualized WIN7 client where the Citrix Agent is running:

HKLM\SOFTWARE\Policies\Citrix\PortICA\GenericUSB Type=String Name="DeviceRules" with value

"Allow: VID=1234 PID=1234 # my device"

did I miss something?

kind regards, Michael

Link to comment
  • 0

Hi Michael,

I don't suppose you are running 64 bit client and/or VDA are you? If so the rules need to be created under Wow6432Node.

You say that other devices are working. Can I just check that you are seeing them in the USB drop-down on the Desktop Viewer and that you can select/unselect them to redirect and bring back to the client?

The HKLM\SOFTWARE\Polices\PortICA\GenericUSB key is created on the VDA and NOT the client. To clarify, the client is what you connect from+ and the VDA is what you connect +to. Apologies if I am teaching you to **** eggs but I'm a little confused by your use of the term client in point 2 of the above post.

In summary, you need the following in place:

1. The policy "Client USB device redirection" set to Allowed
2. The policy "Client USB device redirection rules" set to Allow: VID=1234 PID=1234 # device (or you can set this manually on the client by following the specific client administrators guide)
3. The registry key \Policies\Citrix\PortICA\GenericUSB\\DeviceRules set to Allow: VID=1234 PID=1234 # device (taking into account whether or not you are running a 64bit VDA or not)

If you are using the policy method of setting the regkey on the client I would check that this is actually getting set correctly. You can find the exact location by reviewing the client administrators guide and searching for USB.

Aside from that I'm not sure what is happening. The next step after checking all of the above would be to get CDF tracing which is then beyond my field of expertise I'm afraid.



Link to comment
  • 0

Hi Andy,

I finally got it working...here are my final settings:

1. The policy "Client USB device redirection" set to "Allowed"
2. On the client where the Online PlugIn is installed go to
HKLM\Software\Citrix\Ica Client\GenericUSB\
3. Open the regkey "DeviceRules" and move the line that starts with "ALLOW:" before the first "DENY:" line

all other settings, f.e. the regkey on the VDA client and the "Client USB device redirection rules" on the XenDesktop Studio do not make any difference (the redirection also works, if you let the rules 'blank').

The next thing I found out is that obviously "allow" certain devices does not work, while "deny" certain devices does.

Assuming that your described steps are the correct / clean way to include / exclude specific USB devices I would expect this behavior to be a bug. If you need my controller device for verification please let me know and I send you one over.

anyway thx for your support!

kind regards, Michael

Link to comment
  • 0

Hi Michael,

By the looks of it, you've modified the default client rules there to effectively allow anything, including all of the device types that we block.

This may introduce undesireable results if clients, especially laptops, make connections where their network card for instance is connected via internal USB.

What should happen is that the policy you set on Desktop Studio should create a regkey on the client at HKLM\Software\*Policies\*Citrix\ICA_Client\USB and this should include the Allow: VID= PID= #device

As each device is inserted it is considered against the policy by using the device descriptors that are communicated by the device itself and they are compared to the policy settings that have been defined. The rules are checked one by one and the first match is considered definitive. Devices will be checked against HKLM\Software\*Policies\*Citrix\ICA_Client\USB\DeviceRules first and then on HKLM\Software\Citrix\ICA_Client\GenericUSB\DeviceRules.

We strongly recommend that you not modify the default rules!

I'll speak to our policies expert and see if we can repro this through Desktop Studio. You may also wish to use the modelling tool to check what exactly is being set on the clients as a result of your policy.

If needs be, please manually create the \Policies\Citrix\ICA_Client\USB\DeviceRules key and try again.



Link to comment
  • 0

Have a look at https://support.citrix.com/article/CTX234916

On a Windows Client there is a registry key (HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\GenericUSB\DeviceRules) which denys some HDI Classes.

DeviceRules registry setting take precedent over Citrix policies in Studio, AD and Receiver.admx policies on the client computer.


After hours of searching and one hour remote session with citrix support i got pointed there.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...