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

Vedi anche

MDL

RxCeSend

TDI_CONNECTION_INFORMATION