| Предыдущий | Следующий |
| RPC_NT_WRONG_PIPE_VERSION | RPC_NT_PIPE_DISCIPLINE_ERROR |
RPC_NT_PIPE_CLOSED
Канал RPC уже закрыт
RPC_NT_PIPE_CLOSED — это статус жизненного цикла канала. Поток канала действителен только пока активны вызов RPC и передача по каналу; после закрытия дополнительные операции передачи или получения данных не могут продолжить поток.
Такое часто происходит, когда обратные вызовы приложения считают конец потока восстанавливаемым состоянием и пытаются передать дополнительные данные, либо когда обработка ошибки закрывает канал, а затем всё равно выполняется код штатного завершения.
Что проверить
- Проследите порядок вызовов обратных функций канала и отличайте штатный конец потока от преждевременного закрытия.
- Проверьте дублирующиеся пути очистки после исключений, отмены или частичной передачи.
- После сигнала о закрытии не пытайтесь повторно передавать дополнительные блоки через тот же объект канала.
Ссылки
- Microsoft RPC: каналы
- Microsoft MIDL: конструктор типа pipe
- Microsoft RPC: реализация канала на стороне клиента
- Открытые спецификации Microsoft: обзор MS-RPCE
Нужно найти другой код? Найти другой код состояния или ошибки.