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 |
---|---|
|
El socket se conectó correctamente a la dirección de transporte remota. El IRP se completará con el estado correcto. |
|
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. |
|
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. |
|
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). |
|
La aplicación WSK intentó pasar un búfer de más de 65 535 bytes al parámetro Buffer . |
|
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 |