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 |
---|---|
|
Error en la asignación de memoria de grupo no paginada necesaria para esta rutina. |
|
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 |