What does NTSTATUS 0xC0190007 (STATUS_TRANSACTION_NOT_JOINED) mean?

 
Previous Next
STATUS_RM_METADATA_CORRUPT STATUS_DIRECTORY_NOT_RM

STATUS_TRANSACTION_NOT_JOINED

STATUS_TRANSACTION_NOT_JOINED identifies an ordering error in a KTM resource manager: it tried to prepare a transaction without first completing its enlistment. KTM uses the enlistment object to associate a resource manager with the transaction and to deliver the notifications that drive prepare, commit, rollback, and recovery work.

Do not treat this as a generic prepare failure. The important question is whether ZwCreateEnlistment failed, was skipped on one code path, or created an enlistment for a different transaction identifier. STATUS_TRANSACTION_NOT_ENLISTED is related, but can arise when a later operation requires an enlistment that is absent.

Prepare was attempted without a valid enlistment

  • Log the transaction ID and enlistment handle immediately after the enlistment call succeeds.
  • Verify that the requested notification mask includes the phases the resource manager later responds to.
  • Do not call prepare-completion routines as a substitute for creating or recovering an enlistment.

References


Looking for a different code? Search another status or error code.