Функция RxCeBuildConnectionOverMultipleTransports (rxce.h)
RxCeBuildConnectionOverMultipleTransports устанавливает подключение между локальным адресом подключения RDBSS и заданным удаленным адресом и поддерживает несколько транспортов. Указан набор локальных адресов, и эта подпрограмма пытается подключиться к целевому серверу через все транспорты, связанные с локальными адресами. Одно подключение выбирается в качестве победителя в зависимости от параметров подключения.
Синтаксис
NTSTATUS RxCeBuildConnectionOverMultipleTransports(
[in, out] IN OUT PRDBSS_DEVICE_OBJECT pMiniRedirectorDeviceObject,
IN RXCE_CONNECTION_CREATE_OPTIONS CreateOption,
[in] IN ULONG NumberOfAddresses,
[in] IN PRXCE_ADDRESS *pLocalAddressPointers,
[in] IN PUNICODE_STRING pServerName,
[in] IN PRXCE_CONNECTION_INFORMATION pConnectionInformation,
[in] IN PRXCE_CONNECTION_EVENT_HANDLER pHandler,
[in] IN PVOID pEventContext,
[in] IN PRXCE_CONNECTION_COMPLETION_ROUTINE pCompletionRoutine,
[in, out] IN OUT PRXCE_CONNECTION_COMPLETION_CONTEXT pCompletionContext
);
Параметры
[in, out] pMiniRedirectorDeviceObject
Указатель на объект устройства мини-перенаправления.
CreateOption
Создайте параметры, определяющие, какой транспорт будет выбран для установления подключения. Эти параметры могут быть одним из следующих перечислений для RXCE_CONNECTION_CREATE_OPTIONS.
- RxCeSelectFirstSuccessfulTransport
- RxCeSelectBestSuccessfulTransport
- RxCeSelectAllSuccessfulTransports
Выберите первый успешный транспорт, который отвечает.
Выберите лучший успешный транспорт, который отвечает.
Выберите все успешные транспорты, которые отвечают.
[in] NumberOfAddresses
Количество локальных адресов (транспорт).
[in] pLocalAddressPointers
Указатель на массив дескрипторов локальных адресов.
[in] pServerName
Указатель на имя сервера (для перечисления подключений).
[in] pConnectionInformation
Указатель на сведения о подключении, указывающее удаленный адрес.
[in] pHandler
Указатель на обработчик событий для обработки показаний получения.
[in] pEventContext
Указатель на параметр контекста, передаваемый обратно обработчику событий и используемый для указания.
[in] pCompletionRoutine
Указатель на подпрограмму завершения подключения, когда эта подпрограмма завершена, если STATUS_PENDING изначально возвращается.
[in, out] pCompletionContext
Во входных данных этот параметр содержит указатель на неинициализированную RXCE_CONNECTION_COMPLETION_CONTEXT структуру. При успешном выполнении этого вызова виртуальный канал связан с подключением и виртуальным каналом и подключением правильно инициализированы.
Возвращаемое значение
RxCeBuildConnectionOverMultipleTransports возвращает STATUS_SUCCESS при успешном выполнении или одном из следующих кодов ошибок при сбое:
Возвращаемый код | Описание |
---|---|
|
Сбой выделения памяти непагрегированного пула, необходимой для этой подпрограммы. |
|
Не удалось инициализировать подключение и виртуальный канал с любым из нескольких транспортных средств. Эта ошибка может возникать, если все транспорты RDBSS или адреса подсистемы подключений RBDSS, указанные в массиве pLocalAddressPointers, массив недопустимы. |
|
Один из параметров, переданных этой подпрограмме, недопустим. |
|
Один из асинхронных вызовов различных транспортных средств, передаваемых в качестве входных параметров в подпрограмму, по-прежнему не выполняется и не завершен. |
Замечания
RxCeBuildConnectionOverMultipleTransports инициирует ряд асинхронных вызовов для всех различных транспортных средств, передаваемых в качестве параметров, чтобы попытаться создать подключение. Мини-перенаправление сети невозможно выгрузить до завершения всех этих асинхронных запросов.
RxCeBuildConnectionOverMultipleTransports должен вызываться в контексте рабочего потока системы.
Если RxCeBuildConnectionOverMultipleTransports успешно, виртуальный канал будет правильно инициализирован и будет установлен.
RXCE_CONNECTION_INFORMATION — это типдф для структуры TDI_CONNECTION_INFORMATION.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | rxce.h (include Rxce.h) |
IRQL | <= APC_LEVEL |