Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O que é um terminal?
Um terminal
é um conceito que descreve um grupo de dispositivos de entrada/saída (teclado, mouse, monitor etc.) e configurações (configurações nos dispositivos). Considere o dispositivo que você está usando para ler este documento; você está em um computador desktop com um mouse, teclado e monitor? Ou um dispositivo móvel com uma tela LCD com capacidade de toque e um teclado Bluetooth? Tudo isso pode ser considerado um terminal; são dispositivos de grupo que se comunicam entre si.
A finalidade de um terminal em vida é ser anexada a uma sessão.
Um session
é uma comunicação ativa entre o terminal e outros dispositivos. É o elemento que contém os processos do usuário, a identidade de dados e executa sua própria instância win32k em csrss.exe (subsistema de tempo de execução cliente-servidor). Se um terminal não estiver anexado a uma sessão, ele será anexado em breve ou estará em processo de destruição.
Há diferentes tipos de terminais, mas os dois mais comuns são o console e o remoto.
Console vs. terminal remoto
Um terminal console
é uma sessão de terminal conectada a um host de console, que está sempre ativo com poucas exceções. Há apenas um terminal de console ativo em um determinado computador e todos os dispositivos de entrada/saída locais são anexados a esse terminal.
O outro terminal comum é o terminal remote
. Um terminal remoto é um terminal em que toda a entrada/saída está em um sistema remoto e não está diretamente conectada. Por exemplo, o teclado, o mouse e o monitor associados à sessão remota estão fisicamente localizados em outro sistema com um terminal remoto rdp (Protocolo de Área de Trabalho Remota). Esse terminal é criado por provedores de protocolo (RDP, Citrix, VMware etc.) que se integram à interface de dos Serviços de Área de Trabalho Remota. Os dispositivos de entrada/saída associados a isso são considerados "remotos".
O Win32k e outros programas podem usar APIs do WTS como WTSQuerySessionInformation para estar ciente de que o usuário está conectado ao computador remotamente. Isso é útil quando os dispositivos são redirecionados; determinados recursos precisam ser desabilitados, considerar latência extra ou tomar caminhos diferentes.
O que acontece quando eu faço o controle remoto em uma máquina?
Abaixo estão exemplos de como terminais e sessões estão relacionados em um cenário de PROTOCOLO RDP (Protocolo de Área de Trabalho Remota) comum.
O usuário na frente do computador
O usuário, Bob, está fisicamente em seu computador e usando os dispositivos locais para interagir com a sessão. O terminal do console está anexado à sessão.
Usando outro computador para o controle remoto em
O usuário está acessando seu computador de outro local (não mostrado), portanto, o terminal do console não é mais usado para sua sessão ativa. Em vez disso, ele é anexado a uma sessão vazia com a tela de logon. Ao contrário dos terminais remotos, o terminal do console nunca é encerrado e, portanto, quando não há nenhum usuário local no dispositivo, ele é anexado a uma sessão vazia. Como o usuário está acessando seu computador de outro local, um terminal remoto é instanciado e anexado à sessão.
O usuário retorna ao computador e faz logon novamente no terminal do console
Quando os usuários retornam ao computador local, eles usam as entradas e saídas locais para interface com a sessão. Isso significa que o terminal do console foi reanexado à sessão e o terminal remoto usado durante a comunicação remota é encerrado.
Tempo de vida do terminal remoto
O tempo de vida do terminal remoto é semelhante ao tempo de vida da conexão do cliente RDP com o servidor RDP. Se a conexão RDP for interrompida devido a problemas de rede, o terminal remoto será desconectado e precisará ser estabelecido.
Vários terminais e sessões
Em sistemas operacionais como o Windows 10 Multisession e o Windows Server com a função RDSH (Host de Sessão de Área de Trabalho Remota) instalada, vários usuários podem ser conectados e ter um terminal conectado como a configuração abaixo. Nesse caso, ainda há apenas um único terminal/sessão de console, mas vários terminais/sessões remotas.
Neste exemplo, Bob e Abby acessam a sessão de um local remoto, instanciando um terminal remoto para interface com a sessão. Tom acessou a sessão localmente, que é anexada ao terminal do console. Se Tom fosse muito remoto no computador, sua sessão seria anexada a um terminal remoto, e o terminal do console seria anexado a uma sessão vazia exibindo a tela de logon.
Adaptadores gráficos e terminais do WDDM
Para obter elementos gráficos de um terminal remoto, você precisa de um driver indireto do WDDM (Windows Display Driver Model) remoto para definir as configurações do monitor virtual e processar a imagem da área de trabalho para o cliente. Há uma única instância do driver de Exibição Indireta remota do WDDM para cada terminal remoto que o driver remoto do WDDM pode expor até 16 monitores para a sessão remota.
drivers de exibição indireto remotos do WDDM podem duplicar os recursos de exibição do sistema remoto. Por exemplo, se o monitor no sistema remoto for 1080p a 60Hz, o driver de Exibição Indireto remoto do WDDM poderá expor um monitor de 60Hz de 1080p na sessão remota; ou se um cliente remoto estiver em execução em um iPad, o driver de exibição indireto remoto do WDDM para esse terminal remoto exporá um monitor correspondente aos recursos de exibição do iPad.
As capacidades de exibição de uma GPU do WDDM são sempre associadas ao terminal do console. Isso significa que um monitor local exposto por meio do driver WDDM completo, do Driver de Exibição Indireto do WDDM do console ou do driver Somente Exibição do WDDM exibirá apenas o terminal do console, daí a sessão atual do console. Por exemplo, uma GPU do WDDM completa com dois monitores locais anexados será exposta na sessão do console. Ainda assim, esse adaptador é enumerado em uma sessão remota sem nenhum monitor anexado.
Em sessões remotas do WDDM, a política padrão da SKU (com substituição de política de grupo) decide se WARP (rasterizador de CPU) ou uma GPU de renderização emparelhada com o adaptador de Exibição Indireto do WDDM remoto renderizará a área de trabalho e o aplicativo para essa sessão remota.