3.6.5.2.1.1 Receiving a TXUSER_PHASE0_MTAG_CREATE Message
When the transaction manager receives a TXUSER_PHASE0_MTAG_CREATE message, the transaction manager communicating with a resource manager facet MUST perform the following actions:
If the connection state is Idle:
Set the connection state to Awaiting Create Response (section 3.6.1.3.2).
Find the transaction object in the transaction table of the transaction manager using the guidTx field from the message.
If the transaction is not found:
Send a TXUSER_PHASE0_MTAG_CREATE_TX_NOT_FOUND message using the connection.
Set the connection state to Ended.
Otherwise:
Create a new Enlistment object with the following values:
The transaction manager communicating with a resource manager facet
The transaction object
The connection
Set the Resource Manager Identifier field of the Enlistment object to a NULL GUID.
Assign the new Enlistment object to the enlistment field of the connection.
Signal the Create Phase Zero Enlistment event on the Core Transaction Manager Facet with the Enlistment object.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.