Citrix ICA® virtuelle Kanäle
Warnung:
Eine falsche Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen, die eine Neuinstallation Ihres Betriebssystems erforderlich machen können. Citrix kann nicht garantieren, dass Probleme, die durch die falsche Verwendung des Registrierungs-Editors entstehen, behoben werden können. Verwenden Sie den Registrierungs-Editor auf eigenes Risiko. Sichern Sie die Registrierung unbedingt, bevor Sie sie bearbeiten.
Was sind ICA virtuelle Kanäle?
Ein Großteil der Funktionalität und Kommunikation zwischen der Citrix Workspace™-App und den Citrix Virtual Apps and Desktops™-Servern erfolgt über virtuelle Kanäle. Virtuelle Kanäle sind ein notwendiger Bestandteil der Remote-Computing-Erfahrung mit den Citrix Virtual Apps and Desktops-Servern. Virtuelle Kanäle werden verwendet für:
- Audio
- COM-Anschlüsse
- Laufwerke
- Grafik
- LPT-Anschlüsse
- Drucker
- Smartcards
- Benutzerdefinierte virtuelle Kanäle von Drittanbietern
- Video
Neue virtuelle Kanäle werden manchmal mit neuen Versionen der Citrix Virtual Apps and Desktops-Server und Citrix Workspace-App-Produkte veröffentlicht, um mehr Funktionalität bereitzustellen.
Virtuelle Kanäle(/de-de/citrix-virtual-apps-desktops/2402-ltsr/media/ica-virtual-channels-1.png)
Ein virtueller Kanal besteht aus einem clientseitigen virtuellen Treiber, der mit einer serverseitigen Anwendung kommuniziert. Citrix Virtual Apps and Desktops werden mit verschiedenen virtuellen Kanälen ausgeliefert. Sie sind so konzipiert, dass Kunden und Drittanbieter ihre eigenen virtuellen Kanäle mithilfe eines der bereitgestellten Software Development Kits (SDKs) erstellen können.
Virtuelle Kanäle bieten eine sichere Möglichkeit, verschiedene Aufgaben zu erledigen. Zum Beispiel eine Anwendung, die auf einem Citrix Virtual Apps-Server ausgeführt wird und mit einem clientseitigen Gerät kommuniziert, oder eine Anwendung, die mit der clientseitigen Umgebung kommuniziert.
Auf der Clientseite entsprechen virtuelle Kanäle virtuellen Treibern. Jeder virtuelle Treiber bietet eine spezifische Funktion. Einige sind für den normalen Betrieb erforderlich, andere sind optional. Virtuelle Treiber arbeiten auf der Protokollebene der Darstellungsschicht. Es können jederzeit mehrere Protokolle aktiv sein, indem Kanäle gemultiplext werden, die von der Protokollebene der Windows Station (WinStation) bereitgestellt werden.
Die folgenden Funktionen sind im Registrierungswert “VirtualDriver” unter diesem Registrierungspfad enthalten:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0
Oder
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0 (für 64-Bit)
- Thinwire3.0 (Erforderlich)
- ClientDrive
- ClentPrinterQueue
- ClentPrinterPort
- Zwischenablage
- ClientComm
- ClientAudio
- LicenseHandler (Erforderlich)
- TWI (Erforderlich)
- SmartCard
- ICACTL (Erforderlich)
- SSPI
- TwainRdr
- UserEXperience
- Vd3d
Hinweis:
Sie können bestimmte Client-Funktionen deaktivieren, indem Sie einen oder mehrere dieser Werte aus dem Registrierungsschlüssel entfernen. Wenn Sie beispielsweise die Client-Zwischenablage entfernen möchten, entfernen Sie das Wort Clipboard.
Diese Liste enthält die virtuellen Client-Treiberdateien und ihre jeweiligen Funktionen. Citrix Virtual Apps und die Citrix Workspace-App für Windows verwenden diese Dateien. Sie liegen in Form von Dynamic Link Libraries (Benutzermodus) vor und sind keine Windows-Treiber (Kernelmodus), außer für Generic USB, wie im virtuellen Kanal Generic USB beschrieben.
- vd3dn.dll – virtueller Direct3D-Kanal, der für die Umleitung der Desktop-Komposition verwendet wird
- vdcamN.dll – Bidirektionales Audio
- vdcdm30n.dll – Client-Laufwerkszuordnung
- vdcom30N.dll - Client-COM-Port-Zuordnung
- vdcpm30N.dll – Clientdruckerzuordnung
- vdctln.dll – ICA-Steuerungskanal
- vddvc0n.dll – Dynamischer virtueller Kanal
- vdeuemn.dll – Überwachung der Endbenutzererfahrung
- vdgusbn.dll – Generischer virtueller USB-Kanal
- vdkbhook.dll – Transparente Tastendurchleitung
- vdlfpn.dll – Framehawk-Anzeigekanal über UDP-ähnlichen Transport
- vdmmn.dll – Multimedia-Unterstützung
- vdmrvc.dll – Virtueller Kanal für mobilen Receiver
- vdmtchn.dll – Multi-Touch-Unterstützung
- vdscardn.dll – Smartcard-Unterstützung
- vdsens.dll – Virtueller Sensorkanal
- vdspl30n.dll – Client-UPD
- vdsspin.dll – Kerberos
- vdtuin.dll – Transparente Benutzeroberfläche
- vdtw30n.dll – Client Thinwire
- vdtwin.dll – Nahtlos
- vdtwn.dll – Twain
Einige virtuelle Kanäle sind in andere Dateien kompiliert. Zum Beispiel ist die Zwischenablagezuordnung in wfica32.exe verfügbar.
64-Bit-Kompatibilität
Die Citrix Workspace-App für Windows ist 64-Bit-kompatibel. Wie die meisten für 32 Bit kompilierten Binärdateien haben diese Clientdateien 64-Bit-kompilierte Äquivalente:
- brapi64.dll
- confmgr.dll
- ctxlogging.dll
- ctxmui.dll
- icaconf.exe
- icaconfs.dll
- icafile.dll
- pnipcn64.dll
- pnsson.dll
- ssoncom.exe
- ssonstub.dll
- vdkbhook64.dll
Generischer USB-Virtual Channel
Die Implementierung des generischen USB-Virtual Channels verwendet zwei Kernelmodustreiber zusammen mit dem Virtual Channel-Treiber vdgusbn.dll:
- ctxusbm.sys
- ctxusbr.sys
Funktionsweise von ICA-Virtual Channels
Virtual Channels werden auf verschiedene Arten geladen. Die Shell (WfShell für den Server und PicaShell für die Workstation) lädt einige Virtual Channels. Einige Virtual Channels werden als Windows-Dienste gehostet.
Virtual Channel-Module, die von der Shell geladen werden, zum Beispiel:
- EUEM
- Twain
- Zwischenablage
- Multimedia
- Nahtlose Sitzungsfreigabe
- Zeitzone
Einige werden im Kernel-Modus geladen, zum Beispiel:
- CtxDvcs.sys – Dynamischer virtueller Kanal
- Icausbb.sys – Generische USB-Umleitung
- Picadm.sys – Client-Laufwerkszuordnung
- Picaser.sys – COM-Port-Umleitung
- Picapar.sys – LPT-Port-Umleitung
Grafik-Virtual-Channel auf der Serverseite
Der ctxgfx.exe hostet den Grafik-Virtual-Channel für Workstation- und Terminalserver-basierte Sitzungen. Ctxgfx hostet plattformspezifische Module, die mit dem entsprechenden Treiber interagieren (Icardd.dll für RDSH und vdod.dll und vidd.dll für Workstation).
Für XenDesktop® 3D Pro-Bereitstellungen wird ein OEM-Grafiktreiber für die entsprechende GPU auf dem VDA installiert. Ctxgfx lädt spezialisierte Adaptermodule, um mit dem OEM-Grafiktreiber zu interagieren.
Hosting spezialisierter Kanäle in Windows-Diensten
Auf Citrix Virtual Apps and Desktops-Servern werden verschiedene Kanäle als Windows-Dienste gehostet. Ein solches Hosting bietet eine Eins-zu-Viele-Semantik für mehrere Anwendungen in einer Sitzung und mehrere Sitzungen auf dem Server. Beispiele für solche Dienste sind:
- Citrix Device Redirector Service
- Citrix Dynamic Virtual Channel Service
- Citrix End User Experience Monitoring Service
- Citrix Standort- und Sensor-Virtual-Channel-Dienst
- Citrix MultiTouch-Umleitungsdienst
- Citrix Print Manager-Dienst
- Citrix Smartcard-Dienst
- Citrix Audio-Umleitungsdienst (nur Citrix Virtual Desktops™)
- Citrix ICA-Statuskanal-Dienst
Der virtuelle Audiokanal in Citrix Virtual Apps wird über den Windows-Audiodienst gehostet.
Serverseitig werden alle virtuellen Clientkanäle über den WinStation-Treiber Wdica.sys geleitet. Clientseitig fragt der entsprechende WinStation-Treiber, der in wfica32.exe integriert ist, die virtuellen Clientkanäle ab. Diese Abbildung veranschaulicht die Client-Server-Verbindung des virtuellen Kanals.

Diese Übersicht enthält einen Client-Server-Datenaustausch über einen virtuellen Kanal.
- Der Client stellt eine Verbindung zum Citrix Virtual Apps and Desktops-Server her. Der Client übermittelt dem Server Informationen über die von ihm unterstützten virtuellen Kanäle.
- Die serverseitige Anwendung startet, erhält ein Handle für den virtuellen Kanal und fragt optional zusätzliche Informationen über den Kanal ab.
-
Der virtuelle Clienttreiber und die serverseitige Anwendung übermitteln Daten mit den folgenden zwei Methoden:
- Wenn die Serveranwendung Daten an den Client senden muss, werden die Daten sofort an den Client gesendet. Wenn der Client die Daten empfängt, demultiplext der WinStation-Treiber die Daten des virtuellen Kanals aus dem ICA-Stream und leitet sie sofort an den virtuellen Clienttreiber weiter.
- Wenn der virtuelle Clienttreiber Daten an den Server senden muss, werden die Daten beim nächsten Abruf durch den WinStation-Treiber gesendet. Wenn der Server die Daten empfängt, werden sie in eine Warteschlange gestellt, bis die Anwendung des virtuellen Kanals sie liest. Es gibt keine Möglichkeit, die Anwendung des virtuellen Serverkanals darüber zu informieren, dass Daten empfangen wurden.
- Wenn die virtuelle Kanalanwendung des Servers abgeschlossen ist, schließt sie den virtuellen Kanal und gibt alle zugewiesenen Ressourcen frei.
Erstellen eines eigenen virtuellen Kanals mit dem Virtual Channel SDK
Hinweis:
Citrix SDKs sind im Citrix Developer Portal unter https://developer.cloud.com verfügbar.
Das Erstellen eines virtuellen Kanals mit dem Virtual Channel SDK erfordert fortgeschrittene Programmierkenntnisse. Verwenden Sie diese Methode, um einen wichtigen Kommunikationspfad zwischen Client und Server bereitzustellen. Zum Beispiel, wenn Sie die Verwendung eines Geräts auf der Clientseite, wie z. B. eines Scanners, implementieren, das mit einem Prozess in der Sitzung verwendet werden soll.
Hinweis:
Das Virtual Channel SDK erfordert das WFAPI SDK, um die Serverseite des virtuellen Kanals zu schreiben.
Aufgrund der verbesserten Sicherheit für Citrix Virtual Apps and Desktops müssen Sie angeben, welche virtuellen Kanäle in einer ICA-Sitzung geöffnet werden dürfen. Weitere Informationen finden Sie unter Richtlinieneinstellungen für die Zulassungsliste virtueller Kanäle.
Erstellen eines eigenen virtuellen Kanals mit dem ICA Client Object SDK
Das Erstellen eines virtuellen Kanals mit dem ICA Client Object (ICO) ist einfacher als die Verwendung des Virtual Channel SDK. Verwenden Sie das ICO, indem Sie in Ihrem Programm ein benanntes Objekt mit der Methode CreateChannels erstellen.
Wichtig:
Aufgrund der verbesserten Sicherheit ab Version 10.00 von Citrix Receiver für Windows und höher (und Citrix Workspace-Apps für Windows) müssen Sie beim Erstellen eines ICO-virtuellen Kanals einen zusätzlichen Schritt ausführen.
Pass-Through-Funktionalität virtueller Kanäle
Die meisten von Citrix bereitgestellten virtuellen Kanäle funktionieren unverändert, wenn Sie die Citrix Workspace-App für Windows innerhalb einer ICA-Sitzung (auch als Pass-Through-Sitzung bezeichnet) verwenden. Bei der Verwendung des Clients in zusätzlichen Hops sind jedoch einige Überlegungen anzustellen.
Die folgenden Funktionen arbeiten in einzelnen oder mehreren Hops auf die gleiche Weise:
- Client-COM-Port-Zuordnung
- Client-Laufwerkszuordnung
- Client-Druckerzuordnung
- Client-UPD
- Überwachung der Endbenutzererfahrung
- Generisches USB
- Kerberos
- Multimedia-Unterstützung
- Smartcard-Unterstützung
- Transparente Schlüsselweiterleitung
- Twain
Aufgrund der inhärenten Natur der Latenz und Faktoren wie Komprimierung, Dekomprimierung und Rendering, die bei jedem Hop ausgeführt werden, kann die Leistung mit jedem zusätzlichen Hop, den der Client durchläuft, beeinträchtigt werden. Die betroffenen Bereiche sind:
- Bidirektionales Audio
- Dateiübertragungen
- Generische USB-Umleitung
- Nahtlos
- Thinwire
Wichtig:
Standardmäßig sind die Clientlaufwerke, die von einer Instanz des Clients, die in einer Pass-Through-Sitzung ausgeführt wird, zugeordnet werden, auf die Clientlaufwerke des verbindenden Clients beschränkt.
Pass-Through-Funktionalität virtueller Kanäle zwischen einer Citrix Virtual Desktop-Sitzung und einer Citrix Virtual App-Sitzung
Die meisten von Citrix bereitgestellten virtuellen Kanäle funktionieren unverändert, wenn Sie die Citrix Workspace-App für Windows innerhalb einer ICA-Sitzung auf einem Citrix Virtual Desktops-Server (auch bekannt als Pass-Through-Sitzung) verwenden.
Insbesondere auf dem Citrix Virtual Desktops-Server gibt es einen VDA-Hook, der picaPassthruHook ausführt. Dieser Hook lässt den Client glauben, er würde auf einem CPS-Server ausgeführt, und versetzt den Client in seinen traditionellen Pass-Through-Modus.
Wir unterstützen die folgenden traditionellen virtuellen Kanäle und deren Funktionalität:
- Client
- Client-COM-Port-Zuordnung
- Clientlaufwerkzuordnung
- Clientdruckerzuordnung
- Generisches USB (aufgrund der Leistung eingeschränkt)
- Multimedia-Unterstützung
- Smartcard-Unterstützung
- SSON
- Transparente Schlüsselweiterleitung
Sicherheit und ICA-virtuelle Kanäle
Die Absicherung der Nutzung ist ein wichtiger Bestandteil der Planung, Entwicklung und Implementierung virtueller Kanäle. In diesem Dokument finden Sie mehrere Verweise auf spezifische Sicherheitsbereiche.
Best Practices
Öffnen Sie virtuelle Kanäle, wenn Sie eine Verbindung herstellen und wiederherstellen. Schließen Sie virtuelle Kanäle, wenn Sie sich abmelden und die Verbindung trennen.
Beachten Sie die folgenden Richtlinien, wenn Sie Skripte erstellen, die virtuelle Kanalfunktionen verwenden.
Benennung der virtuellen Kanäle:
Sie können maximal 32 virtuelle Kanäle erstellen. Siebzehn der 32 Kanäle sind für spezielle Zwecke reserviert.
-
Namen virtueller Kanäle dürfen nicht länger als sieben Zeichen sein.
-
Die ersten drei Zeichen sind für den Herstellernamen reserviert und die nächsten vier für den Kanaltyp. Zum Beispiel steht CTXAUD für den virtuellen Audiokanal von Citrix.
Virtuelle Kanäle werden durch einen siebenstelligen (oder kürzeren) ASCII-Namen bezeichnet. In einigen früheren Versionen des ICA-Protokolls wurden virtuelle Kanäle nummeriert. Die Nummern werden jetzt dynamisch basierend auf dem ASCII-Namen zugewiesen, was die Implementierung vereinfacht. Benutzer, die virtuellen Kanalcode nur für den internen Gebrauch entwickeln, können jeden siebenstelligen Namen verwenden, der nicht mit bestehenden virtuellen Kanälen in Konflikt steht. Verwenden Sie nur Zahlen sowie Groß- und Kleinbuchstaben des ASCII-Zeichensatzes. Befolgen Sie die bestehende Namenskonvention, wenn Sie eigene virtuelle Kanäle hinzufügen. Es gibt mehrere vordefinierte Kanäle. Die vordefinierten Kanäle beginnen mit dem OEM-Bezeichner CTX und sind nur für die Verwendung durch Citrix vorgesehen.
Double-Hop-Unterstützung:
| Virtueller Kanal | Wird Double-Hop unterstützt? |
|---|---|
| Audio | Nein |
| Browserinhaltsumleitung | Nein |
| CDM | Ja |
| CEIP | Nein |
| Zwischenablage | Ja |
| Continuum (MRVC) | Nein |
| Steuerungs-VC | Ja |
| HTML5-Video-Umleitung (v1) | Ja |
| Tastatur, Maus | Ja |
| MultiTouch | Nein |
| NSAPVC | Nein |
| Ja | |
| SensVC | Nein |
| Smartcard | Ja |
| Twain | Ja |
| USB VC | Ja |
| WAYCOM-Geräte -K2M mit USB VC | Ja |
| Webcam-Videokomprimierung | Ja |
| Windows Media-Umleitung | Ja |
Siehe auch
- ICA Virtual Channel SDK
- Das Citrix Developer Network ist die zentrale Anlaufstelle für alle technischen Ressourcen und Diskussionen zur Verwendung von Citrix SDKs. In diesem Netzwerk finden Sie Zugriff auf SDKs, Beispielcode und Skripte, Erweiterungen und Plug-ins sowie SDK-Dokumentation. Ebenfalls enthalten sind die Foren des Citrix Developer Network, in denen technische Diskussionen zu jedem der Citrix SDKs stattfinden.
In diesem Artikel
- Was sind ICA virtuelle Kanäle?
- Erstellen eines eigenen virtuellen Kanals mit dem Virtual Channel SDK
- Erstellen eines eigenen virtuellen Kanals mit dem ICA Client Object SDK
- Pass-Through-Funktionalität virtueller Kanäle
- Pass-Through-Funktionalität virtueller Kanäle zwischen einer Citrix Virtual Desktop-Sitzung und einer Citrix Virtual App-Sitzung
- Sicherheit und ICA-virtuelle Kanäle
- Best Practices
- Siehe auch