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. L’utilizzo dell’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 elaborazione remota 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 Citrix Workspace app 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 di protocollo del livello di presentazione. Possono esserci diversi protocolli attivi in qualsiasi momento tramite la multiplexing dei canali forniti dal livello di 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 gli Appunti client, rimuovere la parola Clipboard.

Questo elenco contiene i file del driver virtuale client e le rispettive funzioni. Citrix Virtual Apps e Citrix Workspace app per Windows utilizzano questi file. Sono sotto forma di Dynamic Link Libraries (modalità utente) e non di 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 – 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 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 smartcard
  • vdsens.dll – Canale virtuale sensori
  • vdspl30n.dll – Client UPD
  • 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, la mappatura degli Appunti è disponibile in wfica32.exe

Compatibilità a 64 bit

Citrix Workspace app 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 – Mappatura unità client
  • Picaser.sys – Reindirizzamento porta COM
  • Picapar.sys – Reindirizzamento porta LPT

Canale virtuale grafico lato server

Il file 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 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 di gestione stampa 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 Windows Audio.

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.

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 volta successiva 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 del server che i dati sono stati ricevuti.
  4. Quando l’applicazione del canale virtuale del server è completata, chiude il canale virtuale e libera tutte le risorse allocate.

Creazione di un proprio canale virtuale utilizzando l’SDK dei canali virtuali

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 dei canali virtuali richiede una conoscenza di programmazione intermedia. 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:

  • L’SDK dei canali virtuali richiede l’SDK WFAPI per scrivere il lato server del canale virtuale.

  • A causa della sicurezza avanzata per Citrix Virtual Apps and Desktops, è necessario specificare quali canali virtuali possono essere aperti in una sessione ICA. Per maggiori informazioni, consultare Impostazioni dei criteri dell’elenco consentiti dei canali virtuali.

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 dei canali virtuali. Utilizzare l’ICO creando un oggetto denominato nel 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 Citrix Workspace app 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 funziona senza modifiche quando si utilizza Citrix Workspace app per Windows all’interno di una sessione ICA (nota anche come sessione pass-through). Ci sono considerazioni da fare 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
  • Client UPD
  • Monitoraggio dell’esperienza utente finale
  • USB generico
  • Kerberos
  • Supporto multimediale
  • Supporto smartcard
  • Pass-through trasparente dei tasti
  • Twain

Data la natura intrinseca della latenza e fattori come la compressione e decompressione e il rendering 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 funziona senza modifiche quando si utilizza Citrix Workspace app 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 lo pone 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 smartcard
  • SSON
  • Pass-through trasparente dei tasti

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 tutto questo documento.

Procedure consigliate

Aprire i canali virtuali quando si Connette e si Riconnette. Chiudere i canali virtuali quando si effettua il logout 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 a scopi speciali.

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

  • 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 indicati 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 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
CEIP No
Appunti
Continuum (MRVC) No
Control VC
Reindirizzamento video HTML5 (v1)
Tastiera, Mouse
MultiTouch No
NSAPVC No
Stampa
SensVC No
Smartcard
Twain
USB VC
Dispositivi WAYCOM -K2M che utilizzano USB VC
Compressione video webcam
Reindirizzamento Windows Media

Vedere anche

  • ICA Virtual Channel SDK
  • 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 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.