Функция 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 при успешном выполнении или один из следующих кодов ошибок при сбое:

Код возврата Описание
STATUS_INSUFFICIENT_RESOURCES
Не удалось выделить непагрегированную память пула, необходимую для этой подпрограммы.
STATUS_INVALID_HANDLE
Невозможно инициализировать подключение и виртуальный канал с помощью любого из нескольких транспортных средств. Эта ошибка может возникнуть, если все транспорты RDBSS или адреса подсистемы подключений RBDSS, указанные в массиве pLocalAddressPointers , недопустимы.
STATUS_INVALID_PARAMETER
Один из параметров, переданных в эту подпрограмму, был недопустимым.
STATUS_PENDING
Один из асинхронных вызовов различных транспортов, передаваемых в качестве входных параметров в подпрограмму, по-прежнему остается незавершенным и не завершен.

Комментарии

RxCeBuildConnectionOverMultipleTransports инициирует серию асинхронных вызовов всех различных транспортных средств, передаваемых в качестве параметров, чтобы попытаться создать подключение. Сетевой мини-перенаправитель не может быть выгружен до тех пор, пока не будут выполнены все эти асинхронные запросы.

RxCeBuildConnectionOverMultipleTransports должен вызываться в контексте системного рабочего потока.

При успешном выполнении RxCeBuildConnectionOverMultipleTransports будет правильно инициализирован виртуальный канал и установлены подключения.

RXCE_CONNECTION_INFORMATION — это определение типа для структуры TDI_CONNECTION_INFORMATION .

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть rxce.h (включая Rxce.h)
IRQL <= APC_LEVEL

См. также раздел

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION