Citrix ICA® virtuelle Kanäle

Warnung:

Eine falsche Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen, die eine Neuinstallation des 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ßer 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

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 Präsentationsschicht. Es können jederzeit mehrere Protokolle aktiv sein, indem Kanäle gemultiplext werden, die von der Windows Station (WinStation)-Protokollschicht 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
  • Clipboard
  • 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) und nicht als Windows-Treiber (Kernelmodus) vor, mit Ausnahme von Generic USB, wie im virtuellen Generic USB-Kanal 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 Mobile Receiver
  • vdmtchn.dll – Multi-Touch-Unterstützung
  • vdscardn.dll – Smartcard-Unterstützung
  • vdsens.dll – Virtueller Sensoren-Kanal
  • vdspl30n.dll – Client-UPD
  • vdsspin.dll – Kerberos
  • vdtuin.dll – Transparente Benutzeroberfläche
  • vdtw30n.dll – Client Thinwire
  • vdtwin.dll – Seamless
  • 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 verfügen diese Clientdateien über 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 Kernel-Modus-Treiber zusammen mit dem Virtual Channel-Treiber vdgusbn.dll:

  • ctxusbm.sys
  • ctxusbr.sys

Wie ICA Virtual Channels funktionieren

Virtual Channels werden auf verschiedene Weisen 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.

Von der Shell geladene Virtual Channel-Module, zum Beispiel:

  • EUEM
  • Twain
  • Zwischenablage
  • Multimedia
  • Nahtlose Sitzungsfreigabe
  • Zeitzone

Einige werden im Kernelmodus 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

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 Workstations).

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-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 Dienst für virtuelle Standort- und Sensorkanäle
  • Citrix MultiTouch-Umleitungsdienst
  • Citrix Druckmanager-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.

Verbindungen virtueller Kanäle(/de-de/citrix-virtual-apps-desktops/2503/media/virtual-channel-connection.png)

Diese Übersicht enthält einen Client-Server-Datenaustausch über einen virtuellen Kanal.

  1. 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.
  2. Die serverseitige Anwendung startet, erhält ein Handle für den virtuellen Kanal und fragt optional zusätzliche Informationen über den Kanal ab.
  3. 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 Serveranwendung des virtuellen Kanals darüber zu informieren, dass Daten empfangen wurden.
  4. Wenn die Server-Virtual-Channel-Anwendung 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 mittlere Programmierkenntnisse. Verwenden Sie diese Methode, um einen wichtigen Kommunikationspfad zwischen Client und Server bereitzustellen. Zum Beispiel, wenn Sie die Nutzung 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 ein benanntes Objekt in Ihrem Programm 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 einen zusätzlichen Schritt ausführen, wenn Sie einen virtuellen ICO-Kanal erstellen.

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 verwenden (auch bekannt als Pass-Through-Sitzung). Es gibt Überlegungen, wenn der Client in zusätzlichen Hops verwendet wird.

Die folgenden Funktionen funktionieren auf die gleiche Weise in einzelnen oder mehreren Hops:

  • 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 Latenz und Faktoren wie Komprimierung und Dekomprimierung sowie der Rendering-Leistung, die bei jedem Hop ausgeführt wird, 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 als Pass-Through-Sitzung bezeichnet) verwenden.

Insbesondere gibt es auf dem Citrix Virtual Desktops-Server 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-Portzuordnung
  • Clientlaufwerkszuordnung
  • Clientdruckerzuordnung
  • Generisches USB (aufgrund der Leistung eingeschränkt)
  • Multimedia-Unterstützung
  • Smartcard-Unterstützung
  • SSON
  • Transparente Schlüssel-Pass-Through-Funktion

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, die nächsten vier für den Kanaltyp. Zum Beispiel steht CTXAUD für den virtuellen Citrix-Audiokanal.

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 der OEM-Kennung 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
Control VC Ja
HTML5-Video-Umleitung (v1) Ja
Tastatur, Maus Ja
MultiTouch Nein
NSAPVC Nein
Drucken 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, die die Verwendung von Citrix SDKs betreffen. 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.