Citrix DaaS

Canais virtuais Citrix ICA

Aviso:

Editar o registro incorretamente pode causar sérios problemas que podem exigir que você reinstale seu sistema operacional. A 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. Tenha o cuidado de fazer backup do registro antes de editá-lo.

O que são os canais virtuais ICA?

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

  • Áudio
  • Portas COM
  • Discos
  • Gráficos
  • Portas LPT
  • Impressoras
  • Cartões inteligentes
  • Canais virtuais personalizados de terceiros
  • Vídeo

Às vezes, novos canais virtuais são lançados com os produtos Citrix DaaS e aplicativo Citrix Workspace para oferecer mais funcionalidade.

Canais virtuais

Um canal virtual consiste em um driver virtual do lado do cliente que se comunica com um aplicativo do lado do servidor. O Citrix DaaS é 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 que está sendo executado em um servidor Citrix Virtual Apps que está se comunicando com um dispositivo do lado do cliente ou com um aplicativo que está se comunicando com o ambiente do lado do cliente.

No lado do cliente, os canais virtuais correspondem aos drivers virtuais. Cada driver virtual fornece uma função específica. Alguns são necessários para operação normal, outros são opcionais. Os drivers virtuais operam no nível do protocolo da camada de apresentação. Pode haver vários protocolos ativos a qualquer momento mediante a multiplexação de canais fornecidos pela camada de protocolo do 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
  • Área de transferência
  • ClientComm
  • ClientAudio
  • LicenseHandler (Obrigatório)
  • TWI (Obrigatório)
  • SmartCard
  • ICACTL (Obrigatório)
  • SSPI
  • TwainRdr
  • UserEXperience
  • Vd3d

Nota:

Você pode desativar a funcionalidade específica do cliente removendo um ou mais desses valores da chave de registro. Por exemplo, se você quiser remover a Área de transferência cliente, remova a palavra Clipboard.

Esta lista contém os arquivos do driver virtual cliente e suas respectivas funções. O Citrix Virtual Apps e o aplicativo Citrix Workspace para Windows usam esses arquivos. Eles estão na forma de Bibliotecas de Links Dinâmicos (modo de usuário), não drivers do Windows (modo kernel), exceto para USB Genérico, conforme descrito em Canal virtual USB genérico.

  • vd3dn.dll — Canal virtual Direct3D usado para redirecionamento de composição de área de trabalho
  • vdcamN.dll — Áudio bidirecional
  • vdcdm30n.dll — Mapeamento da unidade cliente
  • vdcom30N.dll – Mapeamento de porta COM cliente
  • vdcpm30N.dll — Mapeamento da impressora 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 de chave transparente
  • vdlfpn.dll — Canal de exibição Framehawk por UDP como transporte
  • vdmmn.dll — Suporte multimídia
  • vdmrvc.dll — Canal virtual do Mobile Receiver
  • vdmtchn.dll – Suporte multitoque
  • vdscardn.dll — Suporte a cartão inteligente
  • vdsens.dll — Canal virtual de sensores
  • vdspl30n.dll — UPD cliente
  • vdsspin.dll — Kerberos
  • vdtuin.dll — Interface do usuário transparente
  • vdtw30n.dll — Cliente Thinwire
  • vdtwin.dll — Contínuo
  • 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 com 64 bits

O aplicativo Citrix Workspace para Windows é compatível com 64 bits. Tal como acontece com a maioria dos binários compilados para 32 bits, estes arquivos 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 no modo kernel juntamente com o driver de canal virtual vdgusbn.dll:

  • ctxusbm.sys
  • ctxusbr.sys

Como funcionam os canais virtuais ICA

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 canais virtuais carregados pelo Shell, por exemplo:

  • EUEM
  • Twain
  • Área de transferência
  • Multimídia
  • Compartilhamento de sessão contínuo
  • 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 da unidade cliente
  • Picaser.sys — Redirecionamento de porta COM
  • Picapar.sys — Redirecionamento de porta LPT

Canal virtual gráfico no lado do servidor

Começando com o XenApp 7.0 e XenDesktop 7.0, ctxgfx.exe hospeda o canal virtual gráfico para sessões baseadas em estação de trabalho e servidor de terminal. 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 XenDesktop 3D Pro, um driver gráfico OEM é instalado para a GPU correspondente no VDA. Ctxgfx carrega módulos adaptadores especializados para interagir com o driver gráfico OEM.

Hospedagem de canais especializados em serviços Windows

Nos servidores Citrix DaaS, vários canais são hospedados como serviços do Windows. Essa hospedagem fornece semântica um-para-muitos para múltiplos aplicativos em uma sessão e múltiplas sessões no servidor. Exemplos de tais serviços incluem:

  • Citrix Device Redirector Service
  • Citrix Dynamic Virtual Channel Service
  • Citrix End User Experience Monitoring Service
  • Citrix Location and Sensor Virtual Channel Service
  • Citrix MultiTouch Redirection Service
  • Citrix Print Manager Service
  • Citrix Smartcard Service
  • Citrix Audio Redirection Service (Citrix Virtual Desktops somente)

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

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

Conexões do canal virtual

Esta ilustração mostra a troca de dados cliente-servidor usando um canal virtual.

  1. O cliente se conecta ao servidor Citrix DaaS. O cliente passa informações sobre os canais virtuais aos quais dá suporte para o servidor.
  2. O aplicativo do lado do servidor é iniciado, obtém um identificador para o canal virtual e, opcionalmente, consulta informações adicionais sobre o canal.
  3. O driver virtual 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 para o cliente imediatamente. Quando o cliente recebe os dados, o driver do WinStation desmultiplexa os dados do canal virtual a partir do stream do ICA e os passa imediatamente para o driver virtual cliente.
    • Se o driver virtual cliente tiver dados para enviar para o servidor, os dados serão enviados na próxima vez que o driver do WinStation fizer a sondagem. Quando o servidor recebe os dados, eles são enfileirados até que o aplicativo de canal virtual os leia. Não há como alertar o aplicativo de canal virtual do servidor que os dados foram recebidos.
  4. Quando o aplicativo do canal virtual do servidor é concluído, ele fecha o canal virtual e libera todos os recursos alocados.

Criando o seu próprio canal virtual usando o Virtual Channel SDK

Criar um canal virtual usando o Virtual Channel SDK 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.

Nota:

Criando o seu próprio canal virtual usando o ICA Client Object SDK

Criar um canal virtual usando o ICA Client Object (ICO) é mais fácil do que usando o Virtual Channel SDK. Use o ICO criando um objeto nomeado no 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 aplicativos Citrix Workspace para Windows), é necessária uma etapa extra ao criar um canal virtual ICO.

Para obter mais informações, consulte Client Object API Specification Programmer’s Guide.

Funcionalidade de passagem de canais virtuais

A maioria dos canais virtuais que a Citrix fornece operam sem modificação quando você usa o aplicativo Citrix Workspace para Windows em uma sessão ICA (também conhecida como uma sessão de passagem). Há considerações ao usar o cliente em saltos extras.

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

  • Mapeamento de porta COM cliente
  • Mapeamento da unidade cliente
  • Mapeamento da impressora cliente
  • UPD cliente
  • Monitoramento da experiência do usuário
  • USB genérico
  • Kerberos
  • Suporte multimídia
  • Suporte a cartão inteligente
  • Passagem de chave transparente
  • Twain

Com a natureza inerente de latência e fatores como compressão e descompressão e renderização sendo executada em cada salto, o desempenho pode ser afetado com cada salto adicional sobre o cliente. As áreas afetadas são:

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

Importante:

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

Funcionalidade de passagem de canais virtuais entre uma sessão do Citrix Virtual Desktops e uma sessão do Citrix Virtual Apps

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

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

Oferecemos suporte aos seguintes canais virtuais tradicionais e suas funcionalidades:

  • Cliente
  • Mapeamento de porta COM cliente
  • Mapeamento da unidade cliente
  • Mapeamento da impressora cliente
  • USB genérico (limitado pelo desempenho)
  • Suporte multimídia
  • Suporte a cartão inteligente
  • SSON
  • Passagem de chave transparente

A segurança e os canais virtuais ICA

A proteção da utilização é uma parte importante do planejamento, desenvolvimento e implementação de canais virtuais. Existem várias referências a áreas específicas de segurança no decorrer deste documento.

Práticas recomendadas

Abra os canais virtuais quando se Conectar e Reconectar. Feche os canais virtuais quando fizer logoff e se Desconectar.

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

Nomenclatura de canais virtuais:

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

  • O nome dos canais virtuais não deve ter mais de sete caracteres de comprimento.

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

Os canais virtuais são referidos por um nome em ASCII de sete caracteres (ou mais curto). 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 em ASCII, facilitando a implementação. Os usuários que estão desenvolvendo códigos 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 maiúsculas e minúsculas em ASCII. 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 apenas para uso pela Citrix.

Suporte para salto duplo:

Canal virtual O salto duplo é suportado?
Áudio Não
Redirecionamento de conteúdo do navegador Não
CDM Sim
CEIP Não
Área de transferência Sim
Continuum (MRVC) Não
Control VC Sim
Redirecionamento de vídeo HTML5 (v1) Sim
Teclado, Mouse Sim
MultiTouch Não
NSAPVC Não
Impressão Sim
SensVC Não
Smartcard Sim
Twain Sim
USB VC Sim
Dispositivos WAYCOM -K2M usando USB VC Sim
Compressão de vídeo de webcam Sim
Windows Media Redirection Sim

Veja também

  • ICA Virtual Channel SDK
  • Citrix Developer Network reúne todos os recursos técnicos e discussões envolvendo o uso de SDKs da Citrix. Nessa rede de recursos, você tem acesso a SDKs, exemplos de códigos e scripts, extensões e plug-ins, e documentação do SDK. Inclui também os fóruns do Citrix Developer Network, onde as discussões técnicas acontecem em torno de cada um dos SDKs da Citrix.