Citrix Virtual Apps and Desktops

Canali virtuali Citrix ICA®

Avviso:

La modifica errata del Registro di sistema può causare seri problemi che potrebbero richiedere la reinstallazione del sistema operativo. Citrix non può garantire che i problemi derivanti dall’uso errato dell’Editor del Registro di sistema possano essere risolti. Utilizzare l’Editor del Registro di sistema a proprio rischio. Assicurarsi di eseguire il backup del Registro di sistema prima di modificarlo.

Cosa sono i canali virtuali ICA?

Gran parte delle funzionalità e della comunicazione tra l’app Citrix Workspace™ e i server Citrix Virtual Apps and Desktops™ avviene tramite canali virtuali. I canali virtuali sono una parte necessaria dell’esperienza di computing remoto con i server Citrix Virtual Apps and Desktops. I canali virtuali vengono utilizzati per:

  • Audio
  • Porte COM
  • Dischi
  • Grafica
  • Porte LPT
  • Stampanti
  • Smart card
  • Canali virtuali personalizzati di terze parti
  • Video

Nuovi canali virtuali vengono talvolta rilasciati con le nuove versioni dei server Citrix Virtual Apps and Desktops e dei prodotti app Citrix Workspace per fornire maggiori funzionalità.

Canali virtuali

Un canale virtuale è costituito da un driver virtuale lato client che comunica con un’applicazione lato server. Citrix Virtual Apps and Desktops include vari canali virtuali. Sono progettati per consentire a clienti e fornitori di terze parti di creare i propri canali virtuali utilizzando uno dei Software Development Kit (SDK) forniti.

I canali virtuali forniscono un modo sicuro per svolgere varie attività. Ad esempio, un’applicazione in esecuzione su un server Citrix Virtual Apps che comunica con un dispositivo lato client o un’applicazione che comunica con l’ambiente lato client.

Sul lato client, i canali virtuali corrispondono ai driver virtuali. Ogni driver virtuale fornisce una funzione specifica. Alcuni sono necessari per il normale funzionamento, altri sono opzionali. I driver virtuali operano a livello del protocollo del layer di presentazione. Possono esserci diversi protocolli attivi in qualsiasi momento tramite canali di multiplexing forniti dal layer del protocollo Windows Station (WinStation).

Le seguenti funzioni sono contenute nel valore del Registro di sistema VirtualDriver sotto questo percorso del Registro di sistema:

HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0

Oppure

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0 (per 64 bit)

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

Nota:

È possibile disabilitare funzionalità client specifiche rimuovendo uno o più di questi valori dalla chiave del Registro di sistema. Ad esempio, se si desidera rimuovere il Client Clipboard, rimuovere la parola Clipboard.

Questo elenco contiene i file del driver virtuale client e le rispettive funzioni. Citrix Virtual Apps e l’app Citrix Workspace per Windows utilizzano questi file. Sono sotto forma di librerie a collegamento dinamico (modalità utente) e non driver Windows (modalità kernel), ad eccezione di USB generico come descritto nel canale virtuale USB generico.

  • vd3dn.dll – Canale virtuale Direct3D utilizzato per il reindirizzamento della composizione del desktop
  • vdcamN.dll – Audio bidirezionale
  • vdcdm30n.dll – Mapping delle unità client
  • vdcom30N.dll - Mapping delle porte COM client
  • vdcpm30N.dll – Mapping delle stampanti client
  • vdctln.dll – Canale di controllo ICA
  • vddvc0n.dll – Canale virtuale dinamico
  • vdeuemn.dll - Monitoraggio dell’esperienza utente finale
  • vdgusbn.dll – Canale virtuale USB generico
  • vdkbhook.dll – Pass-through trasparente dei tasti
  • vdlfpn.dll – Canale di visualizzazione Framehawk su trasporto simile a UDP
  • vdmmn.dll – Supporto multimediale
  • vdmrvc.dll – Canale virtuale Mobile Receiver
  • vdmtchn.dll - Supporto multi-touch
  • vdscardn.dll – Supporto smart card
  • vdsens.dll – Canale virtuale dei sensori
  • vdspl30n.dll – UPD client
  • vdsspin.dll – Kerberos
  • vdtuin.dll – Interfaccia utente trasparente
  • vdtw30n.dll – Thinwire client
  • vdtwin.dll – Seamless
  • vdtwn.dll – Twain

Alcuni canali virtuali sono compilati in altri file. Ad esempio, il mapping degli appunti è disponibile in wfica32.exe.

Compatibilità a 64 bit

L’app Citrix Workspace per Windows è compatibile a 64 bit. Come per la maggior parte dei binari compilati a 32 bit, questi file client hanno equivalenti compilati a 64 bit:

  • brapi64.dll
  • confmgr.dll
  • ctxlogging.dll
  • ctxmui.dll
  • icaconf.exe
  • icaconfs.dll
  • icafile.dll
  • pnipcn64.dll
  • pnsson.dll
  • ssoncom.exe
  • ssonstub.dll
  • vdkbhook64.dll

Canale virtuale USB generico

L’implementazione del canale virtuale USB generico utilizza due driver in modalità kernel insieme al driver del canale virtuale vdgusbn.dll:

  • ctxusbm.sys
  • ctxusbr.sys

Come funzionano i canali virtuali ICA

I canali virtuali vengono caricati in diversi modi. La Shell (WfShell per il server e PicaShell per la workstation) carica alcuni canali virtuali. Alcuni canali virtuali sono ospitati come servizi Windows.

Moduli di canali virtuali caricati dalla Shell, ad esempio:

  • EUEM
  • Twain
  • Appunti
  • Multimedia
  • Condivisione sessione seamless
  • Fuso orario

Alcuni sono caricati in modalità kernel, ad esempio:

  • CtxDvcs.sys – Canale virtuale dinamico
  • Icausbb.sys – Reindirizzamento USB generico
  • Picadm.sys – Mapping delle unità client
  • Picaser.sys – Reindirizzamento delle porte COM
  • Picapar.sys – Reindirizzamento delle porte LPT

Canale virtuale grafico lato server

A partire da XenApp 7.0 e XenDesktop 7.0, ctxgfx.exe ospita il canale virtuale grafico per le sessioni basate su workstation e server terminal. Ctxgfx ospita moduli specifici della piattaforma che interagiscono con il driver corrispondente (Icardd.dll per RDSH e vdod.dll e vidd.dll per workstation).

Per le distribuzioni XenDesktop® 3D Pro, viene installato un driver grafico OEM per la GPU corrispondente sul VDA. Ctxgfx carica moduli adattatori specializzati per interagire con il driver grafico OEM.

Hosting di canali specializzati nei servizi Windows

Sui server Citrix Virtual Apps and Desktops, vari canali sono ospitati come servizi Windows. Tale hosting fornisce una semantica uno-a-molti per più applicazioni in una sessione e più sessioni sul server. Esempi di tali servizi includono:

  • Servizio di reindirizzamento dispositivi Citrix
  • Servizio canali virtuali dinamici Citrix
  • Servizio di monitoraggio dell’esperienza utente finale Citrix
  • Servizio canali virtuali di posizione e sensori Citrix
  • Servizio di reindirizzamento MultiTouch Citrix
  • Servizio Print Manager Citrix
  • Servizio Smart card Citrix
  • Servizio di reindirizzamento audio Citrix (solo Citrix Virtual Desktops™)

Il canale virtuale audio su Citrix Virtual Apps è ospitato utilizzando il servizio Audio di Windows.

Sul lato server, tutti i canali virtuali client vengono instradati tramite il driver WinStation, Wdica.sys. Sul lato client, il driver WinStation corrispondente, integrato in wfica32.exe, interroga i canali virtuali client. Questa immagine illustra la connessione client-server del canale virtuale.

Connessioni canali virtuali

Questa panoramica contiene uno scambio di dati client-server utilizzando un canale virtuale.

  1. Il client si connette al server Citrix Virtual Apps and Desktops. Il client passa al server le informazioni sui canali virtuali che supporta.
  2. L’applicazione lato server si avvia, ottiene un handle per il canale virtuale e, facoltativamente, interroga per ulteriori informazioni sul canale.
  3. Il driver virtuale client e l’applicazione lato server passano i dati utilizzando i due metodi seguenti:

    • Se l’applicazione server ha dati da inviare al client, i dati vengono inviati immediatamente al client. Quando il client riceve i dati, il driver WinStation demultiplexa i dati del canale virtuale dal flusso ICA e li passa immediatamente al driver virtuale client.
    • Se il driver virtuale client ha dati da inviare al server, i dati vengono inviati la prossima volta che il driver WinStation lo interroga. Quando il server riceve i dati, questi vengono messi in coda finché l’applicazione del canale virtuale non li legge. Non esiste un modo per avvisare l’applicazione del canale virtuale server che i dati sono stati ricevuti.
  4. Quando l’applicazione del canale virtuale server è completata, chiude il canale virtuale e libera le risorse allocate.

Creazione di un proprio canale virtuale utilizzando l’SDK del canale virtuale

Nota:

Gli SDK Citrix sono disponibili nel portale Citrix Developer all’indirizzo https://developer.cloud.com.

La creazione di un canale virtuale utilizzando l’SDK del canale virtuale richiede conoscenze di programmazione intermedie. Utilizzare questo metodo per fornire un percorso di comunicazione principale tra il client e il server. Ad esempio, se si sta implementando l’utilizzo di un dispositivo lato client, come uno scanner, da utilizzare con un processo nella sessione.

Nota:

Creazione di un proprio canale virtuale utilizzando l’SDK ICA Client Object

La creazione di un canale virtuale utilizzando l’ICA Client Object (ICO) è più semplice rispetto all’utilizzo dell’SDK del canale virtuale. Utilizzare l’ICO creando un oggetto denominato nel programma utilizzando il metodo CreateChannels.

Importante:

A causa della sicurezza migliorata a partire dalla versione 10.00 di Citrix Receiver per Windows e successive (e delle app Citrix Workspace per Windows), è necessario eseguire un passaggio aggiuntivo durante la creazione di un canale virtuale ICO.

Funzionalità pass-through dei canali virtuali

La maggior parte dei canali virtuali forniti da Citrix opera senza modifiche quando si utilizza l’app Citrix Workspace per Windows all’interno di una sessione ICA (nota anche come sessione pass-through). Ci sono considerazioni quando si utilizza il client in hop aggiuntivi.

Le seguenti funzioni operano allo stesso modo in hop singoli o multipli:

  • Mapping delle porte COM client
  • Mapping delle unità client
  • Mapping delle stampanti client
  • UPD client
  • Monitoraggio dell’esperienza utente finale
  • USB generico
  • Kerberos
  • Supporto multimediale
  • Supporto smart card
  • Pass-through trasparente dei tasti
  • Twain

A causa della natura intrinseca della latenza e di fattori come la compressione e la decompressione e il rendering eseguiti a ogni hop, le prestazioni potrebbero essere influenzate da ogni hop aggiuntivo che il client subisce. Le aree interessate sono:

  • Audio bidirezionale
  • Trasferimenti di file
  • Reindirizzamento USB generico
  • Seamless
  • Thinwire

Importante:

Per impostazione predefinita, le unità client mappate da un’istanza del client in esecuzione in una sessione pass-through sono limitate alle unità client del client di connessione.

Funzionalità pass-through dei canali virtuali tra una sessione Citrix Virtual Desktop e una sessione Citrix Virtual App

La maggior parte dei canali virtuali forniti da Citrix opera senza modifiche quando si utilizza l’app Citrix Workspace per Windows all’interno di una sessione ICA su un server Citrix Virtual Desktops (nota anche come sessione pass-through).

In particolare, sul server Citrix Virtual Desktops, esiste un hook VDA che esegue picaPassthruHook. Questo hook fa sì che il client pensi di essere in esecuzione su un server CPS, e pone il client nella sua tradizionale modalità pass-through.

Supportiamo i seguenti canali virtuali tradizionali e le loro funzionalità:

  • Client
  • Mapping delle porte COM client
  • Mapping delle unità client
  • Mapping delle stampanti client
  • USB generico (limitato a causa delle prestazioni)
  • Supporto multimediale
  • Supporto smart card
  • SSON
  • Pass-through trasparente dei tasti

Sicurezza e canali virtuali ICA

Proteggere l’utilizzo è una parte importante della pianificazione, dello sviluppo e dell’implementazione dei canali virtuali. Ci sono diversi riferimenti ad aree specifiche della sicurezza in questo documento.

Procedure consigliate

Aprire i canali virtuali quando ci si Connette e ci si Riconnette. Chiudere i canali virtuali quando ci si disconnette e si Disconnette.

Tenere a mente le seguenti linee guida quando si creano script che utilizzano le funzioni dei canali virtuali.

Denominazione dei canali virtuali:

È possibile creare un massimo di 32 canali virtuali. Diciassette dei 32 canali sono riservati per scopi speciali.

  • I nomi dei canali virtuali non devono superare i sette caratteri.

  • I primi tre caratteri sono riservati al nome del fornitore e i successivi quattro al tipo di canale. Ad esempio, CTXAUD rappresenta il canale virtuale audio Citrix.

I canali virtuali sono identificati da un nome ASCII di sette caratteri (o più breve). In alcune versioni precedenti del protocollo ICA, i canali virtuali erano numerati. I numeri sono ora assegnati dinamicamente in base al nome ASCII, semplificando l’implementazione. Gli utenti che sviluppano codice per canali virtuali solo per uso interno possono utilizzare qualsiasi nome di sette caratteri che non entri in conflitto con i canali virtuali esistenti. Utilizzare solo numeri e caratteri ASCII maiuscoli e minuscoli. Seguire la convenzione di denominazione esistente quando si aggiungono i propri canali virtuali. Esistono diversi canali predefiniti. I canali predefiniti iniziano con l’identificatore OEM CTX e sono destinati all’uso esclusivo di Citrix.

Supporto Double-Hop:

Canale virtuale Il double hop è supportato?
Audio No
Reindirizzamento del contenuto del browser No
CDM
CEIP No
Appunti
Continuum (MRVC) No
VC di controllo
Reindirizzamento video HTML5 (v1)
Tastiera, Mouse
MultiTouch No
NSAPVC No
Stampa
SensVC No
Smart card
Twain
VC USB
Dispositivi WAYCOM -K2M che utilizzano VC USB
Compressione video webcam
Reindirizzamento Windows Media

Vedere anche

  • SDK del canale virtuale ICA
  • Il Citrix Developer Network è la sede di tutte le risorse tecniche e le discussioni che coinvolgono l’uso degli SDK Citrix. In questa rete, è possibile trovare accesso a SDK, codice di esempio e script, estensioni e plug-in e documentazione SDK. Sono inclusi anche i forum del Citrix Developer Network, dove si svolgono discussioni tecniche su ciascuno degli SDK Citrix.