Что означает код NTSTATUS 0xC000000C (STATUS_TIMER_NOT_CANCELED)?

 
Предыдущий Следующий
STATUS_INVALID_CID STATUS_INVALID_PARAMETER

STATUS_TIMER_NOT_CANCELED

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

STATUS_TIMER_NOT_CANCELED означает, что попытка отменить или изменить таймер не соответствует контексту потока, с которым связан APC-таймер.

Особенно легко получить такое состояние при использовании пула потоков, когда логическая задача продолжается уже на другом физическом потоке.

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

  • Запишите поток, в котором таймер был создан, и поток, выполняющий отмену.
  • Проверьте, не освобождаются ли связанные объекты до гарантированного завершения таймера и APC.
  • Сведите создание, отмену и teardown таймера к одному объекту жизненного цикла.
  • Не считайте таймер отменённым только потому, что функция отмены была вызвана.

Исправление должно исключить поздний APC, обращающийся к уже освобождённому состоянию.

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


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