| Предыдущий | Следующий |
| INVALID_PUSH_LOCK_FLAGS | UNEXPECTED_STORE_EXCEPTION |
KERNEL_LOCK_ENTRY_LEAKED_ON_THREAD_TERMINATION
Код остановки KERNEL_LOCK_ENTRY_LEAKED_ON_THREAD_TERMINATION имеет значение 0x00000153. Он означает, что поток завершился до освобождения всех своих записей блокировок AutoBoost.
Параметры KERNEL_LOCK_ENTRY_LEAKED_ON_THREAD_TERMINATION
| Параметр | Описание |
|---|---|
| 1 | Адрес потока |
| 2 | Адрес неосвобождённой записи |
| 3 | Код состояния записи 0x1: указатель блокировки не был NULL 0x2: были установлены зарезервированные биты указателя потока 0x3: указатель потока повреждён 0x4: в записи остались усиления ввода-вывода или процессора |
| 4 | Зарезервировано |
Причина
Обычно причиной является поток, не освободивший ранее захваченную блокировку, например полагавшийся на её освобождение другим потоком, либо передававший несогласованный набор флагов API пакета блокировок.
Что проверить
Завершающийся поток оставил lock entry, который должен был быть освобождён раньше. По параметрам определите запись блокировки и проследите acquire в стеке/истории потока. Проверяйте все пути завершения операции, включая cancel и error handling, где release мог быть пропущен.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.