Funzione RxCeSendDatagram (rxce.h)
RxCeSendDatagram invia un'unità dati del servizio di trasporto (TSDU) lungo la connessione specificata in un circuito virtuale.
Sintassi
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
);
Parametri
hAddress
Puntatore al trasporto lungo il quale deve essere inviato il TSDU.
[in] pConnectionInformation
Puntatore alle informazioni di connessione che contengono l'indirizzo remoto.
SendOptions
Puntatore alle informazioni di connessione che contengono l'indirizzo remoto.
[in] pMdl
Puntatore al buffer da inviare.
[in] SendLength
Lunghezza dei dati da inviare.
[in] pCompletionContext
Il contesto passato al chiamante durante SendCompletion per le operazioni asincrone. Questo parametro non viene ignorato se il parametro Options richiede un'operazione di invio sincrona.
Valore restituito
RxCeSendDatagram restituisce STATUS_SUCCESS sull'esito positivo o su uno dei codici di errore seguenti in caso di errore:
Codice restituito | Descrizione |
---|---|
|
L'allocazione della memoria del pool non con pagine necessaria per questa routine non è riuscita. |
|
Una lunghezza non valida è stata passata nel parametro SendLength in base alle opzioni specificate. |
Commenti
Le opzioni asincrone e sincrone indicate nel parametro Opzioni usate in RxCeSendDatagram distinguono tra due situazioni. Nel caso asincrono, il controllo restituisce al chiamante una volta che la richiesta è stata inviata correttamente al trasporto sottostante. I risultati di qualsiasi richiesta specificata vengono comunicati usando la routine di callback SendCompletion . Il parametro pCompletionContext in RxCeSendDatagram viene passato nella routine di callback per aiutare il chiamante a disambiguare le richieste.
Nel caso sincrono, la richiesta viene inviata al trasporto sottostante e il controllo non torna al chiamante fino al completamento della richiesta. Si noti che nel caso sincrono il parametro pCompletionContext viene ignorato e lo stato restituito corrisponde allo stato di completamento delle operazioni.
Il vantaggio delle opzioni asincrone e sincrone dipende dal trasporto sottostante. In un ambiente circuito virtuale (TCP, ad esempio), un'opzione sincrona implica che il controllo non restituisce fino a quando i dati non raggiungono il server. D'altra parte per i trasporti orientati al datagram (UDP, ad esempio), esiste una differenza molto piccola tra le due opzioni.
Si noti che l'opzione sincrona viene ignorata per l'invio di datagrammi perché i trasporti sottostanti non bloccano l'invio di datagram.
RXCE_CONNECTION_INFORMATION è un typedef per una struttura TDI_CONNECTION_INFORMATION .
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | rxce.h (include Rxce.h, Tdi.h) |
IRQL | <= APC_LEVEL |