Canaux virtuels Citrix ICA®
Avertissement :
La modification incorrecte du registre peut entraîner de graves problèmes susceptibles de nécessiter la réinstallation de votre système d’exploitation. Citrix ne peut garantir que les problèmes résultant d’une utilisation incorrecte de l’Éditeur du Registre pourront être résolus. Utilisez l’Éditeur du Registre à vos propres risques. Assurez-vous de sauvegarder le 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™ s’effectue via des canaux virtuels. Les canaux virtuels sont un élément essentiel de l’expérience de calcul à distance avec les serveurs Citrix Virtual Apps and Desktops. Les canaux virtuels sont utilisés pour :
- 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 des produits de l’application Citrix Workspace afin d’offrir davantage de fonctionnalités.

Un canal virtuel se compose d’un pilote virtuel côté client qui communique avec une application côté serveur. Citrix Virtual Apps and Desktops sont livrés avec divers canaux virtuels inclus. Ils sont conçus pour permettre aux clients et aux fournisseurs tiers de créer leurs propres canaux virtuels en utilisant l’un des kits de développement logiciel (SDK) fournis.
Les canaux virtuels offrent un moyen sécurisé d’accomplir diverses tâches. Par exemple, une application exécutée 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 un 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 multiplexant les canaux fournis par la couche de 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 (Requis)
- ClientDrive
- ClentPrinterQueue
- ClentPrinterPort
- Clipboard
- ClientComm
- ClientAudio
- LicenseHandler (Obligatoire)
- TWI (Obligatoire)
- SmartCard
- ICACTL (Obligatoire)
- SSPI
- TwainRdr
- UserEXperience
- Vd3d
Remarque :
Vous pouvez désactiver des fonctionnalités client spécifiques 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 Clipboard.
Cette liste contient les fichiers de pilotes virtuels clients 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 de l’USB générique, comme décrit dans le canal virtuel USB générique.
- vd3dn.dll – Canal virtuel Direct3D utilisé pour la redirection de la 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 – Transmission transparente des touches
- vdlfpn.dll – Canal d’affichage Framehawk via un transport de type UDP
- vdmmn.dll – Prise en charge multimédia
- vdmrvc.dll – Canal virtuel Mobile Receiver
- vdmtchn.dll - Prise en charge multi-touch
- vdscardn.dll – Prise en charge des cartes à puce
- vdsens.dll – Canal virtuel des capteurs
- vdspl30n.dll – UPD client
- vdsspin.dll – Kerberos
- vdtuin.dll – Interface utilisateur transparente
- vdtw30n.dll – Client Thinwire
- vdtwin.dll – Seamless
- 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 la plupart des binaires compilés pour 32 bits, ces fichiers clients ont des équivalents compilés en 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 ainsi que 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. Le Shell (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 virtuel chargés par le 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 de lecteur client
- Picaser.sys – Redirection de port COM
- Picapar.sys – Redirection de port LPT
Canal virtuel graphique côté serveur
Le ctxgfx.exe héberge le canal virtuel graphique pour les sessions basées sur des postes de travail et des serveurs terminaux. Ctxgfx héberge des modules spécifiques à la plateforme qui interagissent avec le pilote correspondant (Icardd.dll pour RDSH et vdod.dll et vidd.dll pour les postes 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 d’adaptateur 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, divers canaux sont hébergés en tant que services Windows. Cet hébergement offre une sémantique un-à-plusieurs pour plusieurs applications dans une session et plusieurs sessions sur le serveur. Voici des exemples de ces services :
- Service de redirection de périphériques Citrix
- Service de canal virtuel dynamique Citrix
- Service de surveillance de l’expérience utilisateur final Citrix
- Service de canal virtuel de localisation et de capteur Citrix
- Service de redirection MultiTouch Citrix
- Service de gestionnaire d’impression Citrix
- Service de carte à puce Citrix
- Service de redirection audio Citrix (Citrix Virtual Desktops™ uniquement)
- Service de canal d’état ICA Citrix
Le canal virtuel audio sur Citrix Virtual Apps est hébergé à l’aide du service audio Windows.
Côté serveur, tous les canaux virtuels clients sont acheminés via le pilote WinStation, Wdica.sys. Côté client, le pilote WinStation correspondant, intégré à wfica32.exe, interroge les canaux virtuels clients. Cette image illustre la connexion client-serveur du canal virtuel.

Cette vue d’ensemble contient un échange de données client-serveur utilisant un canal virtuel.
- Le client se connecte au serveur Citrix Virtual Apps and Desktops. Le client transmet au serveur des informations sur les canaux virtuels qu’il prend en charge.
- L’application côté serveur démarre, obtient un handle pour le canal virtuel et interroge éventuellement des informations supplémentaires sur le canal.
-
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 du flux ICA et les transmet immédiatement au pilote virtuel 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 les interroge. Lorsque le serveur reçoit les données, elles sont mises en file d’attente jusqu’à ce que l’application du canal virtuel les lise. Il n’y a aucun moyen d’alerter l’application du canal virtuel du serveur que des données ont été reçues.
- Lorsque l’application de canal virtuel du serveur est terminée, elle ferme le canal virtuel et libère toutes les ressources allouées.
Créer votre propre canal virtuel à l’aide du SDK de canal virtuel
Remarque :
Les SDK Citrix sont disponibles sur le portail Citrix Developer à l’adresse https://developer.cloud.com.
La création d’un canal virtuel à l’aide du SDK de canal virtuel nécessite des connaissances en programmation intermédiaires. Utilisez cette méthode pour fournir un chemin de communication principal 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 scanner, à utiliser avec un processus dans la session.
Remarque :
Le SDK de canal virtuel nécessite le SDK WFAPI pour écrire 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 quels canaux virtuels sont autorisés à être ouverts dans une session ICA. Pour plus d’informations, consultez Paramètres de stratégie de liste d’autorisation des canaux virtuels.
Créer votre propre canal virtuel à l’aide du SDK ICA Client Object
La création d’un canal virtuel à l’aide de l’ICA Client Object (ICO) est plus facile qu’avec le SDK de canal virtuel. Utilisez l’ICO en créant un objet nommé dans votre programme à l’aide de la méthode CreateChannels.
Important :
En raison de la sécurité renforcée à partir 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.
Fonctionnalité de transmission des canaux virtuels
La plupart des canaux virtuels fournis par Citrix fonctionnent sans modification lorsque vous utilisez l’application Citrix Workspace pour Windows au sein d’une session ICA (également appelée session de transmission). Il y a des considérations à prendre en compte lors de l’utilisation du client avec des sauts supplémentaires.
Les fonctions suivantes fonctionnent de la même manière en un ou plusieurs sauts :
- Mappage des ports COM clients
- Mappage des lecteurs clients
- Mappage des imprimantes clientes
- UPD client
- Surveillance de l’expérience utilisateur final
- USB générique
- Kerberos
- Prise en charge multimédia
- Prise en charge des cartes à puce
- Transfert transparent de clé
- Twain
En raison de la nature inhérente de la latence et de facteurs tels que la compression, la décompression et le rendu effectués à chaque saut, les performances peuvent être affectées à chaque saut supplémentaire que le client subit. Les zones affectées sont :
- Audio bidirectionnel
- Transferts de fichiers
- Redirection USB générique
- Transparence
- Thinwire
Important :
Par défaut, les lecteurs clients mappés par une instance du client exécutée dans une session de passage sont limités aux lecteurs clients du client de connexion.
Fonctionnalité de passage des canaux virtuels entre une session Citrix Virtual Desktop et une session Citrix Virtual App
La plupart des canaux virtuels fournis par Citrix fonctionnent sans modification lorsque vous utilisez l’application Citrix Workspace pour Windows au sein d’une session ICA sur un serveur Citrix Virtual Desktops (également appelée session de passage).
Plus précisément, sur le serveur Citrix Virtual Desktops, il existe un hook VDA qui exécute picaPassthruHook. Ce hook fait croire au client qu’il s’exécute sur un serveur CPS, et place le client dans son mode de passage traditionnel.
Nous prenons en charge les canaux virtuels traditionnels suivants et leurs fonctionnalités :
- Client
- Mappage des ports COM clients
- Mappage des lecteurs clients
- Mappage des imprimantes clientes
- USB générique (limité en raison des performances)
- Prise en charge multimédia
- Prise en charge des cartes à puce
- SSON
- Transmission transparente des clés
Sécurité et canaux virtuels ICA
La sécurisation de l’utilisation est une partie importante de la planification, du développement et de la mise en œuvre des canaux virtuels. Plusieurs références à des domaines spécifiques de la sécurité sont présentes dans ce document.
Bonnes pratiques
Ouvrez les canaux virtuels lorsque vous vous connectez et vous reconnectez. Fermez les canaux virtuels lorsque vous vous déconnectez et vous déconnectez.
Gardez les directives suivantes à l’esprit lorsque vous créez des scripts qui utilisent des fonctions de canal virtuel.
Nommage des canaux virtuels :
Vous pouvez créer un maximum de 32 canaux virtuels. Dix-sept des 32 canaux sont réservés à des usages spéciaux.
-
Les noms des canaux virtuels ne doivent pas dépasser sept caractères.
-
Les trois premiers caractères sont réservés au nom du fournisseur, et les quatre suivants au 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 sept caractères (ou moins). Dans certaines versions précédentes du protocole ICA, les canaux virtuels étaient numérotés. Les numéros sont maintenant attribués dynamiquement en fonction du nom ASCII, ce qui facilite l’implémentation. Les utilisateurs qui développent du code de canal virtuel pour un usage interne uniquement peuvent utiliser n’importe quel nom de sept caractères qui n’entre pas en conflit avec les canaux virtuels existants. Utilisez uniquement des chiffres et des caractères ASCII majuscules et minuscules. Suivez la convention de nommage existante lorsque vous ajoutez vos propres canaux virtuels. Il existe plusieurs canaux prédéfinis. Les canaux prédéfinis commencent par l’identifiant OEM CTX et sont réservés à l’usage de Citrix uniquement.
Prise en charge du double-saut :
| Canal virtuel | Le double-saut est-il pris en charge ? |
|---|---|
| Audio | Non |
| Redirection de contenu de navigateur | Non |
| CDM | Oui |
| CEIP | Non |
| Presse-papiers | Oui |
| Continuum (MRVC) | Non |
| VC de contrôle | Oui |
| Redirection vidéo HTML5 (v1) | Oui |
| Clavier, Souris | Oui |
| MultiTouch | Non |
| NSAPVC | Non |
| Impression | Oui |
| SensVC | Non |
| Carte à puce | Oui |
| Twain | Oui |
| VC USB | Oui |
| Périphériques WAYCOM -K2M utilisant le VC USB | Oui |
| Compression vidéo de la webcam | Oui |
| Redirection Windows Media | Oui |
Voir aussi
- SDK de canaux virtuels ICA
- Le Citrix Developer Network est la référence pour toutes les ressources techniques et les discussions concernant l’utilisation des SDK Citrix. Dans ce réseau, vous trouverez un accès aux SDK, des exemples de code et de scripts, des extensions et des plug-ins, ainsi que de la documentation SDK. Les forums du Citrix Developer Network sont également inclus, où des discussions techniques ont lieu autour de chacun des SDK Citrix.
Dans cet article
- Que sont les canaux virtuels ICA ?
- Créer votre propre canal virtuel à l’aide du SDK de canal virtuel
- Créer votre propre canal virtuel à l’aide du SDK ICA Client Object
- Fonctionnalité de transmission des canaux virtuels
- Fonctionnalité de passage des canaux virtuels entre une session Citrix Virtual Desktop et une session Citrix Virtual App
- Sécurité et canaux virtuels ICA
- Bonnes pratiques
- Voir aussi