Что означает код NTSTATUS 531 (STATUS_RING_NEWLY_EMPTY)?

 
Предыдущий Следующий
STATUS_RING_PREVIOUSLY_ABOVE_QUOTA STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT

STATUS_RING_NEWLY_EMPTY

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

STATUS_RING_NEWLY_EMPTY — статус перехода состояния: после удаления текущего пакета указанный кольцевой буфер не содержит больше элементов. Сам по себе он не означает повреждение данных.

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

Если пустой ring ожидаем, consumer должен завершить текущий цикл обработки или перейти в режим ожидания нового уведомления. Если статус появляется преждевременно, зафиксируйте состояние очереди в момент извлечения последнего элемента.

  • Сохраните старую и новую позицию чтения, наблюдаемую позицию записи и размер удалённого пакета.
  • Проверьте порядок публикации producer и чтения consumer, включая требуемые memory barriers для конкретного ring API.
  • Убедитесь, что новый пакет не был опубликован конкурентно уже после того, как consumer принял решение о пустом буфере.

Как подтвердить исправление

В трассировке последовательность индексов должна показывать законный переход к пустому состоянию либо корректное обнаружение конкурентно опубликованного пакета. Не заменяйте этот статус общим retry-циклом: правильная реакция зависит от контракта уведомлений конкретного кольцевого буфера.

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


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