Monitoramento de conexões e desconexões de sessão

Para um aplicativo de serviço, como um aplicativo de servidor de canal virtual, para monitorar conexões de sessão e desconexões, você deve registrá-lo nos Serviços de Área de Trabalho Remota. Para registrar o aplicativo com os Serviços de Área de Trabalho Remota, armazene o nome do aplicativo de servidor de canal virtual no registro adicionando uma subchave no seguinte local:

HKEY_LOCAL_MACHINE\Sistema\Currentcontrolset\Controle\TerminalServer\Addins

A subchave pode ter qualquer nome. Ele deve ter um valor REG_SZ , Name, que contém o nome simbólico do aplicativo.

Name = AddinName

O comprimento máximo da subchave e do valor de Name é de 99 caracteres.

A subchave também deve ter um valor REG_DWORD que indique o tipo de aplicativo de servidor.

Type = AddinType

AddinType deve ser o valor a seguir.

Valor Significado
3 Aplicativo no modo de usuário, espaço de sessão.

 

O registro do aplicativo de serviço entra em vigor somente em sessões criadas após a execução do registro.

Para cada aplicativo de serviço registrado, os Serviços de Área de Trabalho Remota sinalizarão um conjunto de objetos de evento quando um cliente se conectar ou se desconectar da sessão. Cada plug-in de canal virtual deve se registrar e criar os eventos de notificação chamando CreateEvent. Os nomes desses objetos de evento seguem o formato a seguir.

AddinName-Reconnect

AddinName-Disconnect

AddinName é a cadeia de caracteres especificada no valor Nome da subchave do Registro sob a qual o aplicativo de servidor está registrado. A criação desses eventos em uma sessão faz com que eles sejam criados em um diretório de eventos especial por sessão. O diretório de eventos fornece segurança adicional impedindo que aplicativos em outras sessões modifiquem o estado desses eventos.

Para controlar se os eventos RECONNECT e DISCONNECT são recebidos no servidor, você pode colocar o sinalizador RemoteControlPersistent no Registro sob a seguinte chave:

HKEY_LOCAL_MACHINE\Sistema\Currentcontrolset\Controle\TerminalServer\Addins\Addinname

O sinalizador habilita ou desabilita que os eventos RECONNECT e DISCONNECT sejam sinalizados quando uma sessão do cliente é iniciada ou interrompida. A sintaxe do valor REG_DWORD é a seguinte.

RemoteControlPersistent = flag

O valor do sinalizador pode ser um ou zero. Zero é o valor padrão. Se definido como um, o aplicativo de serviço não será notificado se a sessão do cliente for iniciada ou interrompida. Se definido como zero, um evento RECONNECT será sinalizado quando a sessão do cliente for iniciada e um evento DISCONNECT será sinalizado quando a sessão do cliente for interrompida.

O formato de nome do objeto de evento anterior ainda tem suporte no Windows Server 2008 para compatibilidade com versões anteriores. É recomendável que você use o formato mais recente do Windows Server 2008 porque ele é mais seguro.

O formato de evento anterior é o seguinte.

Global\AddinName-SessionId-Reconnect
 
Global\AddinName-SessionId-Disconnect

AddinName é a cadeia de caracteres especificada no valor Nome da subchave do Registro sob a qual o aplicativo de servidor está registrado. SessionId é o identificador de sessão de uma sessão de cliente.