WinAPI IOCP编程:可扩展文件I / O

在本文中,您将简要了解I / O完成端口(IOCP),以及通过使用I / O请求复制带有文件的文件夹的简单C ++实现。 我们希望本指南对具有C ++和Windows API基本经验的人有用,并能帮助他们学习WinAPI IOCP编程的基础知识和某些特定知识。

总览

I / O完成端口是使用较早分配的线程池来处理多个I / O请求的灵活方式。 而且,它们可以避免由于切换上下文以及工作线程太多或太少而导致的性能损失。

队列内核对象位于IOCP的基础上,该对象用于存储I / O完成数据包。 尽管数据包按照FIFO顺序放入IOCP队列中,但可以按照其他顺序取出。

创建IOCP并将其与文件句柄关联是通过CreateloCompletionPort API函数完成的:

HANDLE

WINAPI

CreateIoCompletionPort(

_In_ HANDLE FileHandle,

_In_opt_ HANDLE ExistingCompletionPort,

_In_ ULONG_PTR CompletionKey,

_In_ DWORD NumberOfConcurrentThreads

);

阅读全文:WinAPI IOCP编程:可扩展文件I / O

撰写人:
安德鲁·季莫申科
Apriorit的软件设计师