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
- RxCeSelectBestSuccessfulTransport
- RxCeSelectAllSuccessfulTransports
Selecione o primeiro transporte bem-sucedido que responde.
Selecione o melhor transporte bem-sucedido que responde.
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 |
---|---|
|
Falha na alocação de memória de pool nãopagado necessária para essa rotina. |
|
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. |
|
Um dos parâmetros passados para essa rotina era inválido. |
|
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 |