Compartir a través de


Función RxCeSendDatagram (rxce.h)

RxCeSendDatagram envía una unidad de datos de servicio de transporte (TSDU) a lo largo de la conexión especificada en un circuito virtual.

Sintaxis

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
);

Parámetros

hAddress

Puntero al transporte a lo largo del cual se va a enviar el TSDU.

[in] pConnectionInformation

Puntero a la información de conexión que contiene la dirección remota.

SendOptions

Puntero a la información de conexión que contiene la dirección remota.

[in] pMdl

Puntero al búfer que se va a enviar.

[in] SendLength

Longitud de los datos que se van a enviar.

[in] pCompletionContext

Contexto pasado al autor de la llamada durante SendCompletion para operaciones asincrónicas. No es que este parámetro se omita si el parámetro Options solicita una operación de envío sincrónica.

Valor devuelto

RxCeSendDatagram devuelve STATUS_SUCCESS si se ha realizado correctamente o uno de los siguientes códigos de error en caso de error:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES
Error en la asignación de memoria de grupo no paginada necesaria para esta rutina.
STATUS_INVALID_PARAMETER
Se pasó una longitud no válida en el parámetro SendLength en función de las opciones especificadas.

Comentarios

Las opciones asincrónicas y sincrónicas indicadas en el parámetro Options usado en RxCeSendDatagram distinguen entre dos situaciones. En el caso asincrónico, el control vuelve al autor de la llamada una vez que la solicitud se ha enviado correctamente al transporte subyacente. Los resultados de cualquier solicitud determinada se comunican con la rutina de devolución de llamada SendCompletion . El parámetro pCompletionContext de RxCeSendDatagram se devuelve en la rutina de devolución de llamada para ayudar al autor de la llamada a eliminar la ambigüedad de las solicitudes.

En el caso sincrónico, la solicitud se envía al transporte subyacente y el control no vuelve al autor de la llamada hasta que se completa la solicitud. Tenga en cuenta que, en el caso sincrónico, se omite el parámetro pCompletionContext y el estado devuelto corresponde al estado de finalización de las operaciones.

La ventaja de las opciones asincrónicas y sincrónicas depende del transporte subyacente. En un entorno de circuito virtual (TCP, por ejemplo), una opción sincrónica implica que el control no devuelve hasta que los datos llegan al servidor. Por otro lado, para los transportes orientados al datagrama (UDP, por ejemplo), hay muy poca diferencia entre las dos opciones.

Tenga en cuenta que la opción sincrónica no tiene en cuenta el envío de datagramas porque los transportes subyacentes no se bloquean en los envíos de datagramas.

RXCE_CONNECTION_INFORMATION es una definición de tipo para una estructura de TDI_CONNECTION_INFORMATION .

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado rxce.h (include Rxce.h, Tdi.h)
IRQL <= APC_LEVEL

Consulte también

MDL

RxCeSend

TDI_CONNECTION_INFORMATION