| Предыдущий | Следующий |
| ERROR_PIPE_CONNECTED | ERROR_VERIFIER_STOP |
ERROR_PIPE_LISTENING
ERROR_PIPE_LISTENING сообщает, что экземпляр именованного канала ожидает подключения клиента. Он возвращается функцией ConnectNamedPipe , когда дескриптор использует неблокирующий режим ожидания и клиент не подключён.
Это не то же самое, что асинхронный ввод-вывод
Устаревший режим PIPE_NOWAIT заставляет некоторые вызовы именованных каналов немедленно возвращать управление вместо ожидания. Он не превращает эти вызовы в современные асинхронные операции. Microsoft описывает этот режим как средство совместимости и рекомендует перекрывающийся ввод-вывод для фоновой обработки.
Как обработать состояние
Для канала с неблокирующим ожиданием этот статус означает, что сервер должен продолжать ожидание клиента в соответствии со своей машиной состояний. Для масштабируемого асинхронного кода создайте канал с флагом FILE_FLAG_OVERLAPPED, передайте допустимую структуру OVERLAPPED в ConnectNamedPipeи обрабатывайте ERROR_IO_PENDING как обычное состояние выполняющейся операции.
Почему это различие важно
Если считать ERROR_PIPE_LISTENING признаком завершённого асинхронного подключения, сервер может остаться в неверном состоянии. Если считать его фатальной ошибкой, это может привести к ненужному пересозданию каналов и постоянному переподключению.
См. документацию Microsoft по тип, режим чтения и режим ожидания именованного канала и ConnectNamedPipe.
Нужно найти другой код? Найти другой код состояния или ошибки.