| Предыдущий | Следующий |
| STATUS_ILLEGAL_INSTRUCTION | STATUS_INVALID_VIEW_SIZE |
STATUS_INVALID_LOCK_SEQUENCE
Блокировка использована в недопустимой последовательности состояний
Этот статус обозначает ошибку порядка управления блокировкой, а не обычную конкуренцию. Вызывающая сторона выполнила получение, освобождение, преобразование или связанную операцию блокировки в состоянии, которое реализация не разрешает. Точная допустимая последовательность зависит от владеющего API или типа блокировки, поэтому один статус не указывает пропущенный переход.
Сохраните адрес блокировки или идентификатор объекта, идентификатор потока и полную историю получения и освобождения. Проверьте правила рекурсивного получения, преобразование общей блокировки в исключительную, освобождение после неудачи и двойную очистку. Для драйверов ядра Verifier и диагностика блокировок отладчика могут выявить несогласованный порядок и владение раньше производственной взаимоблокировки.
Что следует проверить
- Определите точный примитив блокировки и операцию, вернувшую статус.
- Трассируйте успешные и неудачные переходы, а не только окончательное освобождение.
- Используйте Verifier или инструменты порядка блокировок для восстановления владения и последовательности.
Ссылки
- Microsoft: обнаружение взаимоблокировок Driver Verifier
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.