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 |