Что означает код BSOD 16 (SPIN_LOCK_NOT_OWNED)?

 
Также может означать:
КонстантаТипОС
ERROR_CURRENT_DIRECTORYОшибка WindowsWindows
KERN_INVALID_TASKКод возврата ядра macOSmacOS
ippStsZeroOccСтатус Intel IPPЛюбая
EBUSYerrnoЛюбая
Предыдущий Следующий
SPIN_LOCK_ALREADY_OWNED THREAD_NOT_MUTEX_OWNER

SPIN_LOCK_NOT_OWNED

Нарушение владения спин-блокировкой SPIN_LOCK_NOT_OWNED

SPIN_LOCK_NOT_OWNED имеет код проверки ошибки 0x00000010. Спин-блокировки защищают данные на повышенном IRQL и требуют строгого соответствия захвата и освобождения. Эта проверка ошибки означает, что текущий путь не владел спин-блокировкой, которую попытался освободить или изменить.

Как читать дамп SPIN_LOCK_NOT_OWNED

  • Стек сбоя должен показывать путь владельца блокировки или процедуру освобождения.
  • Проверьте, не смешивал ли драйвер API очередных и обычных спин-блокировок и не освобождал ли блокировку в пути ошибки, где она не захватывалась.
  • IRQL и вложенность блокировок имеют ключевое значение.

Что проверить для SPIN_LOCK_NOT_OWNED

  • Проверьте каждую пару захвата и освобождения этого объекта блокировки.
  • Проверьте пути отмены, тайм-аута, прерывания, DPC и раскрутки.
  • Если объект блокировки мог быть перезаписан из-за повреждения памяти, используйте Driver Verifier и специальный пул.

Ссылки для SPIN_LOCK_NOT_OWNED

Данные дампа для SPIN_LOCK_NOT_OWNED

Для SPIN_LOCK_NOT_OWNED сохраните полный дамп, четыре параметра bug check, точную сборку Windows, список загруженных модулей и временную шкалу событий непосредственно перед остановкой. AllStat описывает это состояние как «SPIN_LOCK_NOT_OWNED»; эта формулировка указывает класс сбоя, а параметры и стек позволяют определить задействованный объект, драйвер, процессор или экземпляр подсистемы.

Порядок анализа для SPIN_LOCK_NOT_OWNED

  • Запустите WinDbg !analyze -v, затем разберите документированное значение каждого параметра SPIN_LOCK_NOT_OWNED, а не полагайтесь только на строку probably-caused-by.
  • Для SPIN_LOCK_NOT_OWNED найдите самое раннее аномальное событие: обновление драйвера, изменение прошивки, сброс устройства, ошибку хранилища, отчёт Verifier, исчерпание ресурсов или зависание приложения, связанное с spin / lock / owned.
  • Для SPIN_LOCK_NOT_OWNED сохраните в перечне модулей сторонние фильтры, драйверы безопасности, хранилища, графики и виртуализации; удаление данных до анализа дампа может скрыть ответственный путь.

Не перезагружайте многократно систему с SPIN_LOCK_NOT_OWNED до сохранения дампа и журналов событий. Для SPIN_LOCK_NOT_OWNED способ восстановления должен определяться компонентом из стека и параметров, а не только символьным именем stop-кода.

Данные дампа для SPIN_LOCK_NOT_OWNED

Для SPIN_LOCK_NOT_OWNED сохраните полный дамп, четыре параметра bug check, точную сборку Windows, список загруженных модулей и временную шкалу событий непосредственно перед остановкой. AllStat описывает это состояние как «SPIN_LOCK_NOT_OWNED»; эта формулировка указывает класс сбоя, а параметры и стек позволяют определить задействованный объект, драйвер, процессор или экземпляр подсистемы.

Порядок анализа для SPIN_LOCK_NOT_OWNED

  • Запустите WinDbg !analyze -v, затем разберите документированное значение каждого параметра SPIN_LOCK_NOT_OWNED, а не полагайтесь только на строку probably-caused-by.
  • Для SPIN_LOCK_NOT_OWNED найдите самое раннее аномальное событие: обновление драйвера, изменение прошивки, сброс устройства, ошибку хранилища, отчёт Verifier, исчерпание ресурсов или зависание приложения, связанное с spin / lock / owned.
  • Для SPIN_LOCK_NOT_OWNED сохраните в перечне модулей сторонние фильтры, драйверы безопасности, хранилища, графики и виртуализации; удаление данных до анализа дампа может скрыть ответственный путь.

Не перезагружайте многократно систему с SPIN_LOCK_NOT_OWNED до сохранения дампа и журналов событий. Для SPIN_LOCK_NOT_OWNED способ восстановления должен определяться компонентом из стека и параметров, а не только символьным именем stop-кода.


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