Что означает код NTSTATUS 0xC0190007 (STATUS_TRANSACTION_NOT_JOINED)?

 
Предыдущий Следующий
STATUS_RM_METADATA_CORRUPT STATUS_DIRECTORY_NOT_RM

STATUS_TRANSACTION_NOT_JOINED

STATUS_TRANSACTION_NOT_JOINED обозначает ошибку порядка операций в диспетчере ресурсов KTM: он попытался подготовить транзакцию, не завершив предварительно присоединение. KTM использует объект присоединения, чтобы связать диспетчер ресурсов с транзакцией и доставлять уведомления, управляющие подготовкой, фиксацией, откатом и восстановлением.

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

Подготовка была начата без действительного присоединения

  • Запишите идентификатор транзакции и дескриптор присоединения сразу после успешного завершения вызова присоединения.
  • Убедитесь, что запрошенная маска уведомлений включает этапы, на которые диспетчер ресурсов затем отвечает.
  • Не вызывайте процедуры завершения подготовки вместо создания или восстановления присоединения.

Ссылки


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