Поделиться через


Функция 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 (include Rxce.h)
IRQL <= APC_LEVEL

См. также

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION