Что означает код NTSTATUS 0xC00000AD (STATUS_INVALID_PIPE_STATE)?

 
Предыдущий Следующий
STATUS_PIPE_NOT_AVAILABLE STATUS_PIPE_BUSY

STATUS_INVALID_PIPE_STATE

Операция не соответствует текущему состоянию канала

Эти статусы относятся к пути именованных каналов Windows. Для STATUS_INVALID_PIPE_STATE именованный канал может иметь несколько экземпляров с одним именем, но каждый экземпляр имеет собственные состояние, буфер, дескрипторы, режим типа, чтения и ожидания.

Именованные каналы проходят состояния прослушивания, подключения, закрытия и отключения. Этот статус означает, что дескриптор действителен, но запрошенная операция недопустима в текущем состоянии.

Для диагностики STATUS_INVALID_PIPE_STATE запишите имя канала, серверный или клиентский конец, число экземпляров, блокирующий или неблокирующий режим, байтовый или сообщенийый режим, состояние перекрывающейся операции и подключён ли дескриптор, слушает, закрывается или отключён.

Что проверить

  • Проверьте, не были ли ConnectNamedPipe, DisconnectNamedPipe, чтение или запись вызваны в неправильном порядке.
  • Зафиксируйте состояния серверного и клиентского дескрипторов.
  • Ищите гонки между завершением перекрывающейся операции и очисткой.

Ссылки для STATUS_INVALID_PIPE_STATE


Нужно найти другой код? Найти другой код состояния или ошибки.