GetQueuedCompletionStatus()
удаляет уведомление о завершении, но не возвращает тип уведомления (например, уведомление о прочтении, уведомление о записи).
Я отвечаю за отслеживание того, какие операции я инициирую, например, когда я использую WSARecv()
, я добавляю флаг в структуру OVERLAPPED
, который указывает, что это за операция (читайте в данном случае), и когда я удаляю уведомление из очереди, я читаю этот флаг. Так кто-нибудь знает, почему GetQueuedCompletionStatus()
не возвращает тип операции?
GQCS
. Решать вам. Он должен управляться как таковой (как часть вашего состояния для каждого ввода-вывода, обычно через расширение структуры OVERLAPPED). Программирование IOCP для фактического ввода-вывода (вы также можете использовать их вообще без ввода-вывода) - это в значительной степени стиль программирования в стиле конечного автомата, где вы управляете указанным состоянием. - person WhozCraig   schedule 25.02.2015