Citrix Virtual Apps and Desktops 7 2402 LTSR

Canales virtuales de Citrix ICA®

Advertencia:

La edición incorrecta del registro puede causar problemas graves que podrían requerir la reinstalación de su sistema operativo. Citrix no puede garantizar que los problemas derivados del uso incorrecto del Editor del Registro puedan resolverse. Utilice el Editor del Registro bajo su propia responsabilidad. Asegúrese de hacer una copia de seguridad del registro antes de editarlo.

¿Qué son los canales virtuales de ICA?

Gran parte de la funcionalidad y la comunicación entre la aplicación Citrix Workspace™ y los servidores Citrix Virtual Apps and Desktops™ se produce a través de canales virtuales. Los canales virtuales son una parte necesaria de la experiencia informática remota con los servidores Citrix Virtual Apps and Desktops. Los canales virtuales se utilizan para:

  • Audio
  • Puertos COM
  • Discos
  • Gráficos
  • Puertos LPT
  • Impresoras
  • Tarjetas inteligentes
  • Canales virtuales personalizados de terceros
  • Vídeo

A veces se lanzan nuevos canales virtuales con nuevas versiones de los servidores Citrix Virtual Apps and Desktops y los productos de la aplicación Citrix Workspace para proporcionar más funcionalidad.

Canales virtuales(/es-es/citrix-virtual-apps-desktops/2402-ltsr/media/ica-virtual-channels-1.png)

Un canal virtual consta de un controlador virtual del lado del cliente que se comunica con una aplicación del lado del servidor. Citrix Virtual Apps and Desktops se envía con varios canales virtuales incluidos. Están diseñados para permitir que los clientes y los proveedores de terceros creen sus propios canales virtuales utilizando uno de los kits de desarrollo de software (SDK) proporcionados.

Los canales virtuales proporcionan una forma segura de realizar diversas tareas. Por ejemplo, una aplicación que se ejecuta en un servidor de Citrix Virtual Apps que se comunica con un dispositivo del lado del cliente o una aplicación que se comunica con el entorno del lado del cliente.

En el lado del cliente, los canales virtuales corresponden a controladores virtuales. Cada controlador virtual proporciona una función específica. Algunos son necesarios para el funcionamiento normal y otros son opcionales. Los controladores virtuales operan en el nivel del protocolo de la capa de presentación. Puede haber varios protocolos activos en cualquier momento multiplexando los canales proporcionados por la capa de protocolo de Windows Station (WinStation).

Las siguientes funciones están contenidas en el valor del registro VirtualDriver bajo esta ruta de registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0

O

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0 (para 64 bits)

  • Thinwire3.0 (Obligatorio)
  • ClientDrive
  • ClentPrinterQueue
  • ClentPrinterPort
  • Clipboard
  • ClientComm
  • ClientAudio
  • LicenseHandler (Obligatorio)
  • TWI (Obligatorio)
  • SmartCard
  • ICACTL (Obligatorio)
  • SSPI
  • TwainRdr
  • UserEXperience
  • Vd3d

Nota:

Puede deshabilitar funcionalidades específicas del cliente eliminando uno o más de estos valores de la clave del registro. Por ejemplo, si desea eliminar el Portapapeles del cliente, elimine la palabra Clipboard.

Esta lista contiene los archivos de controlador virtual del cliente y sus funciones respectivas. Citrix Virtual Apps y Citrix Workspace app para Windows utilizan estos archivos. Están en forma de Bibliotecas de Vínculos Dinámicos (modo de usuario), y no son controladores de Windows (modo de kernel) excepto para USB genérico, como se describe en el canal virtual USB genérico.

  • vd3dn.dll – canal virtual Direct3D utilizado para la redirección de la composición del escritorio
  • vdcamN.dll – Audio bidireccional
  • vdcdm30n.dll – Asignación de unidades de cliente
  • vdcom30N.dll - Asignación de puertos COM de cliente
  • vdcpm30N.dll – Asignación de impresora de cliente
  • vdctln.dll – Canal de controles de ICA
  • vddvc0n.dll – Canal virtual dinámico
  • vdeuemn.dll - Supervisión de la experiencia del usuario final
  • vdgusbn.dll – Canal virtual USB genérico
  • vdkbhook.dll – Transferencia de claves transparente
  • vdlfpn.dll – Canal de visualización Framehawk a través de transporte tipo UDP
  • vdmmn.dll – Compatibilidad multimedia
  • vdmrvc.dll – Canal virtual de Mobile Receiver
  • vdmtchn.dll - Compatibilidad multitáctil
  • vdscardn.dll – Compatibilidad con tarjetas inteligentes
  • vdsens.dll – Canal virtual de sensores
  • vdspl30n.dll – UPD de cliente
  • vdsspin.dll – Kerberos
  • vdtuin.dll – Interfaz de usuario transparente
  • vdtw30n.dll – Thinwire de cliente
  • vdtwin.dll – Sin interrupciones
  • vdtwn.dll – Twain

Algunos canales virtuales se compilan en otros archivos. Por ejemplo, la Asignación del Portapapeles está disponible en wfica32.exe

Compatibilidad de 64 bits

La aplicación Citrix Workspace para Windows es compatible con 64 bits. Al igual que la mayoría de los binarios compilados para 32 bits, estos archivos de cliente tienen equivalentes compilados para 64 bits:

  • brapi64.dll
  • confmgr.dll
  • ctxlogging.dll
  • ctxmui.dll
  • icaconf.exe
  • icaconfs.dll
  • icafile.dll
  • pnipcn64.dll
  • pnsson.dll
  • ssoncom.exe
  • ssonstub.dll
  • vdkbhook64.dll

Canal virtual USB genérico

La implementación del canal virtual USB genérico utiliza dos controladores en modo kernel junto con el controlador de canal virtual vdgusbn.dll:

  • ctxusbm.sys
  • ctxusbr.sys

Cómo funcionan los canales virtuales de ICA

Los canales virtuales se cargan de varias maneras. El Shell (WfShell para el servidor y PicaShell para la estación de trabajo) carga algunos canales virtuales. Algunos canales virtuales se alojan como servicios de Windows.

Módulos de canal virtual cargados por el Shell, por ejemplo:

  • EUEM
  • Twain
  • Portapapeles
  • Multimedia
  • Uso compartido de sesiones sin interrupciones
  • Zona horaria

Algunos se cargan en modo kernel, por ejemplo:

  • CtxDvcs.sys – Canal virtual dinámico
  • Icausbb.sys – Redirección USB genérica
  • Picadm.sys – Asignación de unidades de cliente
  • Picaser.sys – Redirección de puertos COM
  • Picapar.sys – Redirección de puertos LPT

Canal virtual de gráficos en el lado del servidor

ctxgfx.exe aloja el canal virtual de gráficos para sesiones basadas tanto en estaciones de trabajo como en servidores de terminal. Ctxgfx aloja módulos específicos de la plataforma que interactúan con el controlador correspondiente (Icardd.dll para RDSH y vdod.dll y vidd.dll para estaciones de trabajo).

Para las implementaciones de XenDesktop® 3D Pro, se instala un controlador de gráficos OEM para la GPU correspondiente en el VDA. Ctxgfx carga módulos adaptadores especializados para interactuar con el controlador de gráficos OEM.

Alojamiento de canales especializados en servicios de Windows

En los servidores de Citrix Virtual Apps and Desktops, varios canales se alojan como servicios de Windows. Dicho alojamiento proporciona una semántica de uno a muchos para varias aplicaciones en una sesión y varias sesiones en el servidor. Algunos ejemplos de estos servicios son:

  • Servicio de redireccionamiento de dispositivos de Citrix
  • Servicio de canal virtual dinámico de Citrix
  • Servicio de supervisión de la experiencia del usuario final de Citrix
  • Servicio de canal virtual de ubicación y sensor de Citrix
  • Servicio de redirección multitáctil de Citrix
  • Servicio de administrador de impresión de Citrix
  • Servicio de tarjeta inteligente de Citrix
  • Servicio de redirección de audio de Citrix (solo Citrix Virtual Desktops™)
  • Servicio de canal de estado de ICA de Citrix

El canal virtual de audio en Citrix Virtual Apps se aloja mediante el servicio de audio de Windows.

En el lado del servidor, todos los canales virtuales de cliente se enrutan a través del controlador WinStation, Wdica.sys. En el lado del cliente, el controlador WinStation correspondiente, integrado en wfica32.exe, sondea los canales virtuales de cliente. Esta imagen ilustra la conexión cliente-servidor del canal virtual.

Conexiones de canal virtual

Esta descripción general contiene un intercambio de datos cliente-servidor mediante un canal virtual.

  1. El cliente se conecta al servidor de Citrix Virtual Apps and Desktops. El cliente pasa información sobre los canales virtuales que admite al servidor.
  2. La aplicación del lado del servidor se inicia, obtiene un identificador para el canal virtual y, opcionalmente, consulta información adicional sobre el canal.
  3. El controlador virtual del cliente y la aplicación del lado del servidor pasan datos mediante los dos métodos siguientes:

    • Si la aplicación del servidor tiene datos para enviar al cliente, los datos se envían al cliente inmediatamente. Cuando el cliente recibe los datos, el controlador WinStation desmultiplexa los datos del canal virtual de la secuencia ICA y los pasa inmediatamente al controlador virtual del cliente.
    • Si el controlador virtual del cliente tiene datos para enviar al servidor, los datos se envían la próxima vez que el controlador WinStation los sondea. Cuando el servidor recibe los datos, se ponen en cola hasta que la aplicación del canal virtual los lee. No hay forma de alertar a la aplicación del canal virtual del servidor de que se recibieron datos.
  4. Cuando la aplicación del canal virtual del servidor se completa, cierra el canal virtual y libera los recursos asignados.

Creación de su propio canal virtual mediante el SDK de canales virtuales

Nota:

Los SDK de Citrix están disponibles en el portal de desarrolladores de Citrix en https://developer.cloud.com.

La creación de un canal virtual mediante el SDK de canales virtuales requiere conocimientos de programación intermedios. Utilice este método para proporcionar una ruta de comunicación principal entre el cliente y el servidor. Por ejemplo, si está implementando el uso de un dispositivo en el lado del cliente, como un escáner, para usarlo con un proceso en la sesión.

Nota:

  • El SDK de canales virtuales requiere el SDK de WFAPI para escribir el lado del servidor del canal virtual.

  • Debido a la seguridad mejorada de Citrix Virtual Apps and Desktops, debe especificar qué canales virtuales se pueden abrir en una sesión ICA. Para obtener más información, consulte Configuración de directiva de lista de permitidos de canales virtuales.

Creación de su propio canal virtual mediante el SDK de objetos de cliente ICA

La creación de un canal virtual mediante el objeto de cliente ICA (ICO) es más fácil que usar el SDK de canales virtuales. Utilice el ICO creando un objeto con nombre en su programa mediante el método CreateChannels.

Importante:

Debido a la seguridad mejorada a partir de la versión 10.00 de Citrix Receiver para Windows y posteriores (y las aplicaciones Citrix Workspace para Windows), debe realizar un paso adicional al crear un canal virtual ICO.

Funcionalidad de paso a través de canales virtuales

La mayoría de los canales virtuales que proporciona Citrix funcionan sin modificaciones cuando se utiliza la aplicación Citrix Workspace para Windows dentro de una sesión ICA (también conocida como sesión de paso a través). Hay consideraciones al usar el cliente en saltos adicionales.

Las siguientes funciones funcionan de la misma manera en saltos únicos o múltiples:

  • Asignación de puerto COM de cliente
  • Asignación de unidades de cliente
  • Asignación de impresoras de cliente
  • UPD de cliente
  • Supervisión de la experiencia del usuario final
  • USB genérico
  • Kerberos
  • Compatibilidad multimedia
  • Compatibilidad con tarjetas inteligentes
  • Transferencia transparente de claves
  • Twain

Debido a la naturaleza inherente de la latencia y a factores como la compresión, la descompresión y la representación que se realizan en cada salto, el rendimiento podría verse afectado con cada salto adicional que experimente el cliente. Las áreas afectadas son:

  • Audio bidireccional
  • Transferencias de archivos
  • Redirección USB genérica
  • Seamless
  • Thinwire

Importante:

De forma predeterminada, las unidades de cliente asignadas por una instancia del cliente que se ejecuta en una sesión de paso a través están restringidas a las unidades de cliente del cliente que se conecta.

Funcionalidad de paso a través de canales virtuales entre una sesión de Citrix Virtual Desktop y una sesión de Citrix Virtual App

La mayoría de los canales virtuales proporcionados por Citrix funcionan sin modificaciones cuando se utiliza la aplicación Citrix Workspace para Windows dentro de una sesión ICA en un servidor de Citrix Virtual Desktops (también conocida como sesión de paso a través).

Específicamente, en el servidor de Citrix Virtual Desktops, hay un hook de VDA que ejecuta picaPassthruHook. Este hook hace que el cliente piense que se está ejecutando en un servidor CPS y lo coloca en su modo de paso a través tradicional.

Admitimos los siguientes canales virtuales tradicionales y su funcionalidad:

  • Cliente
  • Asignación de puertos COM de cliente
  • Asignación de unidades de cliente
  • Asignación de impresoras de cliente
  • USB genérico (limitado debido al rendimiento)
  • Compatibilidad multimedia
  • Compatibilidad con tarjetas inteligentes
  • SSON
  • Transferencia transparente de claves

Seguridad y canales virtuales ICA

Proteger el uso es una parte importante de la planificación, el desarrollo y la implementación de canales virtuales. Hay varias referencias a áreas específicas de seguridad a lo largo de este documento.

Prácticas recomendadas

Abra los canales virtuales al Conectar y Volver a conectar. Cierre los canales virtuales al cerrar sesión y Desconectar.

Tenga en cuenta las siguientes directrices al crear scripts que utilicen funciones de canal virtual.

Asignación de nombres a los canales virtuales:

Puede crear un máximo de 32 canales virtuales. Diecisiete de los 32 canales están reservados para fines especiales.

  • Los nombres de los canales virtuales no deben tener más de siete caracteres.

  • Los tres primeros caracteres están reservados para el nombre del proveedor y los cuatro siguientes para el tipo de canal. Por ejemplo, CTXAUD representa el canal virtual de audio de Citrix.

Los canales virtuales se identifican mediante un nombre ASCII de siete caracteres (o menos). En algunas versiones anteriores del protocolo ICA, los canales virtuales se numeraban. Los números ahora se asignan dinámicamente en función del nombre ASCII, lo que facilita la implementación. Los usuarios que desarrollan código de canal virtual solo para uso interno pueden usar cualquier nombre de siete caracteres que no entre en conflicto con los canales virtuales existentes. Utilice solo números y ASCII en mayúsculas y minúsculas. Siga la convención de nomenclatura existente al agregar sus propios canales virtuales. Hay varios canales predefinidos. Los canales predefinidos comienzan con el identificador OEM CTX y son solo para uso de Citrix.

Compatibilidad con doble salto:

Canal virtual ¿Se admite el doble salto?
Audio No
Redirección de contenido del explorador No
CDM
CEIP No
Portapapeles
Continuum (MRVC) No
VC de control
Redirección de vídeo HTML5 (v1)
Teclado, Ratón
Multitáctil No
NSAPVC No
Impresión
SensVC No
Tarjeta inteligente
Twain
USB VC
Dispositivos WAYCOM -K2M que utilizan USB VC
Compresión de vídeo de la cámara web
Redirección de Windows Media

Véase también

  • SDK de canales virtuales ICA
  • La Citrix Developer Network es el hogar de todos los recursos técnicos y debates relacionados con el uso de los SDK de Citrix. En esta red, puede encontrar acceso a SDK, código y scripts de ejemplo, extensiones y complementos, y documentación de SDK. También se incluyen los foros de Citrix Developer Network, donde se llevan a cabo debates técnicos sobre cada uno de los SDK de Citrix.