Использование клиентского API брокера подключений к удаленному рабочему столу
Клиентский API брокера подключений к удаленному рабочему столу позволяет сторонним поставщикам протоколов использовать брокер подключений для ускорения обработки подключений, использующих протокол для подключения к виртуальным машинам или серверам удаленных рабочих столов в ферме.
Инструкции
Шаг 1. Получение интерфейса IConnectionBrokerClient
После инициализации поставщика приложения или протокола выполните следующие действия.
- Вызовите функцию CBCreateClientInstance , чтобы получить интерфейс IConnectionBrokerClient .
- Сохраняйте интерфейс IConnectionBrokerClient до тех пор, пока он вам нужен.
- Если интерфейс IConnectionBrokerClient больше не нужен, вызовите метод Release .
Шаг 2. Запрос целевой информации
Когда поставщик протокола получает входящий запрос на подключение, выполните следующие действия, чтобы вызвать метод IConnectionBrokerClient::GetTargetInfo . Этот метод получает от брокера подключений соответствующий сервер для перенаправления подключения.
- Создайте событие, которое можно сообщить с помощью функции CreateEvent или аналогичной функции, используемой для параметра hStatusEvent .
- Выделите память для параметров pTargetInfo и pResult . Эти блоки памяти должны оставаться на месте до завершения всей последовательности.
- Заполните структуру CB_CONNECTION_INFO , содержащую все сведения о входящем подключении.
- Вызовите метод GetTargetInfo , передав все необходимые параметры. Это асинхронный метод, который возвращает экземпляр интерфейса IConnectionBrokerRequest .
- Дождитесь установки события hStatusEvent .
- Каждый раз, когда задано событие hStatusEvent , вызовите метод IConnectionBrokerRequest::CheckStatus , чтобы определить состояние запроса.
- Когда CheckStatus возвращает CB_STATUS_REQUEST_COMPLETED, параметры pTargetInfo и pResult будут содержать их сведения. Вы можете прервать цикл ожидания, так как параметр hStatusEvent больше не будет использоваться.
- Используйте сведения в структуре CB_TARGET_INFO , представленной параметром pTargetInfo , чтобы определить, куда следует перенаправлять входящее подключение.
- Отпустите интерфейс IConnectionBrokerRequest .
- Закройте дескриптор событий hStatusEvent или вы можете повторно использовать его для последующих запросов на подключение.