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 conexiones.

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 la aplicación WSK especificó al crear 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 haber conectado 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 no hay marcas válidas definidas actualmente para WskConnectEx, esto no está permitido).
STATUS_BUFFER_OVERFLOW
La aplicación WSK intentó pasar un búfer de más de 65 535 bytes al parámetro Buffer .
Otros códigos de estado
Se produjo un error. El IRP se completará con el estado de error.

Comentarios

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 emitir 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 de flujo 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 se llama correctamente a WskConnectEx en un socket de flujo, el socket se confirma en un flujo orientado a la conexión y es posible que ya no llame a funciones de socket de escucha.

Si se usa el parámetro Buffer , 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 TCP_FASTOPEN en un socket WSK a través de la función WskControlSocket , 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 Value
Cliente mínimo compatible Windows 10, versión 1703
Plataforma de destino Universal
Encabezado 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

WskDisconnect

WskDisconnectEvent

WskSocket

WskSocketConnect