Citrix DaaS™

Canali virtuali ICA® Citrix

Avviso:

La modifica errata del Registro di sistema può causare gravi problemi che potrebbero richiedere la reinstallazione del sistema operativo. Citrix non può garantire che i problemi derivanti dall’uso errato di un 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 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à.

Canali virtuali

  • 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.

  • 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 di sistema VirtualDriver sotto questo percorso del Registro di sistema:

  • 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
  • ClentPrinterQueue
  • ClentPrinterPort
  • 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 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 l’app Citrix Workspace per Windows utilizzano questi file. Sono sotto forma di librerie di collegamento dinamico (modalità utente) e non driver Windows (modalità kernel) ad eccezione di USB generico come descritto in Canale virtuale USB generico.

  • vd3dn.dll – Canale virtuale Direct3D utilizzato per il reindirizzamento della composizione del desktop
  • vdcamN.dll – Audio bidirezionale
  • vdcdm30n.dll – Mapping unità client
  • vdcom30N.dll - Mapping porta COM client
  • vdcpm30N.dll – Mapping 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 – 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 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 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 del canale virtuale caricati dalla Shell, ad esempio:

  • EUEM
  • Twain
    • Appunti
    • Multimediale
  • Condivisione sessione Seamless
  • Fuso orario

Alcuni vengono caricati in modalità kernel, ad esempio:

  • CtxDvcs.sys – Canale virtuale dinamico
  • Icausbb.sys – Reindirizzamento USB generico
  • Picadm.sys – Mapping 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 Gestione stampa Citrix
  • Servizio Smart card Citrix
  • Servizio di reindirizzamento audio Citrix (solo per Citrix Virtual Desktops™)
  • Servizio canali di stato ICA Citrix

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

  • Lato server, tutti i canali virtuali client vengono instradati tramite il driver WinStation, Wdica.sys. 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 di canali virtuali

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

  1. Il client si connette al server Citrix DaaS. Il client trasmette 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 del 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 demultiplessa i dati del canale virtuale dal flusso ICA e li passa immediatamente al driver virtuale del client.
    • Se il driver virtuale del client ha dati da inviare al server, i dati vengono inviati la prossima volta che il driver WinStation li interroga. 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.
    1. 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 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’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 ICA Client Object (ICO) è più semplice rispetto all’utilizzo dell’SDK del canale virtuale. Utilizzare l’ICO creando un oggetto denominato nel programma tramite 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 maggiori informazioni, consultare Guida del programmatore alle specifiche dell’API Client Object.

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 considerazioni da fare quando si utilizza il client in hop aggiuntivi.

Le seguenti funzioni operano allo stesso modo in hop 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 smartcard
  • Pass-through chiave trasparente
  • Twain

  • A causa della natura intrinseca della latenza e di fattori quali la compressione e decompressione e il rendering eseguiti ad 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 funziona 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 sì che il client pensi di essere in esecuzione su un server CPS, e metta 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 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 funzioni di 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 meno). 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

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