Compartir a través de


PFN_WSK_CONNECT_EX función de devolución de llamada (wsk.h)

La función WskConnectEx conecta un socket orientado a la conexión o al flujo a una dirección de transporte remota.

WskConnectEx es similar a WskConnect, salvo que también puede enviar opcionalmente un búfer de datos durante o después de la sincronización de la conexión.

Sintaxis

PFN_WSK_CONNECT_EX PfnWskConnectEx;

NTSTATUS PfnWskConnectEx(
  [in]           PWSK_SOCKET Socket,
  [in]           PSOCKADDR RemoteAddress,
  [in, optional] PWSK_BUF Buffer,
                 ULONG Flags,
  [in, out]      PIRP Irp
)
{...}

Parámetros

[in] Socket

Puntero a una estructura de WSK_SOCKET que especifica el objeto de socket para el socket que se está conectando a una dirección de transporte remota.

[in] RemoteAddress

Puntero a una estructura que especifica la dirección de transporte remota a la que se va a conectar el socket. 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.

[in, optional] Buffer

Puntero a una estructura de WSK_BUF, que contiene los datos que se van a enviar durante o después de la sincronización de la conexión. El tamaño máximo permitido en bytes es de 65 535.

Flags

Este parámetro está reservado para uso del sistema. Una aplicación WSK debe establecer este parámetro en cero.

[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 conexión 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

WskConnectEx devuelve uno de los siguientes códigos NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS
El socket se conectó correctamente a la dirección de transporte remota. El IRP se completará con el estado correcto.
STATUS_PENDING
El subsistema WSK no pudo conectar el socket inmediatamente. El subsistema WSK completará el IRP después de conectar el socket a la dirección de transporte remota. El estado de la operación de conexión se devolverá en el campo IoStatus.Status del IRP.
STATUS_FILE_FORCED_CLOSED
El socket ya no es funcional. El IRP se completará con el estado de error. La aplicación WSK debe llamar a la función WskCloseSocket para cerrar el socket lo antes posible.
STATUS_INVALID_PARAMETER
La aplicación WSK intentó pasar una marca al parámetro Flags (ya que actualmente no se definen marcas válidas para WskConnectEx, esto no se permite).
STATUS_BUFFER_OVERFLOW
La aplicación WSK intentó pasar un búfer de más de 65 535 bytes al parámetro buffer de.
otros códigos de estado
Error. El IRP se completará con el estado de error.

Observaciones

Una aplicación WSK puede crear, enlazar y conectar un socket orientado a la conexión en una sola llamada de función llamando a la función WskSocketConnect en lugar de llamar a la función WskSocket, la función WskBind y, a continuación, la función WskConnectEx. Se recomienda llamar a la función WskSocketConnect a menos que la aplicación WSK necesite establecer una opción de socket o emita una operación de control de E/S antes de enlazar o conectar el socket.

Una aplicación WSK puede llamar a la función WskConnectEx solo en un socket orientado a la conexión o secuencia que la aplicación anteriormente enlazaba a una dirección de transporte local llamando a la función WskBind.

En el caso de los sockets de flujo, una vez que WskConnectEx se llama correctamente en un socket de flujo, el socket se confirma en un flujo orientado a la conexión y puede que ya no llame a funciones de socket de escucha.

Si se usa el parámetro buffer de, el autor de la llamada puede liberar la MDL en su estructura de WSK_BUF tan pronto como se complete la solicitud de conexión.

Antes de llamar a WskConnectEx con un búfer de envío proporcionado, si la aplicación WSK establece la opción de TCP_FASTOPEN en un socket WSK a través del WskControlSocket función, el sistema enviará opcionalmente algunos o todos los datos de un paquete SYN. Para obtener más información, consulte la opción Fastopen de TCP en IPPROTO_TCP Opciones de socket.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10, versión 1703
de la plataforma de destino de Universal
encabezado de wsk.h (incluya Wsk.h)
irQL <= DISPATCH_LEVEL

Consulte también

SOCKADDR

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskBind

WskCloseSocket

WskControlSocket de

WskDisconnect

WskDisconnectEvent de

WskSocket

WskSocketConnect