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. Non che questo parametro venga ignorato se il parametro Options richiede un'operazione di invio sincrono.
Valore restituito
RxCeSendDatagram restituisce STATUS_SUCCESS in caso di esito positivo o uno dei codici di errore seguenti in caso di errore:
Codice restituito | Descrizione |
---|---|
|
L'allocazione della memoria del pool non di paging necessaria per questa routine non è riuscita. |
|
È stata passata una lunghezza non valida nel parametro SendLength in base al opzioni di specificato. |
Osservazioni
Le opzioni asincrone e sincrone indicate nel parametro opzioni di usate in RxCeSendDatagram distinguere tra due situazioni. Nel caso asincrono, il controllo torna al chiamante dopo che la richiesta è stata inviata correttamente al trasporto sottostante. I risultati di una determinata richiesta 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 di circuito virtuale ,ad esempio TCP, un'opzione sincrona implica che il controllo non restituisce finché i dati non raggiungono il server. D'altra parte per i trasporti orientati ai datagrammi (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 vengono bloccati negli invii di datagram.
RXCE_CONNECTION_INFORMATION è un typedef per una struttura TDI_CONNECTION_INFORMATION.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | rxce.h (include Rxce.h, Tdi.h) |
IRQL | <= APC_LEVEL |