Como usar a API de cliente do Agente de Conexão de Área de Trabalho Remota

A API de cliente do Agente de Conexão de Área de Trabalho Remota permite que fornecedores de protocolo de terceiros aproveitem o Agente de Conexão para agilizar o tratamento de conexões que usam seu protocolo para se conectar a máquinas virtuais ou servidores de Área de Trabalho Remota em um farm.

Instruções

Etapa 1: obter a interface IConnectionBrokerClient

Quando seu aplicativo ou provedor de protocolo for inicializado, execute as etapas a seguir.

  1. Chame a função CBCreateClientInstance para obter a interface IConnectionBrokerClient .
  2. Mantenha a interface IConnectionBrokerClient enquanto precisar dela.
  3. Quando a interface IConnectionBrokerClient não for mais necessária, chame o método Release .

Etapa 2: Solicitar as informações de destino

Quando o provedor de protocolo receber uma solicitação de conexão de entrada, execute as seguintes etapas para chamar o método IConnectionBrokerClient::GetTargetInfo . Esse método obtém, do Agente de Conexão, o servidor apropriado para o qual redirecionar a conexão.

  1. Crie um evento que possa ser sinalizado usando o CreateEvent, ou função semelhante, a ser usado para o parâmetro hStatusEvent .
  2. Aloque memória para os parâmetros pTargetInfo e pResult . Esses blocos de memória devem permanecer em vigor até que toda essa sequência seja concluída.
  3. Preencha uma estrutura CB_CONNECTION_INFO que contém todas as informações sobre a conexão de entrada.
  4. Chame o método GetTargetInfo , passando todos os parâmetros necessários. Esse é um método assíncrono que retornará uma instância da interface IConnectionBrokerRequest .
  5. Aguarde até que o evento hStatusEvent seja definido.
  6. Sempre que o evento hStatusEvent for definido, chame o método IConnectionBrokerRequest::CheckStatus para determinar o status da solicitação.
  7. Quando CheckStatus retornar CB_STATUS_REQUEST_COMPLETED, os parâmetros pTargetInfo e pResult conterão suas informações. Você pode sair do loop de espera porque o parâmetro hStatusEvent não será mais usado.
  8. Use as informações na estrutura CB_TARGET_INFO representada pelo parâmetro pTargetInfo para determinar para onde redirecionar a conexão de entrada.
  9. Libere a interface IConnectionBrokerRequest .
  10. Feche o identificador de evento hStatusEvent ou reutilize-o para solicitações de conexão subsequentes.