| Предыдущий | Следующий |
| RPC_S_INVALID_ASYNC_CALL | RPC_X_PIPE_DISCIPLINE_ERROR |
RPC_X_PIPE_CLOSED
Что означает RPC_X_PIPE_CLOSED
RPC_X_PIPE_CLOSED означает, что потоковая RPC pipe перешла в закрытое terminal state, а код пытается продолжить чтение, запись или callback. Закрытая pipe — не «временно пустой буфер» и не условие для автоматического повтора на том же invocation.
Что проверить
- Сохраните RPC interface/procedure, direction pipe и событие, которое первым завершило поток.
- Проверьте producer/consumer state machine: not-started, active, terminal и failed должны быть отдельными состояниями.
- На cancellation/error path гарантируйте один переход в terminal state и запрет callbacks после него; descriptor pipe не должен переживать конкретный RPC invocation.
Как действовать
После закрытия завершите текущий pipe lifecycle. Если операция должна начаться заново, создайте новый RPC invocation/pipe по контракту интерфейса. Исправление подтверждается отсутствием callback/read/write после terminal event, а не простым подавлением возвращаемого кода.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.