PFN_WSK_BIND回调函数 (wsk.h)

WskBind 函数将套接字绑定到本地传输地址。

语法

PFN_WSK_BIND PfnWskBind;

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

参数

[in] Socket

指向 WSK_SOCKET 结构的指针,该结构指定要绑定的套接字的套接字对象。

[in] LocalAddress

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

Flags

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

[in, out] Irp

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

返回值

WskBind 返回以下 NTSTATUS 代码之一:

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

注解

对于侦听套接字,调用 WskBind 函数会准备套接字以侦听指定本地传输地址上的传入连接请求。 如果 WSK 应用程序指定本地通配符地址,则套接字将侦听所有本地传输地址上的传入连接请求。

对于数据报套接字,调用 WskBind 函数会准备套接字以在指定的本地传输地址上发送和接收数据报。 如果 WSK 应用程序指定本地通配符地址,则套接字将接收所有本地传输地址上的数据报,并从由系统的路由信息确定的相应本地传输地址发送数据报。

对于面向连接的套接字,调用 WskBind 函数会将套接字绑定到指定的本地传输地址。 在调用 WskConnect 函数之前,必须调用 WskBind。 如果 WSK 应用程序指定本地通配符地址,则当应用程序调用 WskConnect 将套接字连接到远程传输地址时,网络堆栈会将套接字绑定到相应的本地传输地址。 在这种情况下,本地传输地址由系统的路由信息确定。

对于流套接字,调用 WskBind 函数会将套接字绑定到指定的本地传输地址。 如果 WSK 应用程序指定本地通配符地址,则网络堆栈会将套接字绑定到可用的本地传输地址。 在调用 WskListenWskConnect 函数之前,必须调用 WskBind

要求

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

另请参阅

SOCKADDR

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_DATAGRAM_DISPATCH

WSK_PROVIDER_LISTEN_DISPATCH

WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskCloseSocket

WskConnect

WskSocket