What does NTSTATUS 0xC000071D (STATUS_CALLBACK_RETURNED_TRANSACTION) mean?

 
Previous Next
STATUS_INVALID_THREAD STATUS_CALLBACK_RETURNED_LDR_LOCK

STATUS_CALLBACK_RETURNED_TRANSACTION

The callback leaked transaction context onto a pooled worker

KTM can associate a current transaction with a thread so compatible operations implicitly participate in it. A pooled worker is later reused by unrelated callbacks, so leaving that association active can enroll subsequent file or registry work in the wrong transaction.

The callback must restore the previous transaction context, not merely close its transaction handle. Handle lifetime and thread-current association are separate. Structured cleanup should run for success, failure, exceptions, and callback cancellation.

What to inspect

  • Capture the previous and new transaction handles, transaction identifiers, worker thread, and every return path.
  • Pair SetCurrentTransaction with restoration of the exact prior context.
  • Do not assume committing or rolling back automatically clears thread-local transaction state.
  • Audit helper functions that set an implicit transaction beneath higher-level callback code.

References


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