WSACOMPLETION 结构 (winsock2.h)

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

Syntax

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;

Members

Type

类型: WSACOMPLETIONTYPE

需要完成通知的类型。 请参阅注解。

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 结构使回调能够以以下任何格式提供,具体取决于类型中提供的值:

回调格式 类型值
投票 NSP_NOTIFY_IMMEDIATELY
窗口消息 NSP_NOTIFY_HWND
事件 / 活动 NSP_NOTIFY_EVENT
APC NSP_NOTIFY_APC
完成端口 NSP_NOTIFY_PORT
 

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

要求

Requirement 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
Header winsock2.h

另请参阅

WSANSPIoctl