Citrix Virtual Apps and Desktops

Canaux virtuels ICA Citrix

Avertissement :

Toute utilisation incorrecte de l’Éditeur du Registre peut générer des problèmes sérieux, pouvant vous obliger à réinstaller le système d’exploitation. Citrix ne peut garantir la possibilité de résoudre les problèmes provenant d’une mauvaise utilisation de l’Éditeur du Registre. Vous assumez l’ensemble des risques liés à l’utilisation de l’Éditeur du Registre. Veillez à faire une copie de sauvegarde de votre registre avant de le modifier.

Que sont les canaux virtuels ICA ?

Une grande partie des fonctionnalités et de la communication entre l’application Citrix Workspace et les serveurs Citrix Virtual Apps and Desktops se produit sur des canaux virtuels. Les canaux virtuels font partie intégrante de l’expérience à distance avec les serveurs Citrix Virtual Apps and Desktops. Les canaux virtuels sont utilisés pour les éléments suivants :

  • Audio
  • Ports COM
  • Disques
  • Graphiques
  • Ports LPT
  • Imprimantes
  • Cartes à puce
  • Canaux virtuels personnalisés tiers
  • Vidéo

De nouveaux canaux virtuels sont parfois publiés avec les nouvelles versions des serveurs Citrix Virtual Apps and Desktops et de l’application Citrix Workspace pour fournir plus de fonctionnalités.

Canaux virtuels

Un canal virtuel consiste en un pilote virtuel côté client qui communique avec une application côté serveur. Citrix Virtual Apps and Desktops inclut différents canaux virtuels. Ils sont conçus pour permettre aux clients et aux fournisseurs tiers de créer leurs propres canaux virtuels à l’aide de l’un des kits de développement logiciel fournis (SDK).

Les canaux virtuels offrent un moyen sécurisé d’accomplir diverses tâches. Par exemple, une application qui s’exécute sur un serveur Citrix Virtual Apps qui communique avec un périphérique côté client ou une application qui communique avec l’environnement côté client.

Côté client, les canaux virtuels correspondent à des pilotes virtuels. Chaque pilote virtuel fournit une fonction spécifique. Certains sont requis pour le fonctionnement normal, et d’autres sont facultatifs. Les pilotes virtuels fonctionnent au niveau du protocole de la couche de présentation. Plusieurs protocoles peuvent être actifs à tout moment en multipliant les canaux fournis par la couche du protocole Windows Station (WinStation).

Les fonctions suivantes sont contenues dans la valeur de Registre VirtualDriver sous ce chemin de registre :

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

Ou

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

  • Thinwire3.0 (obligatoire)
  • ClientDrive
  • ClentPrinterQueue
  • ClentPrinterPort
  • Presse-papiers
  • ClientComm
  • ClientAudio
  • LicenseHandler (obligatoire)
  • TWI (obligatoire)
  • SmartCard
  • ICACTL (obligatoire)
  • SSPI
  • TwainRdr
  • UserEXperience
  • Vd3d

Remarque :

Vous pouvez désactiver une fonctionnalité client spécifique en supprimant une ou plusieurs de ces valeurs de la clé de registre. Par exemple, si vous souhaitez supprimer le Presse-papiers client, supprimez le mot Presse-papiers (Clipboard).

Cette liste contient les fichiers de pilotes virtuels client et leurs fonctions respectives. Citrix Virtual Apps et l’application Citrix Workspace pour Windows utilisent ces fichiers. Ils se présentent sous la forme de bibliothèques de liens dynamiques (mode utilisateur), et non de pilotes Windows (mode noyau) à l’exception d’USB générique comme décrit dans Canal virtuel USB générique.

  • vd3dn.dll – Canal virtuel Direct3D utilisé pour la redirection de composition du bureau
  • vdcamN.dll – Audio bidirectionnel
  • vdcdm30n.dll – Mappage de lecteur client
  • vdcom30N.dll – Mappage de port COM client
  • vdcpm30N.dll – Mappage d’imprimante client
  • vdctln.dll – Canal de contrôle ICA
  • vddvc0n.dll – Canal virtuel dynamique
  • vdeuemn.dll – Surveillance de l’expérience utilisateur final
  • vdgusbn.dll – Canal virtuel USB générique
  • vdkbhook.dll – Transfert de touche transparent
  • vdlfpn.dll – Canal d’affichage Framehawk sur UDP comme le transport
  • vdmmn.dll – Support multimédia
  • vdmrvc.dll – Canal virtuel du récepteur mobile
  • vdmtchn.dll – Prise en charge multipoint
  • vdscardn.dll – Prise en charge cartes à puce
  • vdsens.dll – Canal virtuel des capteurs
  • vdspl30n.dll – UPD client
  • vdsspin.dll – Kerberos
  • vdtuin.dll – Interface transparente
  • vdtw30n.dll – Thinwire client
  • vdtwin.dll – Transparence
  • vdtwn.dll – Twain

Certains canaux virtuels sont compilés dans d’autres fichiers. Par exemple, le mappage du presse-papiers est disponible dans wfica32.exe

Compatibilité 64 bits

L’application Citrix Workspace pour Windows est compatible 64 bits. Comme pour la plupart des binaires compilés pour 32 bits, ces fichiers clients ont des équivalents compilés pour 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 virtuel USB générique

L’implémentation du canal virtuel USB générique utilise deux pilotes en mode noyau avec le pilote de canal virtuel vdgusbn.dll :

  • ctxusbm.sys
  • ctxusbr.sys

Fonctionnement des canaux virtuels ICA

Les canaux virtuels sont chargés de plusieurs manières. L’environnement de ligne de commande (WFShell pour le serveur et PicaShell pour le poste de travail) charge certains canaux virtuels. Certains canaux virtuels sont hébergés en tant que services Windows.

Modules de canal virtuels chargés par l’environnement de ligne de commande Shell, par exemple :

  • EUEM
  • Twain
  • Presse-papiers
  • Multimédia
  • Partage de session transparent
  • Fuseau horaire

Certains sont chargés en mode noyau, par exemple :

  • CtxDvcs.sys – Canal virtuel dynamique
  • Icausbb.sys – Redirection USB générique
  • Picadm.sys – Mappage des lecteurs clients
  • Picaser.sys – Redirection de port COM
  • Picapar.sys – Redirection de port LPT

Canal virtuel graphique côté serveur

À partir de XenApp 7.0 et XenDesktop7.0, ctxgfx.exe héberge le canal virtuel graphique pour les sessions basées sur station de travail et serveur de terminal. Ctxgfx héberge des modules spécifiques aux plate-formes qui interagissent avec le pilote correspondant (Icardd.dll pour RDSH, et vdod.dll et vidd.dll pour station de travail).

Pour les déploiements XenDesktop 3D Pro, un pilote graphique OEM est installé pour le GPU correspondant sur le VDA. Ctxgfx charge des modules adaptateurs spécialisés pour interagir avec le pilote graphique OEM.

Hébergement de canaux spécialisés dans les services Windows

Sur les serveurs Citrix Virtual Apps and Desktops, différents canaux sont hébergés sous forme de services Windows. Ce type d’hébergement fournit une sémantique « one-to-many » pour plusieurs applications dans une session et plusieurs sessions sur le serveur. Voici des exemples de ces services :

  • Citrix Device Redirector Service
  • Citrix Dynamic Virtual Channel Service
  • Citrix End User Experience Monitoring Service
  • Citrix Location and Sensor Virtual Channel Service
  • Citrix MultiTouch Redirection Service
  • Citrix Print Manager Service
  • Citrix Smartcard Service
  • Citrix Audio Redirection Service (Citrix Virtual Desktops uniquement)

Le canal virtuel audio sur Citrix Virtual Apps est hébergé à l’aide du service Windows Audio.

Côté serveur, tous les canaux virtuels client sont acheminés via le pilote WinStation, Wdica.sys. Côté client, le pilote WinStation correspondant, intégré dans wfica32.exe, interroge les canaux virtuels client. Cette image illustre la connexion client-serveur de canal virtuel.

Connexions de canaux virtuels

Cette configuration contient un échange de données client-serveur utilisant un canal virtuel.

  1. Le client se connecte au serveur Citrix Virtual Apps and Desktops. Le client transmet des informations sur les canaux virtuels qu’il prend en charge au serveur.
  2. L’application côté serveur démarre, obtient un descripteur du canal virtuel et, éventuellement, demande des informations supplémentaires à propos du canal.
  3. Le pilote virtuel client et l’application côté serveur transmettent les données en utilisant les deux méthodes suivantes :

    • Si l’application serveur a des données à envoyer au client, les données sont envoyées au client immédiatement. Lorsque le client reçoit les données, le pilote WinStation démultiplexe les données du canal virtuel à partir du flux ICA et les transmet immédiatement au pilote virtuel du client.
    • Si le pilote virtuel client a des données à envoyer au serveur, les données sont envoyées la prochaine fois que le pilote WinStation l’interroge. Lorsque le serveur reçoit les données, elles sont mises en file d’attente jusqu’à ce que l’application de canal virtuel les lise. Il n’y a aucun moyen d’alerter l’application de canal virtuel du serveur que des données ont été reçues.
  4. Lorsque l’application de canal virtuel du serveur a terminé, elle ferme le canal virtuel et libère toutes les ressources allouées.

Création de votre propre canal virtuel à l’aide du SDK de canal virtuel

La création d’un canal virtuel à l’aide du SDK de canal virtuel nécessite des connaissances intermédiaires en programmation. Utilisez cette méthode pour fournir un chemin de communication majeur entre le client et le serveur. Par exemple, si vous implémentez l’utilisation d’un périphérique côté client, tel qu’un analyseur, à utiliser avec un processus de la session.

Remarque :

  • Le SDK de canal virtuel requiert le SDK WFAPI pour écrire sur le côté serveur du canal virtuel.

  • En raison de la sécurité renforcée pour Citrix Virtual Apps and Desktops, vous devez spécifier les canaux virtuels autorisés à ouvrir dans une session ICA. Pour plus d’informations, consultez Paramètres de stratégie de liste d’autorisation des canaux virtuels.

Création de votre propre canal virtuel à l’aide du SDK d’objet client ICA

La création d’un canal virtuel à l’aide de l’objet client ICA (ICO) est plus facile que l’utilisation du SDK de canal virtuel. Utilisez l’objet ICO et créez un objet nommé dans votre programme à l’aide de la méthode CreateChannels.

Important :

En raison de la sécurité renforcée à compter de la version 10.00 de Citrix Receiver pour Windows et versions ultérieures (et des applications Citrix Workspace pour Windows), vous devez effectuer une étape supplémentaire lors de la création d’un canal virtuel ICO.

Pour plus d’informations, consultez Client Object API Specification Programmer’s Guide.

Fonctionnalité de transfert des canaux virtuels

La plupart des canaux virtuels que Citrix fournit fonctionnent sans modification lorsque vous utilisez l’application Citrix Workspace pour Windows dans une session ICA (également appelée session de transfert). Il y a des points à prendre en compte lors de l’utilisation du client dans des sauts supplémentaires.

Les fonctions suivantes fonctionnent de la même manière avec un ou plusieurs sauts :

  • Mappage de port COM client
  • Mappage des lecteurs clients
  • Mappage d’imprimante client
  • UPD client
  • Surveillance de l’expérience utilisateur final
  • USB générique
  • Kerberos
  • Support multimédia
  • Prise en charge des cartes à puce
  • Transfert de touche transparent
  • Twain

Étant donné la nature inhérente de la latence et des facteurs tels que la compression, la décompression et le rendu qui se produisent à chaque saut, chaque saut supplémentaire du client peut avoir un effet sur les performances. Les éléments concernés sont les suivants :

  • Audio bidirectionnel
  • Transferts de fichiers
  • Redirection USB générique
  • Transparence
  • Thinwire

Important :

Par défaut, les lecteurs client mappés par une instance du client exécutée dans une session de transfert sont limités aux lecteurs du client qui se connecte.

Fonctionnalité de transfert des canaux virtuels entre une session Citrix Virtual Desktop et une session Citrix Virtual App

La plupart des canaux virtuels que Citrix fournit fonctionnent sans modification lorsque vous utilisez l’application Citrix Workspace pour Windows dans une session ICA sur un serveur Citrix Virtual Desktops (également appelée session de transfert).

En particulier, sur le serveur Citrix Virtual Desktops, un hook de VDA exécute picaPassthruHook. Ce hook donne au client l’impression qu’il s’exécute sur un serveur CPS et place le client en mode de transfert traditionnel.

Nous prenons en charge les canaux virtuels traditionnels suivants ainsi que leurs fonctionnalités :

  • Client
  • Mappage de port COM client
  • Mappage des lecteurs clients
  • Mappage d’imprimante client
  • USB générique (limité en raison des performances)
  • Support multimédia
  • Prise en charge des cartes à puce
  • SSON
  • Transfert de touche transparent

Canaux virtuels de sécurité et ICA

La sécurisation est un élément important de la planification, du développement et de la mise en œuvre des canaux virtuels. Vous trouverez plusieurs références à des aspects précis de la sécurité dans le présent document.

Recommandations

Ouvrez les canaux virtuels à la connexion et à la reconnexion. Fermez les canaux virtuels à la déconnexion.

Suivez ces conseils lorsque vous créez des scripts qui utilisent des fonctions de canal virtuel.

Nom des canaux virtuels :

Vous pouvez créer un maximum de 32 canaux virtuels. 17 des 32 canaux sont réservés à des utilisations spécifiques.

  • Les noms des canaux virtuels ne doivent pas dépasser 7 caractères.

  • Les 3 premiers caractères sont réservés au nom du fournisseur et les 4 suivants pour le type de canal. Par exemple, CTXAUD représente le canal virtuel audio Citrix.

Les canaux virtuels sont désignés par un nom ASCII de 7 caractères (ou moins). Dans certains versions précédentes du protocole ICA, les canaux virtuels étaient numérotés. Les numéros sont désormais attribués de façon dynamique en fonction du nom ASCII, ce qui facilite l’implémentation. Les utilisateurs qui développent le code de canaux virtuels réservés à un usage interne peuvent utiliser tout nom de 7 caractères qui n’entre pas en conflit avec des canaux virtuels existants. Utilisez uniquement des chiffres et des caractères ASCII. Suivez les conventions d’appellation suivantes lors de l’ajout de vos propres canaux virtuels. Il existe plusieurs canaux prédéfinis. Les canaux prédéfinis commencent par l’identifiant OEM CTX et sont utilisés uniquement par Citrix.

Prise en charge de double-hop :

Canal virtuel Est-ce que le double-hop est pris en charge ?
Audio Non
Redirection du contenu du navigateur Non
CDM Oui
CEIP Non
Presse-papiers Oui
Continuum (MRVC) Non
Control VC Oui
Redirection vidéo HTML5 (v1) Oui
Clavier, Souris Oui
MultiTouch Non
NSAPVC Non
Impression Oui
SensVC Non
SmartCard Oui
Twain Oui
USB VC Oui
Périphériques WAYCOM -K2M utilisant USB VC Oui
Compression vidéo de webcam Oui
Redirection Windows Media Oui

Voir aussi

  • SDK du canal virtuel ICA
  • Le réseau Citrix Developer Network héberge toutes les ressources techniques et toutes les discussions impliquant l’utilisation de SDK Citrix. Dans ce réseau, vous pouvez accéder aux SDK, obtenir des exemples de code et de scripts ainsi que des extensions et plug-ins et consulter la documentation SDK. Sont également inclus les forums Citrix Developer Network, où des discussions techniques ont lieu autour de chacun des kits SDK de Citrix.