WSACOMPLETION 结构 (winsock2.h)

WSACOMPLETION 结构指定对已注册命名空间进行的 I/O 控件调用的完成通知设置。

语法

typedef struct _WSACOMPLETION {
  WSACOMPLETIONTYPE Type;
  union {
    struct {
      HWND   hWnd;
      UINT   uMsg;
      WPARAM context;
    } WindowMessage;
    struct {
      LPWSAOVERLAPPED lpOverlapped;
    } Event;
    struct {
      LPWSAOVERLAPPED                    lpOverlapped;
      LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc;
    } Apc;
    struct {
      LPWSAOVERLAPPED lpOverlapped;
      HANDLE          hPort;
      ULONG_PTR       Key;
    } Port;
  } Parameters;
} WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION;

成员

Type

类型: WSACOMPLETIONTYPE

所需的完成通知的类型。 请参阅“备注”。

Parameters

完成回调所需的参数。 Parameters 联合中的结构指定完成每个给定类型的回调所需的信息。 例如,当 Type 设置为 NSP_NOTIFY_HWND 时,必须填充 WindowMessage 结构。

Parameters.WindowMessage

Parameters.WindowMessage.hWnd

类型: HWND Windows 句柄。

Parameters.WindowMessage.uMsg

类型: UINT 消息句柄。

Parameters.WindowMessage.context

类型: WPARAM 消息或句柄的上下文。

Parameters.Event

Parameters.Event.lpOverlapped

类型: LPWSAOVERLAPPED 指向 WSAOVERLAPPED 结构的指针。

Parameters.Apc

Parameters.Apc.lpOverlapped

类型: LPWSAOVERLAPPED 指向 WSAOVERLAPPED 结构的指针。

Parameters.Apc.lpfnCompletionProc

类型:_In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE

指向应用程序提供的完成例程的指针。

Parameters.Port

Parameters.Port.lpOverlapped

类型: LPWSAOVERLAPPED 指向 WSAOVERLAPPED 结构的指针。

Parameters.Port.hPort

类型: HANDLE 端口的句柄。

Parameters.Port.Key

类型: ULONG_PTR 指向键的指针。

注解

WSACOMPLETION 结构允许基于 Type 中提供的值,以以下任何格式提供回调:

回调格式 类型值
轮询 NSP_NOTIFY_IMMEDIATELY
窗口消息 NSP_NOTIFY_HWND
事件 NSP_NOTIFY_EVENT
APC NSP_NOTIFY_APC
完成端口 NSP_NOTIFY_PORT
 

对于阻塞函数,请将 WSACOMPLETION 结构设置为 null。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winsock2.h

另请参阅

WSANSPIoctl