PFN_WSK_SEND_TO función de devolución de llamada (wsk.h)
La función WskSendTo envía datos del datagrama a una dirección de transporte remota.
Sintaxis
PFN_WSK_SEND_TO PfnWskSendTo;
NTSTATUS PfnWskSendTo(
[in] PWSK_SOCKET Socket,
[in] PWSK_BUF Buffer,
ULONG Flags,
[in, optional] PSOCKADDR RemoteAddress,
[in] ULONG ControlInfoLength,
[in, optional] PCMSGHDR ControlInfo,
[in, out] PIRP Irp
)
{...}
Parámetros
[in] Socket
Puntero a una estructura de WSK_SOCKET que especifica el objeto de socket para el socket del datagrama sobre el que se va a enviar el datagrama.
[in] Buffer
Puntero a una estructura de WSK_BUF inicializada que describe el búfer de datos que contiene el datagrama que se envía a través del socket.
Flags
Este parámetro está reservado para uso del sistema. Una aplicación WSK debe establecer este parámetro en cero.
[in, optional] RemoteAddress
Puntero a una estructura que especifica la dirección de transporte remota a la que se va a enviar el datagrama. Este puntero debe ser un puntero al tipo de estructura SOCKADDR específico que corresponde a la familia de direcciones que especificó la aplicación WSK cuando creó el socket.
Si la aplicación WSK ha establecido una dirección de transporte remota fija o una dirección de transporte de destino fija para el socket de datagrama, este puntero es opcional y puede ser NULL. Si null, el datagrama se envía a la dirección de transporte remota fija o a la dirección de transporte de destino fija. Si noNULL, el datagrama se envía a la dirección de transporte remota especificada.
Para obtener más información sobre cómo establecer una dirección de transporte remota fija para un socket de datagrama, consulte SIO_WSK_SET_REMOTE_ADDRESS.
Para obtener más información sobre cómo establecer una dirección de transporte de destino fija para un socket de datagrama, consulte SIO_WSK_SET_SENDTO_ADDRESS.
[in] ControlInfoLength
Número de bytes de datos del búfer al que apunta el parámetro ControlInfo. Si no hay información de control asociada al datagrama, el parámetro ControlInfoLength debe ser cero.
[in, optional] ControlInfo
Puntero a un búfer que contiene información de control asociada al datagrama que se envía. Los datos de información de control constan de uno o varios objetos de datos de control, cada uno de los cuales comienza con una estructura de CMSGHDR de. Si no hay información de control asociada al datagrama, este parámetro debe ser NULL.
[in, out] Irp
Puntero a un IRP asignado por el autor de la llamada que usa el subsistema WSK para completar la operación de envío de forma asincrónica. Para obtener más información sobre el uso de IRP con funciones WSK, consulte Uso de IRP con funciones del kernel de Winsock.
Valor devuelto
WskSendTo devuelve uno de los siguientes códigos NTSTATUS:
Observaciones
Si la función WskSendTo devuelve STATUS_PENDING, la cadena MDL que se describe en la estructura de WSK_BUF a la que apunta el parámetro Buffer debe permanecer bloqueada en la memoria hasta que se complete el IRP. Además, el búfer al que apunta el parámetro ControlInfo también debe permanecer válido hasta que se complete el IRP. Si la aplicación WSK asignó la cadena MDL o el búfer de información de control con una de las funciones de ExAllocateXxx, no puede liberar la memoria con la función ExFree correspondienteXxx hasta después de que se complete el IRP. Si la aplicación WSK asignó la cadena MDL o el búfer de información de control en la pila, no puede devolver de la función que llama a la función WskSendTo hasta después de que se complete el IRP.
El subsistema WSK no realiza ningún almacenamiento en búfer de datos cuando envía datagramas a través de un socket. Por lo tanto, el subsistema WSK no completará una llamada al WskSendTo función hasta que se envíen todos los datos.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
de la plataforma de destino de | Universal |
encabezado de | wsk.h (incluya Wsk.h) |
irQL | <= DISPATCH_LEVEL |