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 de 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 de 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 receber 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 é bem-sucedida, o circuito virtual é associado à conexão e o circuito virtual e a conexão são inicializados corretamente.

Valor de retorno

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

Código de retorno Descrição
STATUS_INSUFFICIENT_RESOURCES
Falha na alocação de memória de pool nãopagada 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 pode ocorrer se todos os transportes RDBSS ou os endereços do mecanismo de conexão RBDSS apontados no pLocalAddressPointers matriz 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.

Observações

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
da Plataforma de Destino Área de trabalho
cabeçalho rxce.h (inclua Rxce.h)
IRQL <= APC_LEVEL

Consulte também

RxCeBuildConnection

RxCeTearDownConnection

TDI_CONNECTION_INFORMATION