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 |