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
无法使用任意多个传输来初始化连接和虚拟线路。 如果 pLocalAddressPointers 数组中指向的所有 RDBSS 传输或 RBDSS 连接引擎地址无效,则会发生此错误。
STATUS_INVALID_PARAMETER
传递给此例程的参数之一无效。
STATUS_PENDING
对作为输入参数传递给例程的不同传输的异步调用之一仍然未完成,尚未完成。

注解

RxCeBuildConnectionOverMultipleTransports 将启动对作为参数传入的所有不同传输的一系列异步调用,以尝试并生成连接。 在完成所有这些异步请求之前,无法卸载网络微型重定向程序。

必须在系统工作线程的上下文中调用 RxCeBuildConnectionOverMultipleTransports

RxCeBuildConnectionOverMultipleTransports 成功后,将正确初始化虚拟线路并建立连接。

RXCE_CONNECTION_INFORMATIONTDI_CONNECTION_INFORMATION 结构的 typedef。

要求

要求
目标平台 桌面
标头 rxce.h (包括 Rxce.h)
IRQL <= APC_LEVEL

另请参阅

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION