Citrix Virtual Apps and Desktops

Canali virtuali Citrix ICA

Avviso:

La modifica non corretta 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 non corretto 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 su 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 sono utilizzati per:

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

A volte vengono rilasciati nuovi canali virtuali 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 viene fornito con vari canali virtuali inclusi. Sono progettati per consentire a clienti e fornitori terzi di creare i propri canali virtuali utilizzando uno dei kit di sviluppo software (SDK) in dotazione.

I canali virtuali offrono 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 a driver virtuali. Ogni driver virtuale fornisce una funzione specifica. Alcuni sono necessari per il normale funzionamento, mentre altri sono facoltativi. I driver virtuali operano a livello di protocollo sul livello di presentazione. Ci possono essere diversi protocolli attivi in qualsiasi momento tramite canali multiplexing forniti dal livello di protocollo Windows Station (WinStation).

Le seguenti funzioni sono contenute nel valore del Registro di sistema VirtualDriver in 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
  • Appunti
  • ClientComm
  • ClientAudio
  • LicenseHandler (obbligatorio)
  • TWI (obbligatorio)
  • SmartCard
  • ICACTL (obbligatorio)
  • SSPI
  • TwainRdr
  • UserEXperience
  • Vd3d

Nota:

È possibile disattivare 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 Appunti.

Questo elenco contiene i file dei driver virtuali client e le rispettive funzioni. Citrix Virtual Apps e l’app Citrix Workspace per Windows utilizzano questi file. Sono sotto forma di librerie di collegamento dinamico (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 desktop
  • vdcamN.dll: audio bidirezionale
  • vdcdm30n.dll: mappatura unità client
  • vdcom30N.dll: mappatura porta COM client
  • vdcpm30N.dll: mappatura stampante client
  • vdctln.dll: canale dei controlli ICA
  • vddvc0n.dll: canale virtuale dinamico
  • vdeuemn.dll: monitoraggio dell’esperienza utente finale
  • vdgusbn.dll: canale virtuale USB generico
  • vdkbhook.dll: pass-through della chiave trasparente
  • vdlfpn.dll: canale di visualizzazione Framehawk su trasporto simil-UDP
  • vdmmn.dll: supporto multimediale
  • vdmrvc.dll: canale virtuale di Receiver mobile
  • vdmtchn.dll: supporto multi-touch
  • vdscardn.dll: supporto per smartcard
  • vdsens.dll: canale virtuale dei sensori
  • vdspl30n.dll: UPD client
  • vdsspin.dll: Kerberos
  • vdtuin.dll: interfaccia utente trasparente
  • vdtw30n.dll: client Thinwire
  • 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à con 64 bit

L’app Citrix Workspace per Windows è compatibile con 64 bit. Come avviene per la maggior parte dei file binari compilati per 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 di canale virtuale caricati dalla Shell, ad esempio:

  • EUEM
  • Twain
  • Appunti
  • Contenuti multimediali
  • Condivisione delle sessioni Seamless
  • Fuso orario

Alcuni sono caricati come modalità kernel, ad esempio:

  • CtxDvcs.sys: canale virtuale dinamico
  • Icausbb.sys: reindirizzamento USB generico
  • Picadm.sys: mappatura dell’unità client
  • Picaser.sys: reindirizzamento porta COM
  • Picapar.sys: reindirizzamento porta LPT

Canale virtuale grafico sul lato server

A partire da XenApp 7.0 e XenDesktop7.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 di XenDesktop 3D Pro è installato un driver di grafica 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 di Windows

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

  • Servizio di redirector periferiche Citrix
  • Servizio di canale virtuale dinamico Citrix
  • Servizio di monitoraggio dell’esperienza utente finale Citrix
  • Servizio canale virtuale di posizione e sensore Citrix
  • Servizio di reindirizzamento Citrix MultiTouch
  • Servizio Citrix Print Manager
  • Servizio smartcard Citrix
  • Servizio di reindirizzamento audio Citrix (solo Citrix Virtual Desktops)

Il canale audio virtuale 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, incorporato in wfica32.exe, esegue il polling dei canali virtuali del client. Questa immagine illustra la connessione client-server del canale virtuale.

Connessioni dei canali virtuali

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

  1. Il client si connette al server di Citrix Virtual Apps and Desktops. Il client passa informazioni sui canali virtuali che supporta al server.
  2. L’applicazione lato server viene avviata, ottiene un handle per il canale virtuale e, facoltativamente, interroga per ottenere 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 dispone di dati da inviare al client, i dati vengono inviati immediatamente al client. Quando il client riceve i dati, il driver WinStation effettua il de-multiplex dei dati del canale virtuale provenienti dal flusso ICA e li passa immediatamente al driver virtuale client.
    • Se il driver virtuale client dispone di dati da inviare al server, i dati vengono inviati alla successiva esecuzione del polling del driver WinStation. Quando il server riceve i dati, questi vengono messi in coda fino a quando l’applicazione del canale virtuale non li legge. Non c’è modo di avvisare l’applicazione del canale virtuale del server che i dati sono stati ricevuti.
  4. Una volta completata l’applicazione del canale virtuale del server, chiude il canale virtuale e libera tutte le risorse eventualmente allocate.

Creazione di un canale virtuale personalizzato utilizzando Virtual Channel SDK

Nota:

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

La creazione di un canale virtuale mediante Virtual Channel SDK richiede conoscenze di programmazione di livello intermedio. 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 sul lato client, ad esempio uno scanner, da utilizzare con un processo nella sessione.

Nota:

  • L’SDK Virtual Channel richiede l’SDK WFAPI per scrivere il lato server del canale virtuale.

  • Per via della sicurezza avanzata per Citrix Virtual Apps and Desktops, è necessario specificare quali canali virtuali possono essere aperti in una sessione ICA. Per ulteriori informazioni, vedere Impostazioni dei criteri Elenco di elementi consentiti del canale virtuale.

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

Creare un canale virtuale utilizzando l’ICO (ICA Client Object) è più semplice rispetto all’utilizzo di Virtual Channel SDK. Utilizzare l’ICO creando un oggetto con nome nel programma utilizzando il metodo CreateChannels.

Importante:

A causa della sicurezza avanzata a partire dalla versione 10.00 di Citrix Receiver per Windows e versioni successive (e le app Citrix Workspace per Windows), è necessario eseguire un ulteriore passo 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 l’app Citrix Workspace per Windows all’interno di una sessione ICA (nota anche come sessione pass-through). Ci sono aspetti da considerare quando si utilizza il client in hop extra.

Le seguenti funzioni funzionano allo stesso modo in hop singolo o multiplo:

  • Mappatura porta COM client
  • Mappatura unità client
  • Mappatura stampante client
  • UPD client
  • Monitoraggio dell’esperienza utente finale
  • USB generico
  • Kerberos
  • Supporto multimediale
  • Supporto smartcard
  • Pass-through della chiave trasparente
  • Twain

Poiché la natura intrinseca della latenza e di fattori quali compressione, decompressione e rendering eseguiti a ogni hop, le prestazioni potrebbero essere influenzate da ogni hop aggiuntivo sottoposto al client. Le aree di influenza 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 di Citrix Virtual Desktop e una sessione di Citrix Virtual App

La maggior parte dei canali virtuali forniti da Citrix funziona senza modifiche quando si utilizza l’app Citrix Workspace per Windows all’interno di una sessione ICA su un server Citrix Virtual Desktops (noto 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 posiziona 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 smartcard
  • SSON
  • Pass-through della chiave trasparente

Sicurezza e canali virtuali ICA

La protezione dell’utilizzo è una parte importante della pianificazione, dello sviluppo e dell’implementazione di canali virtuali. Questo documento fa riferimento a specifiche aree di sicurezza in molte sue parti.

Procedure consigliate

Aprire i canali virtuali quando ci si connette e ci si riconnette. Chiudere i canali virtuali quando ci si scollega 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 canali su 32 sono riservati per scopi speciali.

  • I nomi dei canali virtuali non devono contenere più di sette caratteri.

  • I primi tre caratteri sono riservati al nome del fornitore e i quattro successivi al tipo di canale. Ad esempio, CTXAUD rappresenta il canale audio virtuale 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 vengono ora assegnati dinamicamente in base al nome ASCII, rendendo più facile l’implementazione. Gli utenti che stanno sviluppando 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. Ci sono diversi canali predefiniti. I canali predefiniti iniziano con l’identificatore OEM CTX e sono riservati all’uso da parte di Citrix.

Supporto a doppio hop:

Canale virtuale Il doppio 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
Smartcard
Twain
VC USB
Dispositivi WAYCOM -K2M mediante VC USB
Compressione video webcam
Reindirizzamento di Windows Media

Vedere anche

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