PostQueuedCompletionStatus子例程
用途
将完成包发布到指定的 I/O 完成端口。
语法
#include <iocp.h>
boolean_t PostQueuedCompletionStatus (CompletionPort, TransferCount, CompletionKey, Overlapped, )
HANDLE CompletionPort;
DWORD TransferCount, CompletionKey;
LPOVERLAPPED Overlapped; 描述
PostQueuedCompletionStatus子程序尝试向CompletionPort发送完成数据包,完成数据包的值由TransferCount、CompletionKey 和Overlapped参数填充。
PostQueuedCompletionStatus子程序返回一个布尔值,表示是否已发布完成数据包。
PostQueuedCompletionStatus子程序是 I/O 完成端口(IOCP)内核扩展的一部分。
注: 此子例程仅适用于套接字文件描述符。 它不适用于文件或其他文件描述符。
参数
| 项 | 描述 |
|---|---|
| CompletionPort | 指定此子例程将尝试访问的完成端口。 |
| TransferCount | 指定传输的字节数。 |
| CompletionKey | 指定完成键。 |
| 重叠 | 指定重叠结构。 |
返回值
成功完成后,PostQueuedCompletionStatus子例程会返回一个布尔值,表示成功。
如果PostQueuedCompletionStatus子程序不成功,子程序处理程序将执行以下功能:
- 将值 0 返回到调用程序。
- 将指示特定错误的错误代码移动到 errno 全局变量中。 有关 errno 变量的进一步说明,请参阅本文档的 "相关信息" 部分中的链接。
错误代码
如果发生以下任一错误,那么子例程不成功:
| 项 | 描述 |
|---|---|
| EBADF | CompletionPort 参数为 NULL。 |
| EINVAL | CompletionPort 参数无效。 |
示例
下面的程序片段说明了如何使用PostQueuedCompletionStatus子例程来发布完成数据包。
c = GetQueuedCompletionStatus (34, 128, 25, struct overlapped);