Función RxCeBuildConnectionOverMultipleTransports (rxce.h)

RxCeBuildConnectionOverMultipleTransports establece una conexión entre una dirección de conexión RDBSS local y una dirección remota determinada y admite varios transportes. Se especifica un conjunto de direcciones locales y esta rutina intenta conectarse al servidor de destino a través de todos los transportes asociados a las direcciones locales. Se elige una conexión como ganador en función de las opciones de conexión.

Sintaxis

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
);

Parámetros

[in, out] pMiniRedirectorDeviceObject

Puntero al objeto de dispositivo minidirector.

CreateOption

Cree opciones que determinen qué transporte se seleccionará para establecer una conexión. Estas opciones pueden ser una de las siguientes enumeraciones para RXCE_CONNECTION_CREATE_OPTIONS:

RxCeSelectFirstSuccessfulTransport

Seleccione el primer transporte correcto que responda.

RxCeSelectBestSuccessfulTransport

Seleccione el mejor transporte correcto que responda.

RxCeSelectAllSuccessfulTransports

Seleccione todos los transportes correctos que responden.

[in] NumberOfAddresses

Número de direcciones locales (transportes).

[in] pLocalAddressPointers

Puntero a una matriz de los identificadores de dirección local.

[in] pServerName

Puntero al nombre del servidor (para la enumeración de conexión).

[in] pConnectionInformation

Puntero a la información de conexión que especifica la dirección remota.

[in] pHandler

Puntero al controlador de eventos para procesar indicaciones de recepción.

[in] pEventContext

Puntero al parámetro de contexto que se va a devolver al controlador de eventos y se usa para las indicaciones.

[in] pCompletionRoutine

Puntero a una rutina de finalización de conexión cuando se completa esta rutina si se devuelve inicialmente STATUS_PENDING.

[in, out] pCompletionContext

En la entrada, este parámetro contiene un puntero a una estructura de RXCE_CONNECTION_COMPLETION_CONTEXT sin inicializar. Cuando esta llamada se realiza correctamente, el circuito virtual está asociado a la conexión y el circuito virtual y la conexión se inicializan correctamente.

Valor devuelto

RxCeBuildConnectionOverMultipleTransports devuelve STATUS_SUCCESS si se realiza correctamente o uno de los siguientes códigos de error en caso de error:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES
Error en la asignación de memoria de grupo no paginada necesaria para esta rutina.
STATUS_INVALID_HANDLE
No era posible inicializar una conexión y un circuito virtual con cualquiera de los múltiples transportes. Este error puede producirse si todas las direcciones del motor de conexión de RDBSS o RBDSS a las que apunta la matriz pLocalAddressPointers no son válidas.
STATUS_INVALID_PARAMETER
Uno de los parámetros pasados a esta rutina no era válido.
STATUS_PENDING
Una de las llamadas asincrónicas a los diferentes transportes pasados como parámetros de entrada a la rutina sigue pendiente y no se ha completado.

Comentarios

RxCeBuildConnectionOverMultipleTransports iniciará una serie de llamadas asincrónicas a todos los diferentes transportes pasados como parámetros para intentar crear una conexión. El minidirector de red no se puede descargar hasta que se completen todas estas solicitudes asincrónicas.

Se debe llamar a RxCeBuildConnectionOverMultipleTransports en el contexto de un subproceso de trabajo del sistema.

Cuando RxCeBuildConnectionOverMultipleTransports se realiza correctamente, se inicializará correctamente el circuito virtual y se establecerán conexiones.

RXCE_CONNECTION_INFORMATION es una definición de tipo para una estructura de TDI_CONNECTION_INFORMATION .

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado rxce.h (incluya Rxce.h)
IRQL <= APC_LEVEL

Consulte también

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION