PFN_WSK_CONNECT回调函数 (wsk.h)

WskConnect 函数将面向连接的或流套接字连接到远程传输地址。

语法

PFN_WSK_CONNECT PfnWskConnect;

NTSTATUS PfnWskConnect(
  [in]      PWSK_SOCKET Socket,
  [in]      PSOCKADDR RemoteAddress,
            ULONG Flags,
  [in, out] PIRP Irp
)
{...}

参数

[in] Socket

指向 WSK_SOCKET 结构的指针,该结构指定连接到远程传输地址的套接字的套接字对象。

[in] RemoteAddress

指向 结构的指针,该结构指定要将套接字连接到的远程传输地址。 此指针必须是指向特定 SOCKADDR 结构类型的指针,该类型对应于 WSK 应用程序在创建套接字时指定的地址系列。

Flags

此参数保留供系统使用。 WSK 应用程序必须将此参数设置为零。

[in, out] Irp

指向调用方分配的 IRP 的指针,WSK 子系统使用该 IRP 以异步方式完成连接操作。 有关将 IRP 与 WSK 函数配合使用的详细信息,请参阅 将 IRP 与 Winsock 内核函数配合使用

返回值

WskConnect 返回以下 NTSTATUS 代码之一:

返回代码 说明
STATUS_SUCCESS
套接字已成功连接到远程传输地址。 IRP 将以成功状态完成。
STATUS_PENDING
WSK 子系统无法立即连接套接字。 WSK 子系统将在将套接字连接到远程传输地址后完成 IRP。 连接操作的状态将在 IRP 的 IoStatus.Status 字段中返回。
STATUS_FILE_FORCED_CLOSED
套接字不再正常工作。 IRP 将以失败状态完成。 WSK 应用程序必须调用 WskCloseSocket 函数以尽快关闭套接字。
其他状态代码
出现了错误。 IRP 将以失败状态完成。

注解

WSK 应用程序只能在面向连接的套接字或流套接字上调用 WskConnect 函数,该应用程序以前通过调用 WskBind 函数将其绑定到本地传输地址。

对于流套接字,在流套接字上成功调用 WskConnect 后,该套接字将提交到面向连接的流,并且可能不再调用侦听套接字函数。

WSK 应用程序可以通过调用 WskSocketConnect 函数(而不是调用 WskSocket 函数、WskBind 函数和 WskConnect 函数)在单个函数调用中创建、绑定和连接面向连接的套接字。 建议调用 WskSocketConnect 函数,除非 WSK 应用程序需要在绑定或连接套接字之前设置套接字选项或发出 I/O 控制操作。

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
目标平台 通用
标头 wsk.h (包括 Wsk.h)
IRQL <= DISPATCH_LEVEL

另请参阅

SOCKADDR

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskBind

WskCloseSocket

WskDisconnect

WskDisconnectEvent

WskSocket

WskSocketConnect