Site icon EfmSoft

Что означает код NTSTATUS 0xC000071E (STATUS_CALLBACK_RETURNED_LDR_LOCK)?

 
Предыдущий Следующий
STATUS_CALLBACK_RETURNED_TRANSACTION STATUS_CALLBACK_RETURNED_LANG

STATUS_CALLBACK_RETURNED_LDR_LOCK

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

STATUS_CALLBACK_RETURNED_LDR_LOCK означает, что callback пула завершился, не освободив блокировку загрузчика.

Почему это опасно

Блокировка загрузчика сериализует загрузку, выгрузку и инициализацию DLL. Если повторно используемый рабочий поток возвращается в пул с этой блокировкой, последующие операции загрузчика могут зависнуть или войти в взаимную блокировку из-за порядка захвата блокировок.

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

  • DllMain и callbacks, которые выполняют загрузку/выгрузку DLL, инициализацию COM или ожидание работы пула потоков.
  • Каждый путь захвата/освобождения, включая ошибки и досрочный возврат.
  • Циклы между код, чувствительный к блокировке загрузчика, и ожидания cleanup-group.

Как исправлять

Не выполняйте долгую или блокирующую работу из DllMain. Освобождайте блокировки, связанные с загрузчиком, до возврата из callback и переносите тяжёлую инициализацию в обычный обычный путь выполнения после загрузки модуля.

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


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

Exit mobile version