Canali virtuali ICA® Citrix
Avviso:
La modifica errata del registro può causare seri problemi che potrebbero richiedere la reinstallazione del sistema operativo. Citrix non può garantire che i problemi derivanti dall’uso scorretto di un Editor del Registro possano essere risolti. Utilizzare l’Editor del Registro a proprio rischio. Assicurarsi di eseguire il backup del registro prima di modificarlo.
Cosa sono i canali virtuali ICA?
Gran parte della funzionalità e della comunicazione tra l’app Citrix Workspace™ e i server Citrix DaaS (precedentemente servizio Citrix Virtual Apps and Desktops™) avviene tramite canali virtuali. I canali virtuali sono una parte necessaria dell’esperienza di elaborazione remota con i server Citrix DaaS. 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 i prodotti Citrix DaaS™ e l’app Citrix Workspace per fornire maggiori funzionalità.
Un canale virtuale è costituito da un driver virtuale lato client che comunica con un’applicazione lato server. Citrix DaaS viene fornito con vari canali virtuali inclusi. 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 eseguire 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 di protocollo del livello di presentazione. Possono esserci diversi protocolli attivi in qualsiasi momento tramite la multiplexing dei canali forniti dal livello del protocollo Windows Station (WinStation).
Le seguenti funzioni sono contenute nel valore del registro VirtualDriver sotto questo percorso del registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0
o
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0
(per 64 bit)
- Thinwire3.0 (Obbligatorio)
- ClientDrive
- Coda stampante client
- Porta stampante client
- Appunti
- 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 di registro. Ad esempio, se si desidera rimuovere gli Appunti client, 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 dell’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 – Mappatura unità client
- vdcom30N.dll - Mappatura porta COM client
- vdcpm30N.dll – Mappatura stampante 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 chiave trasparente
- 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 sensori
- vdspl30n.dll – UPD client
- vdsspin.dll – Kerberos
- vdtuin.dll – UI trasparente
- vdtw30n.dll – Thinwire client
- vdtwin.dll – Seamless
- vdtwn.dll – Twain
Alcuni canali virtuali sono compilati in altri file. Ad esempio, la mappatura degli Appunti è disponibile in wfica32.exe
Compatibilità a 64 bit
L’app Citrix Workspace per Windows è compatibile a 64 bit. Come 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 più 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 del canale virtuale caricati dalla Shell, ad esempio:
- EUEM
- Twain
- Appunti
- Multimediale
- 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 – Mappatura unità client
- Picaser.sys – Reindirizzamento porta COM
- Picapar.sys – Reindirizzamento porta LPT
Canale virtuale grafico lato server
A partire da XenApp 7.0 e XenDesktop 7.0, ctxgfx.exe
ospita il canale virtuale grafico sia per le sessioni basate su workstation che su terminal server. 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 DaaS, 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 Smartcard Citrix
- Servizio di reindirizzamento audio Citrix (solo Citrix Virtual Desktops™)
- Servizio canali di stato ICA Citrix
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, esegue il polling dei canali virtuali client. Questa immagine illustra la connessione client-server del canale virtuale.
Questa panoramica contiene uno scambio di dati client-server utilizzando un canale virtuale.
- Il client si connette al server Citrix DaaS. Il client passa le informazioni sui canali virtuali che supporta al server.
- L’applicazione lato server si avvia, ottiene un handle per il canale virtuale e, facoltativamente, interroga per ulteriori informazioni sul canale.
-
Il driver virtuale client e l’applicazione lato server scambiano dati utilizzando i seguenti due metodi:
- 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 esegue il polling. Quando il server riceve i dati, questi vengono accodati fino a quando l’applicazione del canale virtuale non li legge. Non esiste un modo per avvisare l’applicazione del canale virtuale lato server che i dati sono stati ricevuti.
- Quando l’applicazione del canale virtuale lato server è completata, chiude il canale virtuale e libera tutte le risorse allocate.
Creazione del proprio canale virtuale utilizzando l’SDK del canale virtuale
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’uso di un dispositivo lato client, come uno scanner, da utilizzare con un processo nella sessione.
Nota:
L’SDK del canale virtuale richiede l’SDK WFAPI per scrivere il lato server del canale virtuale.
A causa della sicurezza avanzata per Citrix DaaS, è necessario specificare quali canali virtuali possono essere aperti in una sessione ICA. Per ulteriori informazioni, consultare Impostazioni dei criteri dell’elenco di autorizzazione dei canali virtuali.
Creazione del proprio canale virtuale utilizzando l’SDK ICA Client Object
La creazione di un canale virtuale utilizzando l’ICA Client Object (ICO) è più semplice che utilizzare l’SDK del canale virtuale. Utilizzare l’ICO creando un oggetto denominato nel proprio programma utilizzando il metodo CreateChannels.
Importante:
A causa della sicurezza avanzata 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.
Per ulteriori informazioni, consultare la Guida del programmatore alle specifiche API dell’oggetto client.
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 salti aggiuntivi.
Le seguenti funzioni operano allo stesso modo in salti singoli o multipli:
- Mappatura porta COM client
- Mappatura unità client
- Mappatura stampante client
- UPD client
- Monitoraggio dell’esperienza utente finale
- USB generico
- Kerberos
- Supporto multimediale
- Supporto smart card
- Pass-through chiave trasparente
- Twain
Poiché la natura intrinseca della latenza e fattori come la compressione e decompressione e il rendering vengono eseguiti ad ogni salto, le prestazioni potrebbero essere influenzate da ogni salto 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, è presente un hook VDA che esegue picaPassthruHook. Questo hook fa credere al client 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
- Mappatura porta COM client
- Mappatura unità client
- Mappatura stampante client
- USB generico (limitato a causa delle prestazioni)
- Supporto multimediale
- Supporto smart card
- SSON
- Pass-through chiave trasparente
Sicurezza e canali virtuali ICA
La sicurezza dell’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 si effettua il logout e ci si Disconnette.
Tenere presenti le seguenti linee guida quando si creano script che utilizzano le funzioni del canale virtuale.
Denominazione dei canali virtuali
È possibile creare un massimo di 32 canali virtuali. Diciassette dei 32 canali sono riservati a 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ù corto). 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 sia 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 contenuto browser | No |
CDM | Sì |
CEIP | No |
Appunti | Sì |
Continuum (MRVC) | No |
Controllo VC | Sì |
Reindirizzamento video HTML5 (v1) | Sì |
Tastiera, Mouse | Sì |
MultiTouch | No |
NSAPVC | No |
Stampa | Sì |
SensVC | No |
Smartcard | Sì |
Twain | Sì |
VC USB | Sì |
Dispositivi WAYCOM -K2M che utilizzano VC USB | Sì |
Compressione video webcam | Sì |
Reindirizzamento Windows Media | Sì |
Vedere anche
- SDK del canale virtuale ICA
- Il Citrix Developer Network è la sede di tutte le risorse tecniche e le discussioni relative all’uso degli SDK Citrix. In questa rete, è possibile trovare accesso a SDK, codice e script di esempio, 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.
In questo articolo
- Cosa sono i canali virtuali ICA?
- Creazione del proprio canale virtuale utilizzando l’SDK del canale virtuale
- Creazione del proprio canale virtuale utilizzando l’SDK ICA Client Object
- Funzionalità pass-through dei canali virtuali
- Funzionalità pass-through dei canali virtuali tra una sessione Citrix Virtual Desktop e una sessione Citrix Virtual App
- Sicurezza e canali virtuali ICA
- Procedure consigliate
- Vedere anche