Compartilhar via


Função RxCeBuildConnectionOverMultipleTransports (rxce.h)

RxCeBuildConnectionOverMultipleTransports estabelece uma conexão entre um endereço de conexão RDBSS local e um determinado endereço remoto e dá suporte a vários transportes. Um conjunto de endereços locais é especificado e essa rotina tenta se conectar ao servidor de destino por meio de todos os transportes associados aos endereços locais. Uma conexão é escolhida como vencedora, dependendo das opções de conexão.

Sintaxe

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

Um ponteiro para o objeto de dispositivo minidiretório.

CreateOption

Crie opções que determinam qual transporte será selecionado para estabelecer uma conexão. Essas opções podem ser uma das seguintes enumerações para RXCE_CONNECTION_CREATE_OPTIONS:

RxCeSelectFirstSuccessfulTransport

Selecione o primeiro transporte bem-sucedido que responde.

RxCeSelectBestSuccessfulTransport

Selecione o melhor transporte bem-sucedido que responde.

RxCeSelectAllSuccessfulTransports

Selecione todos os transportes bem-sucedidos que respondem.

[in] NumberOfAddresses

O número de endereços locais (transportes).

[in] pLocalAddressPointers

Um ponteiro para uma matriz dos identificadores de endereço local.

[in] pServerName

Um ponteiro para o nome do servidor (para enumeração de conexão).

[in] pConnectionInformation

Um ponteiro para as informações de conexão que especificam o endereço remoto.

[in] pHandler

Um ponteiro para o manipulador de eventos para processamento recebe indicações.

[in] pEventContext

Um ponteiro para o parâmetro de contexto a ser passado de volta para o manipulador de eventos e usado para indicações.

[in] pCompletionRoutine

Um ponteiro para uma rotina de conclusão de conexão quando essa rotina for concluída se STATUS_PENDING for retornado inicialmente.

[in, out] pCompletionContext

Na entrada, esse parâmetro contém um ponteiro para uma estrutura de RXCE_CONNECTION_COMPLETION_CONTEXT não inicializada. Na saída quando essa chamada for bem-sucedida, o circuito virtual será associado à conexão e o circuito virtual e a conexão serão inicializados corretamente.

Retornar valor

RxCeBuildConnectionOverMultipleTransports retorna STATUS_SUCCESS sobre êxito ou um dos seguintes códigos de erro em caso de falha:

Código de retorno Descrição
STATUS_INSUFFICIENT_RESOURCES
Falha na alocação de memória de pool nãopagado necessária para essa rotina.
STATUS_INVALID_HANDLE
Não foi possível inicializar uma conexão e um circuito virtual com qualquer um dos vários transportes. Esse erro poderá ocorrer se todos os transportes RDBSS ou os endereços do mecanismo de conexão RBDSS apontados na matriz pLocalAddressPointers forem inválidos.
STATUS_INVALID_PARAMETER
Um dos parâmetros passados para essa rotina era inválido.
STATUS_PENDING
Uma das chamadas assíncronas para os diferentes transportes passados como parâmetros de entrada para a rotina ainda está pendente e não foi concluída.

Comentários

RxCeBuildConnectionOverMultipleTransports iniciará uma série de chamadas assíncronas para todos os diferentes transportes passados como parâmetros para tentar criar uma conexão. O minidiretório de rede não pode ser descarregado até que todas essas solicitações assíncronas sejam concluídas.

RxCeBuildConnectionOverMultipleTransports deve ser chamado no contexto de um thread de trabalho do sistema.

Quando RxCeBuildConnectionOverMultipleTransports for bem-sucedido, o circuito virtual será inicializado corretamente e as conexões serão estabelecidas.

RXCE_CONNECTION_INFORMATION é um typedef para uma estrutura TDI_CONNECTION_INFORMATION .

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho rxce.h (include Rxce.h)
IRQL <= APC_LEVEL

Confira também

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION