Что означает код NTSTATUS 0xC000001E (STATUS_INVALID_LOCK_SEQUENCE)?

 
Предыдущий Следующий
STATUS_ILLEGAL_INSTRUCTION STATUS_INVALID_VIEW_SIZE

STATUS_INVALID_LOCK_SEQUENCE

Блокировка использована в недопустимой последовательности состояний

Этот статус обозначает ошибку порядка управления блокировкой, а не обычную конкуренцию. Вызывающая сторона выполнила получение, освобождение, преобразование или связанную операцию блокировки в состоянии, которое реализация не разрешает. Точная допустимая последовательность зависит от владеющего API или типа блокировки, поэтому один статус не указывает пропущенный переход.

Сохраните адрес блокировки или идентификатор объекта, идентификатор потока и полную историю получения и освобождения. Проверьте правила рекурсивного получения, преобразование общей блокировки в исключительную, освобождение после неудачи и двойную очистку. Для драйверов ядра Verifier и диагностика блокировок отладчика могут выявить несогласованный порядок и владение раньше производственной взаимоблокировки.

Что следует проверить

  • Определите точный примитив блокировки и операцию, вернувшую статус.
  • Трассируйте успешные и неудачные переходы, а не только окончательное освобождение.
  • Используйте Verifier или инструменты порядка блокировок для восстановления владения и последовательности.

Ссылки


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