Canaux virtuels ICA® Citrix
Avertissement :
Une modification incorrecte du registre peut entraîner de graves problèmes qui pourraient 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 Citrix Workspace app 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, 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 (Requis)
- TWI (Requis)
- SmartCard
- ICACTL (Requis)
- 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 pilote virtuel 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 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ôles 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 sur 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 – 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 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 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 canaux virtuels 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 les postes de travail et les 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. Un tel 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érique 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 multi-touch 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.

Cet aperçu présente 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 de canal virtuel les lise. Il n’existe aucun moyen d’alerter l’application de 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éation de 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 de niveau intermédiaire. 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 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 les canaux virtuels 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éation de 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 simple 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 transfert 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 transfert). 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 client
- Mappage des lecteurs client
- Mappage des imprimantes client
- 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 de clé transparent
- 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 domaines affectés sont :
- Audio bidirectionnel
- Transferts de fichiers
- Redirection USB générique
- Seamless
- 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 client du client de connexion.
Fonctionnalité de transfert des canaux virtuels entre une session Citrix Virtual Desktops et une session Citrix Virtual Apps
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 transfert).
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 transfert traditionnel.
Nous prenons en charge les canaux virtuels traditionnels suivants et leurs fonctionnalités :
- Client
- Mappage des ports COM client
- Mappage des lecteurs client
- Mappage des imprimantes client
- USB générique (limité en raison des performances)
- Prise en charge multimédia
- Prise en charge des cartes à puce
- SSON
- Transfert de clé transparent
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 situées tout au long de 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 fins spéciales.
-
Les noms de 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 uniquement pour un usage interne 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 destinés à être utilisés uniquement par Citrix.
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 | | Control VC | Oui | | Redirection vidéo HTML5 (v1) | Oui | | Clavier, souris | Oui | | MultiTouch | Non | | NSAPVC | Non | | Impression | Oui | | SensVC | Non | | Carte à puce | 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 de canal virtuel ICA
- Le réseau de développeurs Citrix est le lieu de toutes les ressources techniques et discussions impliquant l’utilisation des SDK Citrix. Dans ce réseau, vous pouvez trouver un accès aux SDK, des exemples de code et de scripts, des extensions et des plug-ins, ainsi que la documentation des SDK. Les forums du réseau de développeurs Citrix, où des discussions techniques ont lieu autour de chacun des SDK Citrix, sont également inclus.
Dans cet article
- Que sont les canaux virtuels ICA ?
- Création de votre propre canal virtuel à l’aide du SDK de canal virtuel
- Création de votre propre canal virtuel à l’aide du SDK ICA Client Object
- Fonctionnalité de transfert des canaux virtuels
- Fonctionnalité de transfert des canaux virtuels entre une session Citrix Virtual Desktops et une session Citrix Virtual Apps
- Sécurité et canaux virtuels ICA
- Bonnes pratiques
- Voir aussi