Что означает код NTSTATUS 0xC0000258 (STATUS_NO_CALLBACK_ACTIVE)?

 
Предыдущий Следующий
STATUS_PATH_NOT_COVERED STATUS_LICENSE_QUOTA_EXCEEDED

STATUS_NO_CALLBACK_ACTIVE

У потока нет активного обратного вызова, из которого можно вернуться

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

Это ошибка потока управления и контекста потока. Сохраните идентификатор потока, стек входа в callback и код, вызвавший службу возврата. Вызов нативной функции из произвольного рабочего потока или после размотки кадра callback не создаст отсутствующий контекст обратного вызова ядра. Слои совместимости должны выполнять вход и возврат callback в ожидаемом потоке и на правильном уровне вложенности.

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

  • Отслеживайте вход и возврат callback в одном и том же потоке.
  • Запишите глубину вложенности и исключение или long jump, обошедшие нормальный поток callback.
  • Не повторяйте NtCallbackReturn вне исходного контекста обратного вызова.

Ссылки


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