Missing or Corrupted Output Data with USB Devices in Keyboard Emulation Mode

book

Article ID: CTX200363

calendar_today

Updated On:

Description

In ICA (Citrix Receiver) sessions, when using a USB reader device (such as bar code scanner or credit card reader) in keyboard emulation mode, the output might intermittently be incomplete or corrupted.

Environment

Caution! Using Registry Editor incorrectly can cause serious problems that might require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. Be sure to back up the registry before you edit it.

Resolution

Implement the KeyboardTimer ICA setting on the client system. The KeyboardTimer setting forces the USB and keyboard inputs to always be processed in the same order, resolving the issue.

For Citrix Workspace App (CWA) Admin Install, configure the setting only under HKLM (do not configure under HKCU).

Modify or create the KeyboardTimer string in the registry on the client Windows Operating System as shown below.

Note: Restart the Citrix Workspace App / Citrix Receiver for the setting to be effective.


For 32-bit Systems (Local Machine – HKLM)

Path:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Lockdown\Virtual Channels\Keyboard

Value Type: REG_SZ
Value Name: KeyboardTimer (modify if existing or create if not present)
Value Data: 10


For 64-bit Systems (Local Machine – HKLM)

Path:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\Engine\Lockdown Profiles\All Regions\Lockdown\Virtual Channels\Keyboard

Value Type: REG_SZ
Value Name: KeyboardTimer (modify if existing or create if not present)
Value Data: 10


Important:
In case of CWA Admin Install, configure the setting only in HKLM. Do not configure it in HKCU.


To Implement KeyboardTimer in the “default.ica” File on StoreFront

  1. Open the file:
    C:\inetpub\wwwroot\Citrix\StoreName\App_Data\default.ica in Notepad.

  2. Under the [WFClient] section, add the following line:
    KeyboardTimer=10

  3. Save the default.ica file.

  4. Open Command Prompt and run:
    iisreset


Problem Cause

With Receiver 3.x and later, the USB and Keyboard inputs is being processed asynchronously. This change was done with performance improvements in mind. The speed at which a keyboard-emulation device transmits the emulated keystrokes to the OS if beyond speeds of human typing can sometimes cause the missing/corrupted data.

Issue/Introduction

Missing or Corrupted Output Data with USB Devices in Keyboard Emulation Mode

Additional Information

Citrix Documentation - ICA Settings Reference - KeyboardTimer