Fonction RxCeBuildConnectionOverMultipleTransports (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 d’appareil de 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
- RxCeSelectBestSuccessfulTransport
- RxCeSelectAllSuccessfulTransports
Sélectionnez le premier transport réussi qui répond.
Sélectionnez le transport le mieux réussi qui répond.
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’adresses locales.
[in] pServerName
Pointeur vers le nom du serveur (pour l’énumération de la 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 à renvoyer au gestionnaire d’événements et à utiliser 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é.
[in, out] pCompletionContext
En entrée, ce paramètre contient un pointeur vers une structure de RXCE_CONNECTION_COMPLETION_CONTEXT non initialisée. Lors de la 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 retournée
RxCeBuildConnectionOverMultipleTransports retourne STATUS_SUCCESS en cas de réussite ou l’un des codes d’erreur suivants en cas d’échec :
Code de retour | Description |
---|---|
|
L’allocation de la mémoire de pool non paginé nécessaire à cette routine a échoué. |
|
Il n’a pas été 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 vers le tableau pLocalAddressPointers ne sont pas valides. |
|
L’un des paramètres passés à cette routine n’était pas valide. |
|
L’un des appels asynchrones aux différents transports passés en tant que paramètres d’entrée à la routine est toujours en cours et n’est pas terminé. |
Remarques
RxCeBuildConnectionOverMultipleTransports lance une série d’appels asynchrones à tous les différents transports passés en tant que paramètres pour essayer de créer 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é 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 .
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | rxce.h (inclure Rxce.h) |
IRQL | <= APC_LEVEL |