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
- 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’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 |
---|---|
|
L’allocation de la mémoire du pool non paginé nécessaire par cette routine a échoué. |
|
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. |
|
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 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 |