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