Citrix Virtual Apps and Desktops

Citrix ICA® virtuelle Kanäle

Warnung:

Eine fehlerhafte Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen, die eine Neuinstallation Ihres Betriebssystems erforderlich machen können. Citrix kann nicht garantieren, dass Probleme, die aus der falschen Verwendung des Registrierungs-Editors resultieren, gelöst 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-Ports
  • Laufwerke
  • Grafik
  • LPT-Ports
  • 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 Clientfunktionen 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), mit Ausnahme von Generic USB, wie im virtuellen Generic USB-Kanal beschrieben.

  • vd3dn.dll – Virtueller Direct3D-Kanal für die Umleitung der Desktop-Komposition
  • vdcamN.dll – Bidirektionales Audio
  • vdcdm30n.dll – Client-Laufwerkszuordnung
  • vdcom30N.dll – Client-COM-Port-Zuordnung
  • vdcpm30N.dll – Client-Druckerzuordnung
  • vdctln.dll – ICA-Steuerungskanal
  • vddvc0n.dll – Dynamischer virtueller Kanal
  • vdeuemn.dll – Überwachung der Endbenutzererfahrung
  • vdgusbn.dll – Virtueller Generic USB-Kanal
  • vdkbhook.dll – Transparente Tastendurchleitung
  • vdlfpn.dll – Framehawk-Anzeigekanal über UDP-ähnlichen Transport
  • vdmmn.dll – Multimedia-Unterstützung
  • vdmrvc.dll – Virtueller mobiler Receiver-Kanal
  • 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 auch 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

Virtueller Generic USB-Kanal

Die Implementierung des virtuellen Generic USB-Kanals verwendet zwei Kernelmodus-Treiber zusammen mit dem virtuellen Kanaltreiber vdgusbn.dll:

  • ctxusbm.sys
  • ctxusbr.sys

Funktionsweise von ICA-virtuellen Kanälen

Virtuelle Kanäle werden auf verschiedene Weisen geladen. Die Shell (WfShell für den Server und PicaShell für die Workstation) lädt einige virtuelle Kanäle. Einige virtuelle Kanäle werden als Windows-Dienste gehostet.

Von der Shell geladene virtuelle Kanalmodule, zum Beispiel:

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

Einige werden im Kernelmodus geladen, zum Beispiel:

  • CtxDvcs.sys – Dynamischer virtueller Kanal
  • Icausbb.sys – Generic USB-Umleitung
  • Picadm.sys – Client-Laufwerkszuordnung
  • Picaser.sys – COM-Port-Umleitung
  • Picapar.sys – LPT-Port-Umleitung

Virtueller Grafikkanal auf der Serverseite

Die ctxgfx.exe hostet den virtuellen Grafikkanal für Workstation- und Terminalserver-basierte Sitzungen. Ctxgfx hostet plattformspezifische Module, die mit dem entsprechenden Treiber (Icardd.dll für RDSH und vdod.dll und vidd.dll für Workstation) interagieren.

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 Location and Sensor Virtual Channel Service
  • Citrix MultiTouch Redirection Service
  • Citrix Print Manager Service
  • Citrix Smartcard Service
  • Citrix Audio Redirection Service (nur Citrix Virtual Desktops™)
  • Citrix ICA Status Channel Service

Der virtuelle Audiokanal auf Citrix Virtual Apps wird über den Windows-Audiodienst gehostet.

Auf der Serverseite werden alle virtuellen Client-Kanäle über den WinStation-Treiber Wdica.sys geleitet. Auf der Clientseite fragt der entsprechende WinStation-Treiber, der in wfica32.exe integriert ist, die virtuellen Client-Kanäle ab. Dieses Bild veranschaulicht die Client-Server-Verbindung des virtuellen Kanals.

Verbindungen virtueller Kanäle

Diese Übersicht beschreibt 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 Client-Treiber und die serverseitige Anwendung übergeben Daten mithilfe der 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 Client-Treiber weiter.
    • Wenn der virtuelle Client-Treiber 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.
  4. Wenn die Anwendung des virtuellen Serverkanals 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 mit der Methode CreateChannels ein benanntes Objekt 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 virtuellen ICO-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 einige Überlegungen anzustellen.

Die folgenden Funktionen funktionieren 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 Tasten-Pass-Through
  • 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
  • Seamless
  • Thinwire

Wichtig:

Standardmäßig sind die Client-Laufwerke, die von einer Client-Instanz in einer Pass-Through-Sitzung zugeordnet werden, auf die Client-Laufwerke 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 auf dem Citrix Virtual Desktops-Server gibt es einen VDA-Hook, der picaPassthruHook ausführt. Dieser Hook lässt den Client glauben, er laufe auf einem CPS-Server, 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
  • Client-Laufwerkszuordnung
  • Client-Druckerzuordnung
  • Generisches USB (leistungsbedingt eingeschränkt)
  • Multimedia-Unterstützung
  • Smartcard-Unterstützung
  • SSON
  • Transparente Tasten-Pass-Through

Sicherheit und virtuelle ICA-Kanäle

Die Absicherung der Nutzung ist ein wichtiger Bestandteil der Planung, Entwicklung und Implementierung virtueller Kanäle. In diesem Dokument finden sich mehrere Verweise auf spezifische Sicherheitsbereiche.

Best Practices

Öffnen Sie virtuelle Kanäle, wenn Sie eine Verbindung herstellen (Connect) und wiederherstellen (Reconnect). Schließen Sie virtuelle Kanäle, wenn Sie sich abmelden und die Verbindung trennen (Disconnect).

Beachten Sie die folgenden Richtlinien, wenn Sie Skripte erstellen, die Funktionen virtueller Kanäle 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 Audio-Kanal.

Virtuelle Kanäle werden durch einen sieben Zeichen langen (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 erleichtert. Benutzer, die virtuellen Kanalcode nur für den internen Gebrauch entwickeln, können jeden sieben Zeichen langen 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 ausschließlich für die Verwendung durch Citrix vorgesehen.

Double-Hop-Unterstützung

| Virtueller Kanal | Wird Double-Hop unterstützt? | |–|–| | Audio | Nein | | Browser Content Redirection | Nein | | CDM | Ja | | CEIP | Nein | | Zwischenablage | Ja | | Continuum (MRVC) | Nein | | Control VC | Ja | | HTML5 Video Redirection (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 Redirection | 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.