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 Opciones solicita una operación de envío sincrónica.

Valor devuelto

RxCeSendDatagram devuelve STATUS_SUCCESS correcto 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 la memoria del 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 del Options especificado.

Observaciones

Las opciones asincrónicas y sincrónicas indicadas en el parámetro Options usado en RxCeSendDatagram distinguir 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 en 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 complete 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 el option de sincrónica no se tiene en cuenta para enviar 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 Valor
de la plataforma de destino de Escritorio
encabezado de rxce.h (include Rxce.h, Tdi.h)
irQL <= APC_LEVEL

Consulte también

MDL

rxCeSend

TDI_CONNECTION_INFORMATION