Зачем GetOverlappedResult нужен дескриптор файла?

Почему GetOverlappedResult нужен дескриптор файла?

Это похоже на WaitForSingleObject(overlapped->hEvent) должно быть достаточно, чтобы дождаться события, чтобы перекрывающийся ввод-вывод завершился, так что же GetOverlappedResult использовать дескриптор файла для?

1 ответ

Решение

Раздел примечаний документации, кажется, объясняет, когда hFile нужно:

Если элемент hEvent структуры OVERLAPPED имеет значение NULL, система использует состояние дескриптора hFile, чтобы сигнализировать о завершении операции. Использование файлов, именованных каналов или дескрипторов коммуникационных устройств для этой цели не рекомендуется. Безопаснее использовать объект события из-за путаницы, которая может возникнуть, когда несколько одновременных операций с перекрытиями выполняются для одного и того же файла, именованного канала или устройства связи. В этой ситуации нет способа узнать, какая операция вызвала сигнал состояния объекта.

Другие вопросы по тегам