Что означает код NTSTATUS 532 (STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT)?

 
Предыдущий Следующий
STATUS_RING_NEWLY_EMPTY STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE

STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT

Что означает STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT

STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT — указанный кольцевой буфер ранее был пуст или заполнен; вызывающая сторона должна подать сигнал противоположной конечной точке.

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

  • Определите кольцевой буфер и его сторону, которая выполнила операцию и изменила состояние с пустого на непустое либо с полного на неполное.
  • Проверьте, действительно ли переход состояния требует уведомить противоположную сторону и не теряется ли сигнал между производителем и потребителем.
  • При гонке сохраните индексы чтения и записи и порядок операций памяти вокруг перехода; сам статус описывает необходимость сигнализации, а не сетевой адрес.

Что делать

Передайте уведомление противоположной стороне кольцевого буфера в соответствии с контрактом очереди и продолжите обработку; не диагностируйте этот статус как сетевую ошибку.

Практический смысл и диагностика

  • Операция с ring buffer требует уведомить противоположный endpoint.
  • Пример такой signaling model — VMBus/SynIC в Linux kernel.
  • Этот information status необычен тем, что описывает следующее действие caller, а не failure.
  • Сначала опубликуйте изменения shared ring state, затем сигнализируйте opposite endpoint.
  • VMBus — документированный пример channel с двумя shared-memory ring buffers и противоположным endpoint.

Технические ссылки


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