Partager via


RxCeSendDatagram, fonction (rxce.h)

RxCeSendDatagram envoie une unité de données de service de transport (TSDU) le long de la connexion spécifiée sur un circuit virtuel.

Syntaxe

NTSTATUS RxCeSendDatagram(
       IN PRXCE_ADDRESS                hAddress,
  [in] IN PRXCE_CONNECTION_INFORMATION pConnectionInformation,
       IN ULONG                        SendOptions,
  [in] IN PMDL                         pMdl,
  [in] IN ULONG                        SendLength,
  [in] IN PVOID                        pCompletionContext
);

Paramètres

hAddress

Pointeur vers le transport le long duquel le TSDU doit être envoyé.

[in] pConnectionInformation

Pointeur vers les informations de connexion qui contiennent l’adresse distante.

SendOptions

Pointeur vers les informations de connexion qui contiennent l’adresse distante.

[in] pMdl

Pointeur vers la mémoire tampon à envoyer.

[in] SendLength

Longueur des données à envoyer.

[in] pCompletionContext

Le contexte est repassé à l’appelant pendant SendCompletion pour les opérations asynchrones. Ce paramètre n’est pas ignoré si les options demandent une opération d’envoi synchrone.

Valeur de retour

RxCeSendDatagram retourne STATUS_SUCCESS sur la 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_PARAMETER
Une longueur non valide a été passée dans le paramètre SendLength en fonction de l'Options spécifiée.

Remarques

Les options asynchrones et synchrones indiquées dans le paramètre Options utilisés dans RxCeSendDatagram faire la distinction entre deux situations. Dans le cas asynchrone, le contrôle revient à l’appelant une fois la demande envoyée au transport sous-jacent. Les résultats d’une requête donnée sont communiqués à l’aide de la routine de rappel SendCompletion. Le paramètre pCompletionContext dans RxCeSendDatagram est repassé dans la routine de rappel pour aider l’appelant à lever l’ambiguïté des requêtes.

Dans le cas synchrone, la demande est envoyée au transport sous-jacent et le contrôle ne revient pas à l’appelant tant que la demande n’est pas terminée. Notez que dans le cas synchrone, le paramètre pCompletionContext est ignoré et l’état retourné correspond à l’état d’achèvement des opérations.

L’avantage des options asynchrones et synchrones dépend du transport sous-jacent. Dans un environnement de circuit virtuel (TCP, par exemple), une option synchrone implique que le contrôle ne retourne pas tant que les données n’atteignent pas le serveur. En revanche, pour les transports orientés datagrammes (UDP, par exemple), il existe très peu de différences entre les deux options.

Notez que l’option de synchrone est ignorée pour l’envoi de datagrammes, car les transports sous-jacents ne bloquent pas les envois de datagramme.

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, Tdi.h)
IRQL <= APC_LEVEL

Voir aussi

MDL

RxCeSend

TDI_CONNECTION_INFORMATION