PostQueuedCompletionStatus子例程

用途

将完成包发布到指定的 I/O 完成端口。

语法

#include <iocp.h>
boolean_t PostQueuedCompletionStatus (CompletionPort, TransferCount, CompletionKey, Overlapped, )
HANDLE CompletionPort;
DWORD TransferCount, CompletionKey;
LPOVERLAPPED Overlapped; 

描述

PostQueuedCompletionStatus子程序尝试向CompletionPort发送完成数据包,完成数据包的值由TransferCountCompletionKeyOverlapped参数填充。

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);