Condividi tramite


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
STATUS_INSUFFICIENT_RESOURCES
L'allocazione della memoria del pool non di paging necessaria per questa routine non è riuscita.
STATUS_INVALID_PARAMETER
È 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

Vedere anche

MDL

RxCeSend

TDI_CONNECTION_INFORMATION