Partager via


RxCeBuildConnectionOverMultipleTransports, fonction (rxce.h)

RxCeBuildConnectionOverMultipleTransports établit une connexion entre une adresse de connexion RDBSS locale et une adresse distante donnée et prend en charge plusieurs transports. Un ensemble d’adresses locales est spécifié et cette routine tente de se connecter au serveur cible via tous les transports associés aux adresses locales. Une connexion est choisie comme gagnant en fonction des options de connexion.

Syntaxe

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

Paramètres

[in, out] pMiniRedirectorDeviceObject

Pointeur vers l’objet appareil mini-redirecteur.

CreateOption

Créez des options qui déterminent le transport qui sera sélectionné pour établir une connexion. Ces options peuvent être l’une des énumérations suivantes pour RXCE_CONNECTION_CREATE_OPTIONS :

RxCeSelectFirstSuccessfulTransport

Sélectionnez le premier transport réussi qui répond.

RxCeSelectBestSuccessfulTransport

Sélectionnez le transport le mieux réussi qui répond.

RxCeSelectAllSuccessfulTransports

Sélectionnez tous les transports réussis qui répondent.

[in] NumberOfAddresses

Nombre d’adresses locales (transports).

[in] pLocalAddressPointers

Pointeur vers un tableau des handles d’adresse locale.

[in] pServerName

Pointeur vers le nom du serveur (pour l’énumération de connexion).

[in] pConnectionInformation

Pointeur vers les informations de connexion qui spécifient l’adresse distante.

[in] pHandler

Pointeur vers le gestionnaire d’événements pour le traitement des indications de réception.

[in] pEventContext

Pointeur vers le paramètre de contexte à passer au gestionnaire d’événements et utilisé pour les indications.

[in] pCompletionRoutine

Pointeur vers une routine d’achèvement de connexion lorsque cette routine s’est terminée si STATUS_PENDING est initialement retournée.

[in, out] pCompletionContext

Lors de l’entrée, ce paramètre contient un pointeur vers une structure RXCE_CONNECTION_COMPLETION_CONTEXT non initialisée. En sortie lorsque cet appel réussit, le circuit virtuel est associé à la connexion et le circuit virtuel et la connexion sont correctement initialisés.

Valeur de retour

RxCeBuildConnectionOverMultipleTransports retourne STATUS_SUCCESS en cas de réussite ou l’un des codes d’erreur suivants en cas d’échec :

Retourner le code Description
STATUS_INSUFFICIENT_RESOURCES
L’allocation de la mémoire du pool non paginé nécessaire par cette routine a échoué.
STATUS_INVALID_HANDLE
Il n’était pas possible d’initialiser une connexion et un circuit virtuel avec l’un des transports multiples. Cette erreur peut se produire si tous les transports RDBSS ou les adresses du moteur de connexion RBDSS pointées dans les pLocalAddressPointers tableau ne sont pas valides.
STATUS_INVALID_PARAMETER
L’un des paramètres passés à cette routine n’était pas valide.
STATUS_PENDING
L’un des appels asynchrones aux différents transports passés en tant que paramètres d’entrée à la routine est toujours en attente et n’a pas été terminé.

Remarques

RxCeBuildConnectionOverMultipleTransports lancera une série d’appels asynchrones à tous les différents transports passés en tant que paramètres pour essayer de générer une connexion. Le mini-redirecteur réseau ne peut pas être déchargé tant que toutes ces requêtes asynchrones ne sont pas terminées.

RxCeBuildConnectionOverMultipleTransports doit être appelée dans le contexte d’un thread de travail système.

Lorsque RxCeBuildConnectionOverMultipleTransports réussit, le circuit virtuel est correctement initialisé et les connexions sont établies.

RXCE_CONNECTION_INFORMATION est un typedef pour une structure TDI_CONNECTION_INFORMATION.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête rxce.h (include Rxce.h)
IRQL <= APC_LEVEL

Voir aussi

RxCeBuildConnection

RxCearDownConnection

TDI_CONNECTION_INFORMATION