Citrix Virtual Apps and Desktops

Virtuelle ICA-Kanäle von Citrix

Warnung

Eine unsachgemäße Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen und eine Neuinstallation des Betriebssystems erforderlich machen. Citrix übernimmt keine Garantie dafür, dass Probleme, die auf eine unsachgemäße Verwendung des Registrierungs-Editors zurückzuführen sind, behoben werden können. Die Verwendung des Registrierungs-Editors geschieht daher auf eigene Gefahr. Machen Sie auf jeden Fall ein Backup der Registrierung, bevor Sie sie bearbeiten.

Was sind virtuelle ICA-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 erforderlich für den Remotezugriff auf Citrix Virtual Apps and Desktops-Server. Virtuelle Kanäle werden für Folgendes verwendet:

  • Audio
  • COM-Ports
  • Datenträger
  • Grafik
  • LPT-Ports
  • Drucker
  • Smartcards
  • Benutzerdefinierte virtuelle Kanäle von Drittanbietern
  • Video

Gelegentlich werden neue virtuelle Kanäle mit neuen Versionen der Citrix Virtual Apps and Desktops-Server und der Citrix Workspace-App veröffentlicht, um mehr Funktionalität zu bieten.

Virtuelle Kanäle

Ein virtueller Kanal besteht aus einem clientseitigen virtuellen Treiber, der mit einer serverseitigen Anwendung kommuniziert. Im Lieferumfang von Citrix Virtual Apps and Desktops sind mehrere virtuelle Kanäle enthalten. Diese sollen es Kunden und Drittanbietern ermöglichen, eigene virtuelle Kanäle mit einem der mitgelieferten Software Development Kits (SDKs) zu entwickeln.

Virtuelle Kanäle bieten eine sichere Möglichkeit, verschiedene Aufgaben zu erfüllen. Beispiele sind Anwendungen auf einem Citrix Virtual Apps-Server, die mit einem clientseitigen Gerät kommunizieren, oder Anwendungen, die mit der clientseitigen Umgebung kommunizieren.

Auf der Clientseite entsprechen virtuelle Kanäle virtuellen Treibern. Jeder virtuelle Treiber hat eine bestimmte Funktion. Einige sind für den Normalbetrieb erforderlich, während andere optional genutzt werden können. Virtuelle Treiber agieren auf der Protokollebene der Präsentationsschicht. Durch Multiplexing von Kanälen, die durch die Windows Station (WinStation)-Protokollebene bereitgestellt werden, können jederzeit mehrere Protokolle aktiv sein.

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-Versionen)

  • Thinwire3.0 (erforderlich)
  • ClientDrive
  • ClentPrinterQueue
  • ClentPrinterPort
  • Zwischenablage
  • ClientComm
  • ClientAudio
  • LicenseHandler (erforderlich)
  • TWI (erforderlich)
  • SmartCard
  • ICACTL (erforderlich)
  • SSPI
  • TwainRdr
  • UserEXperience
  • Vd3d

Hinweis:

Sie können spezielle 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 sind als Dynamic Link Libraries (Benutzermodus) und nicht als Windows-Treiber (Kernelmodus) konzipiert, mit Ausnahme von Generischem USB, wie unter “Virtueller Kanal für Generisches USB” beschrieben.

  • vd3dn.dll – Virtueller Kanal für Direct3D, verwendet für die Desktopgestaltungsumleitung
  • vdcamN.dll – Bidirektionales Audio
  • vdcdm30n.dll – Clientlaufwerkzuordnung
  • vdcom30N.dll – Client-COM-Portzuordnung
  • vdcpm30N.dll – Clientdruckerzuordnung
  • vdctln.dll – ICA-Steuerungskanal
  • vddvc0n.dll – Dynamischer virtueller Kanal
  • vdeuemn.dll – End User Experience Monitoring
  • vdgusbn.dll – Virtueller Kanal für Generisches USB
  • vdkbhook.dll – Transparentes Schlüsselpassthrough
  • vdlfpn.dll – Framehawk-Anzeigekanal mit Übertragung auf UDP-Basis
  • vdmmn.dll – Multimedia-Unterstützung
  • vdmrvc.dll – Virtueller Kanal für Mobile Receiver
  • vdmtchn.dll – Multitouch-Unterstützung
  • vdscardn.dll – Smartcard-Unterstützung
  • vdsens.dll – Virtueller Kanal für Sensoren
  • 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 werden in andere Dateien kompiliert. Die Zwischenablagezuordnung ist beispielsweise in wfica32.exe verfügbar.

64-Bit-Kompatibilität

Die Citrix Workspace-App für Windows ist 64-Bit-kompatibel. Wie für die meisten Binärdateien, die für 32 Bit kompiliert sind, gibt es auch für diese Clientdateien 64-Bit-Ä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 Kanal für Generisches USB

Beim Implementieren eines virtuellen Kanals für Generisches USB werden zwei Kernelmodustreiber und der virtuelle Kanaltreiber vdgusbn.dll verwendet:

  • ctxusbm.sys
  • ctxusbr.sys

Funktionsweise virtueller ICA -Kanäle

Virtuelle Kanäle werden auf verschiedene Art geladen. Mit der Shell (WFShell für den Server und PicaShell für die Workstation) werden einige virtuelle Kanäle geladen. Einige virtuelle Kanäle werden als Windows-Dienste gehostet.

Beispiele virtueller Kanalmodule, die von der Shell geladen werden:

  • EUEM
  • TWAIN
  • Zwischenablage
  • Multimedia
  • Seamless-Sitzungsfreigabe
  • Zeitzone

Manche werden im Kernelmodus geladen. Beispiel sind:

  • CtxDvcs.sys – Dynamischer virtueller Kanal
  • Icausbb.sys – Generische USB-Umleitung
  • Picadm.sys – Clientlaufwerkzuordnung
  • Picaser.sys – COM-Portumleitung
  • Picapar.sys – LPT-Portumleitung

Virtueller Kanal für Grafiken auf der Serverseite

Ab XenApp 7.0 und XenDesktop7.0 hostet ctxgfx.exe den virtuellen Grafikkanal für Sitzungen auf Arbeitsstations- und Terminalserverbasis. Ctxgfx hostet plattformspezifische Module, die mit dem entsprechenden Treiber interagieren (Icardd.dll für RDSH sowie vdod.dll und vidd.dll für Arbeitsstation).

Für XenDesktop 3D Pro-Bereitstellungen wird ein OEM-Grafiktreiber für den entsprechenden Grafikprozessor auf dem VDA installiert. Ctxgfx lädt spezielle Adaptermodule für die Interaktion mit dem OEM-Grafiktreiber.

Ausführen 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 Zuordnungssemantik vom Typ 1:n für mehrere Anwendungen in einer Sitzung und für mehrere Sitzungen auf dem Server. Beispiele für derartige Dienste:

  • Citrix-Geräteumleitungsdienst
  • Citrix-Dienst für dynamische virtuelle Kanäle
  • Citrix-Dienst für End User Experience Monitoring
  • Citrix-Dienst für virtuelle Standort- und Sensorkanäle
  • Citrix-Multitouch-Umleitungsdienst
  • Citrix-Druckmanagerdienst
  • Citrix-Smartcarddienst
  • Citrix-Audioumleitungsdienst (nur Citrix Virtual Desktops)

Der virtuelle Audiokanal in 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 werden die virtuellen Client-Kanäle vom entsprechenden WinStation-Treiber abgefragt, der in wfica32.exe integriert ist. Dieses Bild veranschaulicht die Client-Server-Verbindung mit virtuellem Kanal.

Verbindungen mit virtuellem Kanal

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

  1. Der Client stellt eine Verbindung mit dem Citrix Virtual Apps and Desktops-Server her. Der Client sendet Informationen zu den unterstützten virtuellen Kanälen an den Server.
  2. Die serverseitige Anwendung wird gestartet, erhält ein Handle für den virtuellen Kanal und fragt optional weitere Informationen zum Kanal ab.
  3. Der virtuelle Clienttreiber und die serverseitige Anwendung nutzen die folgenden zwei Methoden zur Datenübertragung:

    • Wenn Daten von der Serveranwendung an den Client zu senden sind, werden die Daten sofort übertragen. Wenn der Client die Daten empfängt, werden die über den virtuellen Kanal übertragenen Daten aus dem ICA-Datenstrom vom WinStation-Treiber demultiplext und sofort an den virtuellen Clienttreiber weitergeleitet.
    • Wenn Daten vom virtuellen Clienttreiber an den Server zu senden sind, werden sie bei der nächsten Datenabfrage durch den WinStation-Treiber übertragen. Wenn der Server die Daten empfängt, bleiben sie bis zur Auswertung durch die virtuelle Kanalanwendung in der Warteschlange. Es gibt keine Möglichkeit, die virtuelle Kanalanwendung des Servers über den Datenempfang zu informieren.
  4. Nach Abschluss der virtuellen Kanalanwendung auf dem Server werden der virtuelle Kanal geschlossen und alle zugewiesenen Ressourcen freigegeben.

Erstellen eines eigenen virtuellen Kanals mit dem Virtual Channel SDK

Das Erstellen eines virtuellen Kanals mit dem Virtual Channel SDK erfordert fortgeschrittene Programmierkenntnisse. Verwenden Sie diese Methode, um einen größeren Kommunikationspfad zwischen Client und Server bereitzustellen. Dies gilt beispielsweise beim Implementieren eines Geräts auf dem Client (z. B. eines Scanners), der mit einem Prozess in der Sitzung verwendet werden soll.

Hinweise:

  • Das Virtual Channel SDK erfordert, dass das WFAPI SDK die serverseitige Komponente des virtuellen Kanals schreibt.

  • Aufgrund der erhöhten Sicherheit für Citrix Virtual Apps and Desktops und die Citrix Workspace-App für Windows ist bei der Installation eines benutzerdefinierten virtuellen Kanals ein zusätzlicher Schritt erforderlich.

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. Zur Verwendung des ICO erstellen Sie mit dem CreateChannels-Verfahren ein benanntes Objekt in Ihrem Programm.

Wichtig:

Aufgrund der erhöhten Sicherheit für Citrix Receiver für Windows ab Version 10.00 (und Citrix Workspace-Apps für Windows) ist bei der Installation eines virtuellen ICO-Kanals ein zusätzlicher Schritt erforderlich.

Weitere Informationen finden Sie im Client Object API Specification Programmer’s Guide.

Passthrough-Funktionalität virtueller Kanäle

Bei Verwendung der Citrix Workspace-App für Windows in einer ICA-Sitzung (auch Passthrough-Sitzung genannt) funktionieren die meisten von Citrix bereitgestellten virtuellen Kanäle unverändert. Berücksichtigen Sie jedoch Folgendes, wenn Sie den Client in zusätzlichen Hops verwenden.

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

  • Client-COM-Portzuordnung
  • Clientlaufwerkszuordnung
  • Clientdruckerzuordnung
  • Client-UPD
  • End User Experience Monitoring
  • Generisches USB
  • Kerberos
  • Multimedia-Unterstützung
  • Smartcard-Unterstützung
  • Transparentes Schlüsselpassthrough
  • TWAIN

Da Latenz und Faktoren wie Komprimierung, Dekomprimierung und Rendering jedoch bei jedem Hop auftreten, kann jeder zusätzliche Client-Hop die Leistung beeinträchtigen. Dies betrifft folgende Bereiche:

  • Bidirektionales Audio
  • Dateiübertragungen
  • Generische USB-Umleitung
  • Seamless
  • Thinwire

Wichtig:

Standardmäßig sind die von einer Client-Instanz in einer Passthrough-Sitzung zugeordneten Clientlaufwerke auf die Clientlaufwerke des verbindenden Clients beschränkt.

Passthrough-Funktionalität virtueller Kanäle zwischen einer Citrix Virtual Desktop-Sitzung und einer Citrix Virtual App-Sitzung

Bei Verwendung der Citrix Workspace-App für Windows in einer ICA-Sitzung auf einem Citrix Virtual Desktops-Server (auch Passthrough-Sitzung genannt) funktionieren die meisten von Citrix bereitgestellten virtuellen Kanäle unverändert.

Auf dem Citrix Virtual Desktops-Server gibt es einen speziellen VDA-Hook, der picaPassthruHook ausführt. Durch diesen Hook läuft der Client wie auf einem CPS-Server und wird in den traditionellen Passthrough-Modus versetzt.

Wir unterstützen die folgenden traditionellen virtuellen Kanäle und ihre Funktionalität:

  • Client
  • Client-COM-Portzuordnung
  • Clientlaufwerkszuordnung
  • Clientdruckerzuordnung
  • Generisches USB (leistungsbeschränkt)
  • Multimedia-Unterstützung
  • Smartcard-Unterstützung
  • SSON
  • Transparentes Schlüsselpassthrough

Sicherheit und virtuelle ICA-Kanäle

Bei der Planung, Entwicklung und Implementierung virtueller Kanäle ist eine sichere Nutzung von entscheidender Bedeutung. Dieses Dokument enthält mehrere Verweise auf spezielle Sicherheitsbereiche.

Bewährte Methoden

Öffnen Sie virtuelle Kanäle beim Verbinden und Wiederverbinden. Schließen Sie virtuelle Kanäle, wenn Sie sich abmelden und die Verbindung trennen.

Beachten Sie die folgenden Richtlinien, wenn Sie Skripts erstellen, die virtuelle Kanalfunktionen verwenden.

Benennen der virtuellen Kanäle:

Sie können maximal 32 virtuelle Kanäle erstellen. Siebzehn der 32 Kanäle sind für besondere Zwecke reserviert.

  • Die Namen virtueller Kanäle dürfen nicht mehr als sieben Zeichen enthalten.

  • Die ersten drei Zeichen sind für den Anbieternamen und die folgenden vier Zeichen für den Kanaltyp reserviert. CTXAUD stellt beispielsweise den virtuellen Audiokanal von Citrix dar.

Virtuelle Kanäle werden mit einem ASCII-Namen aus maximal sieben Zeichen bezeichnet. In einigen früheren Versionen des ICA-Protokolls wurden virtuelle Kanäle nummeriert. Die Nummern werden nun dynamisch auf der Basis des ASCII-Namens zugewiesen, da dies die Implementierung vereinfacht. Benutzer, die ihren virtuellen Kanalcode nur für den internen Gebrauch entwickeln, können einen beliebigen Namen aus sieben Zeichen verwenden, sofern kein Konflikt mit vorhandenen virtuellen Kanälen auftritt. Verwenden Sie nur Ziffern sowie Groß- und Kleinbuchstaben im ASCII-Format. Verwenden 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 von Citrix zu verwenden.

Double-Hop-Unterstützung:

Virtueller Kanal Wird Double Hop unterstützt
Audio Nein
Umleitung des Browserinhalts Nein
CDM Ja
CEIP Nein
Zwischenablage Ja
Continuum (MRVC) Nein
Control VC Ja
HTML5-Videoumleitung (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
Webcamvideokomprimierung Ja
Windows Media-Umleitung Ja

Siehe auch

  • ICA Virtual Channel SDK
  • Das Citrix Developer Network umfasst alle technischen Ressourcen und Diskussionen zur Verwendung von Citrix SDKs. Sie erhalten Zugriff auf SDKs, Beispielcode und Skripte, Erweiterungen und Plug-Ins sowie die SDK-Dokumentation. Foren zum Citrix Developer Network mit technischen Diskussionen zu den einzelnen Citrix SDKs sind ebenfalls enthalten.