Citrix Virtual Apps and Desktops

Canais virtuais ICA® do Citrix

Aviso:

A edição incorreta do registro pode causar problemas graves que podem exigir a reinstalação do sistema operacional. O Citrix não pode garantir que os problemas resultantes do uso incorreto do Editor do Registro possam ser resolvidos. Use o Editor do Registro por sua conta e risco. Certifique-se de fazer backup do registro antes de editá-lo.

O que são canais virtuais ICA?

Uma grande parte da funcionalidade e comunicação entre o aplicativo Citrix Workspace™ e os servidores Citrix Virtual Apps and Desktops™ ocorre por meio de canais virtuais. Os canais virtuais são uma parte necessária da experiência de computação remota com os servidores Citrix Virtual Apps and Desktops. Os canais virtuais são usados para:

  • Áudio
  • Portas COM
  • Discos
  • Gráficos
  • Portas LPT
  • Impressoras
  • Smart cards
  • Canais virtuais personalizados de terceiros
  • Vídeo

Novos canais virtuais são ocasionalmente lançados com novas versões dos servidores Citrix Virtual Apps and Desktops e dos produtos Citrix Workspace app para fornecer mais funcionalidades.

Virtual channels

Um canal virtual consiste em um driver virtual do lado do cliente que se comunica com um aplicativo do lado do servidor. O Citrix Virtual Apps and Desktops é fornecido com vários canais virtuais incluídos. Eles são projetados para permitir que clientes e fornecedores terceirizados criem seus próprios canais virtuais usando um dos Kits de Desenvolvimento de Software (SDKs) fornecidos.

Os canais virtuais fornecem uma maneira segura de realizar várias tarefas. Por exemplo, um aplicativo em execução em um servidor Citrix Virtual Apps que se comunica com um dispositivo do lado do cliente ou um aplicativo que se comunica com o ambiente do lado do cliente.

No lado do cliente, os canais virtuais correspondem a drivers virtuais. Cada driver virtual fornece uma função específica. Alguns são necessários para a operação normal, e outros são opcionais. Os drivers virtuais operam no nível do protocolo da camada de apresentação. Vários protocolos podem estar ativos a qualquer momento multiplexando canais fornecidos pela camada de protocolo Windows Station (WinStation).

As seguintes funções estão contidas no valor do registro VirtualDriver sob este caminho de registro:

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

Ou

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0 (para 64 bits)

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

Observação:

Você pode desabilitar funcionalidades específicas do cliente removendo um ou mais desses valores da chave de registro. Por exemplo, se você quiser remover o Client Clipboard, remova a palavra Clipboard.

Esta lista contém os arquivos de driver virtual do cliente e suas respectivas funções. O Citrix Virtual Apps e o Citrix Workspace app para Windows usam esses arquivos. Eles estão na forma de Dynamic Link Libraries (modo de usuário), e não drivers do Windows (modo kernel), exceto para USB Genérico, conforme descrito no canal virtual USB Genérico.

  • vd3dn.dll – Canal virtual Direct3D usado para redirecionamento de composição de desktop
  • vdcamN.dll – Áudio bidirecional
  • vdcdm30n.dll – Mapeamento de unidade do cliente
  • vdcom30N.dll - Mapeamento de porta COM do cliente
  • vdcpm30N.dll – Mapeamento de impressora do cliente
  • vdctln.dll – Canal de controles ICA
  • vddvc0n.dll – Canal virtual dinâmico
  • vdeuemn.dll - Monitoramento da experiência do usuário final
  • vdgusbn.dll – Canal virtual USB genérico
  • vdkbhook.dll – Passagem transparente de teclas
  • vdlfpn.dll – Canal de exibição Framehawk sobre transporte tipo UDP
  • vdmmn.dll – Suporte multimídia
  • vdmrvc.dll – Canal virtual do Mobile Receiver
  • vdmtchn.dll - Suporte multitoque
  • vdscardn.dll – Suporte a smartcard
  • vdsens.dll – Canal virtual de sensores
  • vdspl30n.dll – UPD do cliente
  • vdsspin.dll – Kerberos
  • vdtuin.dll – UI transparente
  • vdtw30n.dll – Thinwire do cliente
  • vdtwin.dll – Seamless
  • vdtwn.dll – Twain

Alguns canais virtuais são compilados em outros arquivos. Por exemplo, o Mapeamento da Área de Transferência está disponível em wfica32.exe

Compatibilidade de 64 bits

O Citrix Workspace app para Windows é compatível com 64 bits. Assim como a maioria dos binários compilados para 32 bits, esses arquivos de cliente têm equivalentes compilados para 64 bits:

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

Canal virtual USB genérico

A implementação do canal virtual USB genérico usa dois drivers de modo kernel junto com o driver de canal virtual vdgusbn.dll:

  • ctxusbm.sys
  • ctxusbr.sys

Como os canais virtuais ICA funcionam

Os canais virtuais são carregados de várias maneiras. O Shell (WfShell para o servidor e PicaShell para a estação de trabalho) carrega alguns canais virtuais. Alguns canais virtuais são hospedados como serviços do Windows.

Módulos de canal virtual carregados pelo Shell, por exemplo:

  • EUEM
  • Twain
  • Área de Transferência
  • Multimídia
  • Compartilhamento de sessão Seamless
  • Fuso Horário

Alguns são carregados como modo kernel, por exemplo:

  • CtxDvcs.sys – Canal virtual dinâmico
  • Icausbb.sys – Redirecionamento USB genérico
  • Picadm.sys – Mapeamento de unidade do cliente
  • Picaser.sys – Redirecionamento de porta COM
  • Picapar.sys – Redirecionamento de porta LPT

Canal virtual de gráficos no lado do servidor

O ctxgfx.exe hospeda o canal virtual de gráficos para sessões baseadas em estação de trabalho e servidor de terminal. O Ctxgfx hospeda módulos específicos da plataforma que interagem com o driver correspondente (Icardd.dll para RDSH e vdod.dll e vidd.dll para estação de trabalho).

Para implantações do XenDesktop® 3D Pro, um driver gráfico OEM é instalado para a GPU correspondente no VDA. O Ctxgfx carrega módulos adaptadores especializados para interagir com o driver gráfico OEM.

Hospedando canais especializados em serviços do Windows

Nos servidores Citrix Virtual Apps and Desktops, vários canais são hospedados como serviços do Windows. Essa hospedagem fornece semânticas de um para muitos para vários aplicativos em uma sessão e várias sessões no servidor. Exemplos de tais serviços incluem:

  • Serviço de Redirecionamento de Dispositivo Citrix
  • Serviço de Canal Virtual Dinâmico Citrix
  • Serviço de Monitoramento da Experiência do Usuário Final Citrix
  • Serviço de Canal Virtual de Localização e Sensor Citrix
  • Serviço de Redirecionamento Multitoque Citrix
  • Serviço de Gerenciador de Impressão Citrix
  • Serviço de Smartcard Citrix
  • Serviço de Redirecionamento de Áudio Citrix (somente Citrix Virtual Desktops™)
  • Serviço de Canal de Status ICA Citrix

O canal virtual de áudio no Citrix Virtual Apps é hospedado usando o serviço de Áudio do Windows.

No lado do servidor, todos os canais virtuais do cliente são roteados através do driver WinStation, Wdica.sys. No lado do cliente, o driver WinStation correspondente, integrado ao wfica32.exe, pesquisa os canais virtuais do cliente. Esta imagem ilustra a conexão cliente-servidor do canal virtual.

Virtual channel connections

Esta visão geral contém uma troca de dados cliente-servidor usando um canal virtual.

  1. O cliente se conecta ao servidor Citrix Virtual Apps and Desktops. O cliente passa informações sobre os canais virtuais que ele suporta para o servidor.
  2. O aplicativo do lado do servidor inicia, obtém um identificador para o canal virtual e, opcionalmente, consulta informações adicionais sobre o canal.
  3. O driver virtual do cliente e o aplicativo do lado do servidor passam dados usando os dois métodos a seguir:

    • Se o aplicativo do servidor tiver dados para enviar ao cliente, os dados serão enviados ao cliente imediatamente. Quando o cliente recebe os dados, o driver WinStation desmultiplexa os dados do canal virtual do fluxo ICA e os passa imediatamente para o driver virtual do cliente.
    • Se o driver virtual do cliente tiver dados para enviar ao servidor, os dados serão enviados na próxima vez que o driver WinStation o pesquisar. Quando o servidor recebe os dados, eles são enfileirados até que o aplicativo do canal virtual os leia. Não há como alertar o aplicativo do canal virtual do servidor de que os dados foram recebidos.
  4. Quando o aplicativo do canal virtual do servidor é concluído, ele fecha o canal virtual e libera quaisquer recursos alocados.

Criando seu próprio canal virtual usando o SDK de Canal Virtual

Observação:

Os SDKs do Citrix estão disponíveis no portal do Desenvolvedor Citrix em https://developer.cloud.com.

A criação de um canal virtual usando o SDK de Canal Virtual requer conhecimento de programação intermediário. Use este método para fornecer um caminho de comunicação principal entre o cliente e o servidor. Por exemplo, se você estiver implementando o uso de um dispositivo no lado do cliente, como um scanner, para ser usado com um processo na sessão.

Observação:

  • O SDK de Canal Virtual requer o SDK WFAPI para escrever o lado do servidor do canal virtual.

  • Devido à segurança aprimorada para Citrix Virtual Apps and Desktops, você deve especificar quais canais virtuais têm permissão para serem abertos em uma sessão ICA. Para obter mais informações, consulte Configurações de política da lista de permissões de canais virtuais.

Criando seu próprio canal virtual usando o SDK de Objeto Cliente ICA

A criação de um canal virtual usando o Objeto Cliente ICA (ICO) é mais fácil do que usar o SDK de Canal Virtual. Use o ICO criando um objeto nomeado em seu programa usando o método CreateChannels.

Importante:

Devido à segurança aprimorada a partir da versão 10.00 do Citrix Receiver para Windows e posterior (e Citrix Workspace apps para Windows), você deve dar um passo extra ao criar um canal virtual ICO.

Funcionalidade de passagem de canais virtuais

A maioria dos canais virtuais fornecidos pelo Citrix opera sem modificações quando você usa o Citrix Workspace app para Windows dentro de uma sessão ICA (também conhecida como sessão de passagem). Existem considerações ao usar o cliente em saltos extras.

As seguintes funções operam da mesma forma em saltos únicos ou múltiplos:

  • Mapeamento de porta COM do cliente
  • Mapeamento de unidade do cliente
  • Mapeamento de impressora do cliente
  • UPD do cliente
  • Monitoramento da experiência do usuário final
  • USB genérico
  • Kerberos
  • Suporte multimídia
  • Suporte a smartcard
  • Passagem transparente de teclas
  • Twain

Devido à natureza inerente da latência e a fatores como compressão, descompressão e renderização sendo realizados em cada salto, o desempenho pode ser afetado a cada salto adicional que o cliente sofre. As áreas afetadas são:

  • Áudio bidirecional
  • Transferências de arquivos
  • Redirecionamento USB genérico
  • Seamless
  • Thinwire

Importante:

Por padrão, as unidades de cliente mapeadas por uma instância do cliente em execução em uma sessão de passagem são restritas às unidades de cliente do cliente de conexão.

Funcionalidade de passagem de canais virtuais entre uma sessão do Citrix Virtual Desktop e uma sessão do Citrix Virtual App

A maioria dos canais virtuais fornecidos pelo Citrix opera sem modificações quando você usa o Citrix Workspace app para Windows dentro de uma sessão ICA em um servidor Citrix Virtual Desktops (também conhecida como sessão de passagem).

Especificamente, no servidor Citrix Virtual Desktops, existe um hook VDA que executa picaPassthruHook. Este hook faz com que o cliente pense que está sendo executado em um servidor CPS, colocando o cliente em seu modo de passagem tradicional.

Suportamos os seguintes canais virtuais tradicionais e suas funcionalidades:

  • Cliente
  • Mapeamento de porta COM do cliente
  • Mapeamento de unidade do cliente
  • Mapeamento de impressora do cliente
  • USB genérico (limitado devido ao desempenho)
  • Suporte multimídia
  • Suporte a smartcard
  • SSON
  • Passagem transparente de teclas

Segurança e canais virtuais ICA

Garantir a segurança do uso é uma parte importante do planejamento, desenvolvimento e implementação de canais virtuais. Existem várias referências a áreas específicas de segurança localizadas ao longo deste documento.

Práticas recomendadas

Abra os canais virtuais ao Conectar e Reconectar. Feche os canais virtuais ao fazer logoff e Desconectar.

Tenha em mente as seguintes diretrizes ao criar scripts que usam funções de canal virtual.

Nomeando os Canais Virtuais

Você pode criar um máximo de 32 canais virtuais. Dezessete dos 32 canais são reservados para fins especiais.

  • Os nomes dos canais virtuais não devem ter mais de sete caracteres.

  • Os três primeiros caracteres são reservados para o nome do fornecedor, e os quatro seguintes para o tipo de canal. Por exemplo, CTXAUD representa o canal virtual de áudio do Citrix.

Os canais virtuais são referenciados por um nome ASCII de sete caracteres (ou menos). Em algumas versões anteriores do protocolo ICA, os canais virtuais eram numerados. Os números agora são atribuídos dinamicamente com base no nome ASCII, facilitando a implementação. Usuários que estão desenvolvendo código de canal virtual apenas para uso interno podem usar qualquer nome de sete caracteres que não entre em conflito com os canais virtuais existentes. Use apenas números e ASCII maiúsculas e minúsculas. Siga a convenção de nomenclatura existente ao adicionar seus próprios canais virtuais. Existem vários canais predefinidos. Os canais predefinidos começam com o identificador OEM CTX e são para uso exclusivo do Citrix.

Suporte a Salto Duplo

Canal Virtual Salto duplo é suportado?
Audio Não
Browser Content Redirection Não
CDM Sim
CEIP Não
Clipboard Sim
Continuum (MRVC) Não
Control VC Sim
HTML5 Video Redirection (v1) Sim
Keyboard, Mouse Sim
MultiTouch Não
NSAPVC Não
Printing Sim
SensVC Não
Smartcard Sim
Twain Sim
USB VC Sim
WAYCOM devices -K2M using USB VC Sim
Webcam Video Compression Sim
Windows Media Redirection Sim

Consulte também

  • SDK de Canal Virtual ICA
  • O Citrix Developer Network é o lar de todos os recursos técnicos e discussões envolvendo o uso de SDKs do Citrix. Nesta rede, você pode encontrar acesso a SDKs, exemplos de código e scripts, extensões e plug-ins, e documentação de SDK. Também estão incluídos os fóruns do Citrix Developer Network, onde ocorrem discussões técnicas sobre cada um dos SDKs do Citrix.