Canais virtuais ICA® da Citrix
Aviso:
A edição incorreta do registro pode causar problemas sérios que podem exigir a reinstalação do sistema operacional. A Citrix não pode garantir que os problemas resultantes do uso incorreto de um 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 DaaS (anteriormente serviço 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 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
Novos canais virtuais são, às vezes, lançados com os produtos Citrix DaaS™ e Citrix Workspace app para fornecer mais funcionalidades.
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 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 aos 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. Pode haver vários protocolos ativos a qualquer momento, multiplexando canais fornecidos pela camada de protocolo Windows Station (WinStation).
As seguintes funções estão contidas no valor de 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ê quisesse 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 Bibliotecas de Vínculo Dinâmico (modo de usuário), e não drivers do Windows (modo kernel), exceto para o USB Genérico, conforme descrito no 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 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 chave
- 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 cartão inteligente
- 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 gráfico no lado do servidor
A partir do 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. 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.
Hospedagem de canais especializados em serviços do Windows
Nos servidores Citrix DaaS, vários canais são hospedados como serviços do Windows. Essa hospedagem fornece semântica 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 Cartão Inteligente 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.
Esta visão geral contém uma 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 que ele suporta para o servidor.
- O aplicativo do lado do servidor inicia, obtém um identificador para o canal virtual e, opcionalmente, consulta informações adicionais sobre o canal.
-
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.
- 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
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 o Citrix DaaS, 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 de lista de permissões de canal virtual.
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 posteriores (e Citrix Workspace apps para Windows), você deve dar um passo extra ao criar um canal virtual ICO.
Para obter mais informações, consulte Guia do Programador de Especificação da API do Objeto Cliente.
Funcionalidade de passagem de canais virtuais
A maioria dos canais virtuais fornecidos pela 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). Há 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 cartão inteligente
- Passagem transparente de chave
- Twain
Devido à natureza inerente da latência e a fatores como compressão e descompressão e renderização sendo realizadas 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 arquivo
- Redirecionamento USB genérico
- Seamless
- Thinwire
Importante:
Por padrão, as unidades do cliente mapeadas por uma instância do cliente em execução em uma sessão de passagem são restritas às unidades do 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 pela 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, há 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.
Oferecemos suporte aos 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 cartão inteligente
- SSON
- Passagem transparente de chave
Segurança e canais virtuais ICA
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.
Melhores práticas
Abra os canais virtuais ao Conectar e Reconectar. Feche os canais virtuais ao fazer logoff e Desconectar.
Mantenha as seguintes diretrizes em mente 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 de comprimento.
-
Os três primeiros caracteres são reservados para o nome do fornecedor, e os próximos quatro para o tipo de canal. Por exemplo, CTXAUD representa o canal virtual de áudio da 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 da Citrix.
Suporte a 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 |
Multitoque | Não |
NSAPVC | Não |
Impressão | Sim |
SensVC | Não |
Cartão inteligente | Sim |
Twain | Sim |
USB VC | Sim |
Dispositivos WAYCOM -K2M usando USB VC | Sim |
Compressão de Vídeo da Webcam | Sim |
Redirecionamento de Mídia do Windows | Sim |
Consulte também
- SDK de Canal Virtual ICA
- A Rede de Desenvolvedores Citrix é o lar de todos os recursos técnicos e discussões envolvendo o uso de SDKs Citrix. Nesta rede, você pode encontrar acesso a SDKs, código de exemplo e scripts, extensões e plug-ins e documentação de SDK. Também estão incluídos os fóruns da Rede de Desenvolvedores Citrix, onde ocorrem discussões técnicas sobre cada um dos SDKs Citrix.
Neste artigo
- O que são canais virtuais ICA?
- Criando seu próprio canal virtual usando o SDK de Canal Virtual
- Criando seu próprio canal virtual usando o SDK de Objeto Cliente ICA
- Funcionalidade de passagem de canais virtuais
- Funcionalidade de passagem de canais virtuais entre uma sessão do Citrix Virtual Desktop e uma sessão do Citrix Virtual App
- Segurança e canais virtuais ICA
- Melhores práticas
- Consulte também