| Previous | Next |
| STATUS_TRANSACTION_ALREADY_COMMITTED | STATUS_CURRENT_TRANSACTION_NOT_VALID |
STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER
The marshalled transaction context cannot be trusted
The buffer used to propagate a transaction is opaque to ordinary application code. It can contain protocol and object information needed to recreate the transaction relationship in another context. Truncation, wrong length, incompatible producer/consumer versions, or treating text data as a binary buffer can invalidate it.
Validate the transport around the buffer before blaming the transaction state. Common defects include serializing only the pointer, losing embedded bytes at a string terminator, using the wrong byte count, or reusing a buffer after its owner released it.
What to inspect
- Record the producer, consumer, exact byte length, protocol identifier, and transport framing.
- Compare the received length with the length returned by the API that created the buffer.
- Check architecture, alignment, and lifetime errors without attempting to reverse-engineer or patch the opaque format.
- Regenerate the propagation data from a valid transaction rather than retrying a damaged buffer.
References
- Microsoft Open Specifications: NTSTATUS values
- Microsoft: Kernel Transaction Manager overview
- Microsoft: Kernel Transaction Manager functions
- Microsoft Windows SDK metadata: ktmw32.h
Looking for a different code? Search another status or error code.