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.
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.
Esta ilustração mostra a troca de dados cliente-servidor usando um canal virtual.
- O cliente se conecta ao servidor Citrix DaaS. O cliente passa informações sobre os canais virtuais aos quais dá suporte para o servidor.
- O aplicativo do lado do servidor é iniciado, obtém um identificador para o canal virtual e, opcionalmente, consulta informações adicionais sobre o canal.
-
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.
- 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:
O SDK de canal virtual requer que o WFAPI SDK para gravar no lado do servidor do canal virtual.
Devido à segurança aprimorada do Citrix DaaS, você deve especificar quais canais virtuais podem ser abertos em uma sessão do ICA. Para obter mais informações, consulte Configurações de política de lista de permissões de canal virtual.
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.
Neste artigo
- O que são os canais virtuais ICA?
- Criando o seu próprio canal virtual usando o Virtual Channel SDK
- Criando o seu próprio canal virtual usando o ICA Client Object SDK
- Funcionalidade de passagem de canais virtuais
- Funcionalidade de passagem de canais virtuais entre uma sessão do Citrix Virtual Desktops e uma sessão do Citrix Virtual Apps
- A segurança e os canais virtuais ICA
- Práticas recomendadas
- Veja também